Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Source code for the version of pbrt described in the second edition of "Physically Based Rendering"

NotificationsYou must be signed in to change notification settings

zhangpan0907/pbrt-v2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to the 'final' version of pbrt, version 2.  This version of thesource code corresponds to the system that is described in the secondedition of the book "Physically Based Rendering: From Theory ToImplementation", released in July 2010.The latest version of the pbrt code, including all of the latest bug fixes,updates, and conversion utilities is available fromhttp://github.com/mmp/pbrt-v2.  Please report any bugs encountered or otherissues with the system to Matt Pharr and Greg Humphreys, via theauthors@pbrt.org e-mail address.pbrt-v2 has been ported to a number of architectures and operating systems,including Windows (x86 and x64), Mac OS X, Linux, and OpenBSD.  It shouldbuild on most UNIX-like systems.  Please see the filesrc/README_BUILDING.txt for more information about compiling the system.--- Organization ---src/ : The implementation of the pbrt rendering system is in thisdirectory.  It includes a MSVC project to build the system as well as anXCode project, build scripts for scons, and a Makefile as well.scenes/ : A number of simple example scenes.exporters/ : Scripts to export to the pbrt file format from a number ofmodeling systems.  (Currently, 3ds max, Blender, StructureSynth, as well asa Mathematica exporter)dtrace/ : A number of scripts for gathering data about the run-timebehavior of pbrt using dtrace (http://en.wikipedia.org/wiki/DTrace).Dtrace is only supported on Mac OSX and FreeBSD; see thesrc/README_BUILDING.txt file for more information about building pbrt withdtrace support.--- Changes ---The remainder of this document will summarize the major changes to thesystem since the version described in the first edition of the book.  Seethe file src/README_BUILDING.txt for information about how to compile thesystem.--- Incompatibilities ---Many existing pbrt scene files will work unmodified with the second versionof the system.  The most significant user-visible change is that we havetaken this opportunity to fix the long-standing bug where LookAtinadvertently flipped the handed-ness of the coordinate system.You may find that scene filesthat use LookAt now render flipped images or otherwise have problems withthe camera positioning.  Add "Scale -1 1 1" to the top of any scenedescription files with this problem to return to the previous cameraposition.pbrt no longer has a plugin implementation based on runtime loading of DSOsor DLLs.  All implementations of shapes, lights, etc., are just staticallycompiled into the pbrt binary.  (We found that the complexity of supportingthis, both in cross-platform headaches, user issues with plugins not beingfound, and so forth wasn't worth the limited benefits.)  ThePBRT_SEARCHPATH environment variable is no longer used, and the SearchPathdirective has been removed from the input file syntax.We have removed the "shinymetal" material, replacing it with a physicallybased "metal" material.  (Described further in the new features sectionbelow.)--- New Features ----- General --pbrt is now multithreaded; performance should scale well with increasingnumbers of CPU cores.  We are particularly interested to hear anyexperience running the system with >4 cores as well as any insight gainedfrom digging into any scalability bottlenecks.  The system attempts toautomatically determine how many CPU cores are present in the system, butthe --ncores command line argument can be used to override this.OpenEXR is no longer required to build the system (but it is highlyrecommended).  pbrt now includes code to read and write both TGA and PFMformat files; support for those file format is thus always available.  Ifpbrt is compiled with PBRT_HAS_OPENEXR #defined, then OpenEXR files can beused as well.An accelerator based on bounding volume hierarchies has been added(accelerators/bvh*).  This accelerator is now the default; it spendssubstantially less time than the kd-tree accelerator in hierarchyconstruction, while providing nearly equal performance. pbrt now supports full spectral rendering as a compile-time option; toenable it, change the "typedef RGBSpectrum Spectrum" in core/pbrt.h to"typedef SampledSpectrum Spectrum".  The number of spectral samples taken(30 by default, leading to 10nm spacing), can be changed in thecore/spectrum.h file.Animation is now supported via animated transformations for cameras andshapes in the scene.  (But not light sources, however.)  See the includedexample files scenes/anim-killeroos-moving.pbrt andscenes/anim-moving-reflection.pbrt.A rudimentary adaptive sampler is included, see samplers/adaptive.*.-- Integrators --The 'instant global illumination', 'extended photon map', and 'extendedinfinite area light source' implementations from the author-suppliedplugins for pbrt-v1 are now part of the standarddistribution; the previous photon map and infinite area light sourceimplementations described in the first version of the book have beenremoved.The irradiance cache implementation has been substantially improved,following many of the ideas from the Tabellion and Lamorlette paper fromSIGGRAPH 2004.A subsurface scattering integrator based on the Jensen and Buhler 2002SIGGRAPH paper has been added (integrators/dipolesubsurface.*).  Two newmaterials for translucent materials have been added, "kdsubsurface" and"subsurface".  The former implements Jensen and Buhler's intuitive approachfor setting subsurface scattering parameters.  The latter also incorporatesmeasured scattering parameters from a number of recent papers; manytranslucent material types are available by name.  (See the source code fordetails.)An implementation of Metropolis light transport has been added (based onthe Kelemen et al 2002 Eurographics paper).  This is implemented as a new"renderer", rather than for example a surface integrator.  See the includedexample scene file scenes/metal.pbrt.Support for a variety of forms of precomputed radiance transport has beenadded.  A new renderer that computes radiance light probes in sphericalharmonics on a grid has been added (renderers/createprobes.*), and asurface integrator that uses them is available in integrators/useprobes.*.The diffuse precomputed radiance transfer (PRT) method of Sloan et al's 2002SIGGRAPH paper is implemented in integrators/diffuseprt.* and a techniquefor glossy PRT is in integrators/glossyprt.*.  Note that in general, onewould use pbrt to do the precomputation part of PRT and then use theresults in a real-time rendering system.  Here we have also implemented thecode that uses the results within pbrt for pedagogical purposes (and sothat we don't need to include a real-time renderer with the book!).-- Materials --A new 'metal' material has been added; it supports setting the spectralindex of refraction and extinction coefficients via measured data from realmetals.  See the example file scenes/metal.pbrt.  A large number ofspectral measurements are available in the scenes/spds/metals/ directory.Support for measured BRDF data is now available via the "measured"material.  Two BRDF representations and file formats are supported.  Firstis the binary file format used by the MERL BRDF database.(http://merl.com/brdf).  For arbitrary scattered BRDF measurements, ageneral text file format is supported; see the comments inscenes/brdfs/acryl_blue.brdf.--- Example Scenes ---A small number of example scenes that demonstrate some of the new featuresare provided in the scenes/ directory.anim-killeroos-moving.pbrt, anim-moving-reflection.pbrt: demonstratesmotion blur features.bunny.pbrt: measured BRDFskilleroo-simple.pbrt: simple scene with "Killeroo" modelmetal.pbrt: Metropolis light transport, measured BRDFsprt-teapot.pbrt: precomputed radiance transferss-envmap.pbrt: subsurface scattering

About

Source code for the version of pbrt described in the second edition of "Physically Based Rendering"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++61.2%
  • MAXScript17.8%
  • Python12.0%
  • C6.7%
  • Yacc0.7%
  • Mathematica0.6%
  • Other1.0%

[8]ページ先頭

©2009-2025 Movatter.jp