|
@@ -70,37 +70,72 @@ output from rendering each corresponding scene. All PNGs were generated
|
|
|
using the `imgtool` program from the `pbrt-v3` distribution; many had a
|
|
|
scale factor applied with the `--scale` command-line option, and a number
|
|
|
include a bit of bloom to improve visual realism (via the `--bloomlevel`
|
|
|
-and related command-line options.)
|
|
|
+and related command-line options.) Sometimes the corresponding `*.pbrt`
|
|
|
+file has a comment under the `Film` directive with the command line options
|
|
|
+that were used for `imgtool`.
|
|
|
+
|
|
|
+## A note about clamped sample values
|
|
|
+
|
|
|
+Some of these scenes have very difficult-to-sample light transport paths
|
|
|
+that in turn cause high variance, which manifests itself as scattered very
|
|
|
+bright pixels in images (often called "fireflies"). (For example, scenes
|
|
|
+with bumpy specular surfaces that are illuminated by realistic sky environment
|
|
|
+maps suffer from this issue when a path intersects the specular surface and
|
|
|
+is then scattered such that it happens to intersect the sun.)
|
|
|
+
|
|
|
+There is an option for pbrt's Film implementation that allows the user to
|
|
|
+specify a maximum value for the luminance of any sample added to the film;
|
|
|
+if enabled, any sample with a larger luminance has its luminance scaled
|
|
|
+down so that it is equal to the maximum. In turn, the impact of fireflies
|
|
|
+in images can be greatly reduced.
|
|
|
+
|
|
|
+We have used this option for a number of challenging scenes in the
|
|
|
+following. As such, **bias has been introduced into the the images that
|
|
|
+pbrt generates for those scenes**. We highlight this issue for two reasons:
|
|
|
+first, if you want to use those scenes as unbiased comparisons to another
|
|
|
+rendering system or to your implementation of a new light transport
|
|
|
+algorithm, it's important to be aware of this (and likely, to modify the
|
|
|
+scene files to disable this setting). Second, if you're developing a new
|
|
|
+light transport algorithm, these scenes provide a number of challenging
|
|
|
+situations that current algorithms don't handle well; new algorithms that
|
|
|
+handle them effectively would be useful contributions to rendering.
|
|
|
|
|
|
## Overview of Scenes
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
[barcelona-pavillion](barcelona-pavillion): Model of van der Rohe's classic
|
|
|
-[Barcelona Pavillion](https://en.wikipedia.org/wiki/Barcelona_Pavilion),
|
|
|
-including both daytime and nighttime lighting setups.
|
|
|
+[Barcelona Pavilion](https://en.wikipedia.org/wiki/Barcelona_Pavilion),
|
|
|
+including both daytime and nighttime lighting setups. In the daytime setup,
|
|
|
+all illumination comes from a realistic sky model encoded in an HDR
|
|
|
+environment map. The night model has a very dark sky map and a number of
|
|
|
+area light sources; it is particularly challenging to render, as much of
|
|
|
+the illumination travels through one or more layers of glass before hitting
|
|
|
+a surface.
|
|
|
|
|
|

|
|
|
|
|
|
[bathroom](bathroom): Modern bathroom with soft indirect lighting and
|
|
|
-depth of field.
|
|
|
+depth of field. Given the mirrors and bright wight walls, multi-bounce
|
|
|
+indirect illumination has a substantial effect on the overall appearance
|
|
|
+of the scene.
|
|
|
|
|
|

|
|
|
|
|
|
[bmw-m6](bmw-m6): BMW M6 car (model year 2006) illuminated by a realistic
|
|
|
skylight model.
|
|
|
|
|
|
-Fred C. M'ule Jr. ('tyrant monkey')
|
|
|
-
|
|
|

|
|
|
|
|
|
[breakfast](breakfast): Indoor scene with chairs around a table. One
|
|
|
-variant has light streaming in through blinds from the side, while
|
|
|
-another is only illuminated by the lights above the table. (For the
|
|
|
-second variant, light transport through the glass light fixtures is a
|
|
|
-good challenge for many light transport algorithms.)
|
|
|
+variant of the scene has light streaming in through blinds from the side
|
|
|
+such that most of the scene is only illuminated indirectly; finding these
|
|
|
+indirect illumination paths can be challenging. Another variant is only
|
|
|
+illuminated by the lights above the table; handling the resulting light
|
|
|
+transport through the glass light fixtures is a good challenge for many
|
|
|
+light transport algorithms.
|
|
|
|
|
|

|
|
|
|
|
@@ -116,7 +151,8 @@ new curve shape added to `pbrt` in the third edition of the book. Over
|
|
|
|
|
|

|
|
|
|
|
|
-[caustic-glass](caustic-glass): Caustic pattern projected through a realistic model of a
|
|
|
+[caustic-glass](caustic-glass): A delightfully complex caustic pattern that
|
|
|
+results from light being projected through a realistic model of a bumpy
|
|
|
glass.
|
|
|
|
|
|

|
|
@@ -124,22 +160,35 @@ glass.
|
|
|
[chopper-titan](chopper-titan): Shiny motorcycle sitting on a glossy
|
|
|
surface, illuminated by a sunset.
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
[cloud](cloud): One scene with a bright white cloud, showing the effect of
|
|
|
multiple scattering in participating media, and another, with the same
|
|
|
-volume density but with much more absorption, showing the difference
|
|
|
-between highly-scattering and highly-absorptive media.
|
|
|
+volume density but with much more absorption, leading to a much darker
|
|
|
+cloud. The two images show the difference between highly-scattering and
|
|
|
+highly-absorptive media.
|
|
|
|
|
|

|
|
|
|
|
|
-[coffee-splash](coffee-splash): A splash of coffee in a cup with a spoon, showing a
|
|
|
-complex simulated BRDF for the cup and saucer, and scattering in
|
|
|
-participating media inside the splash.
|
|
|
+[coffee-splash](coffee-splash): A splash of coffee in a cup with a spoon,
|
|
|
+rendered using a complex simulated BRDF for the cup and saucer, and
|
|
|
+multiple scattering in participating media inside the splash.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+[contemporary-bathroom](contemporary-bathroom): Another contemporary
|
|
|
+bathroom scene. This scene is quite challenging to render without visible
|
|
|
+noise: specular light transport by the large mirror and the
|
|
|
+very small area light sources surrounded by glass in the light bulbs are
|
|
|
+difficult to render efficiently.
|
|
|
|
|
|

|
|
|
|
|
|
-[crown](crown): Detailed model of the Austrian Imperial Crown.
|
|
|
+[crown](crown): Detailed model of the Austrian Imperial Crown, featuring an
|
|
|
+accurate reflection model for the gold metal surfaces, and many gems that
|
|
|
+refract light passing through them.
|
|
|
|
|
|

|
|
|
|
|
@@ -148,14 +197,16 @@ showing off the visual differences between them.
|
|
|
|
|
|

|
|
|
|
|
|
-[ecosys](ecosys): Complex outdoor scene with many plants and trees.
|
|
|
+[ecosys](ecosys): Fairly complex outdoor scene with many plants and trees,
|
|
|
+illuminated by an environment map. This scene was used for the cover image
|
|
|
+for the first edition of _Physically Based Rendering_.
|
|
|
|
|
|
[figures](figures): A variety of fairly simple scenes used for figures in the book.
|
|
|
|
|
|

|
|
|
|
|
|
-[ganesha](ganesha): Very detailed scan of a small statue, illuminated by area
|
|
|
-light sources.
|
|
|
+[ganesha](ganesha): Very detailed scan of a small statue with over 4.3
|
|
|
+million triangles, illuminated by a few area light sources.
|
|
|
|
|
|

|
|
|
|
|
@@ -174,10 +225,12 @@ subsurface scattering.
|
|
|
|
|
|

|
|
|
|
|
|
-[landscape](landscape): Very complex realistic outdoor landscape scene, featuring
|
|
|
-23,241 unique plant models. Thanks to object instancing, the scene has a
|
|
|
-total geometric complexity of 3.1 billion triangles, even though only 24
|
|
|
-million triangles need to be stored in memory.
|
|
|
+[landscape](landscape): Very complex realistic outdoor landscape scene,
|
|
|
+featuring 23,241 unique plant models. Thanks to object instancing, the
|
|
|
+scene has a total geometric complexity of 3.1 billion triangles, even
|
|
|
+though only 24 million triangles need to be stored in memory. `view-0.pbrt`
|
|
|
+is the cover image of the third edition of the _Physically Based Rendering_
|
|
|
+book.
|
|
|
|
|
|

|
|
|
|
|
@@ -189,6 +242,8 @@ Based Rendering_ book.
|
|
|
[sanmiguel](sanmiguel): A complex model inspired by a hotel in San Miguel de
|
|
|
Allende, Mexico.
|
|
|
|
|
|
+
|
|
|
+
|
|
|
[simple](simple): A variety of relatively simple scenes.
|
|
|
|
|
|

|
|
@@ -199,9 +254,9 @@ result.
|
|
|
|
|
|

|
|
|
|
|
|
-[sssdragon](sssdragon): Dragon model rendered with subsurface scattering, showing
|
|
|
-the effect of changing the density of the scattering medium in the
|
|
|
-various scene description files.
|
|
|
+[sssdragon](sssdragon): Dragon model rendered with subsurface scattering,
|
|
|
+where multiple scene description files show the visual effect of changing
|
|
|
+the density of the scattering medium.
|
|
|
|
|
|

|
|
|
|
|
@@ -294,7 +349,7 @@ results.
|
|
|
Note that OBJ files only describe scene geometry; they don't include camera
|
|
|
specifications or descriptions of light sources. (Thus, the generated pbrt
|
|
|
input file only includes shape and material specifications that you'll need
|
|
|
-to add inside the WorldBegin/WorldEnd block of a full pbrt input file.)
|
|
|
+to add inside the `WorldBegin`/`WorldEnd` block of a full pbrt input file.)
|
|
|
Unless you have camera and light source information separately, you'll need
|
|
|
to specify both on your own (see "General Tips" below for some ideas about
|
|
|
how to do this.)
|
|
@@ -393,28 +448,36 @@ Given good lighting, the next step is to tune the materials (or set them
|
|
|
from scratch). It can be helpful to pick a material and set it to an
|
|
|
extreme value (such as a "matte" material that is pure red) and render the
|
|
|
scene; this quickly shows which geometric models have that material
|
|
|
-associated with it. Alternatively, consdier applying this
|
|
|
+associated with it. Alternatively, consider applying this
|
|
|
[patch](html/mtl.patch.txt) to your pbrt source tree; after rebuilding
|
|
|
-pbrt, if you set the `PBRT_MTL_HACK` environment variable, rendering the
|
|
|
-scene will cause a separate image to be generated for each `NamedMaterial`
|
|
|
+pbrt, if you set the `PBRT_MTL_HACK` environment variable and render the
|
|
|
+scene, pbrt will generate a separate image for each `NamedMaterial`
|
|
|
in the scene, with a filename corresponding to the material name. Each
|
|
|
-image will only include the objects with that material.
|
|
|
+of these images will only include the objects with that material, which
|
|
|
+makes it easier to see what's what.
|
|
|
|
|
|
As you figure out which material names correspond to what geometry, watch
|
|
|
-for objects that are missing texture maps and re-add them. (The good news
|
|
|
-is that such objects generally do have correct texture coordinates with
|
|
|
-them.
|
|
|
+for objects that are missing texture maps and add `Texture` specifications
|
|
|
+for them and use them in the materials. (The good news is that such objects
|
|
|
+generally do have correct texture coordinates with them, so this mostly
|
|
|
+just works.)
|
|
|
|
|
|
# Submitting Updates
|
|
|
|
|
|
We'd love to increase the scope (and quality) of scenes available for use
|
|
|
with `pbrt`. If you have a nice scene in `pbrt`'s format that you'd like to
|
|
|
have included in this distribution, or if you have improvements to the
|
|
|
-current set of scenes, we'd love to have them!
|
|
|
+current set of scenes, we'd love to have them! (Even finding additional
|
|
|
+good camera locations for the existing scenes or generating variants of
|
|
|
+some of the existing scenes with different lighting setups is helpful.)
|
|
|
+
|
|
|
+We're particularly interested in adding scenes that include complex and
|
|
|
+realistic character models as well as scenes with realistic distributions
|
|
|
+of hair or fur.
|
|
|
|
|
|
Unfortunately, it's not possible to host large binary distributions on
|
|
|
-github, so it's a little more involved than sending a pull request. There
|
|
|
-are a few options for submitting updates.
|
|
|
+github, so submitting scene updates a little more involved than sending a
|
|
|
+pull request. There are a few options.
|
|
|
|
|
|
* For changes small enough to be sent via email, you can use
|
|
|
`git format-patch` to make a patch that we can apply and push to the
|
|
@@ -437,14 +500,14 @@ are a few options for submitting updates.
|
|
|
and made it available via a CC-BY license.
|
|
|
|
|
|
* bathroom: Thanks to "nacimus", CC-BY license. Downloaded from
|
|
|
- http://www.blendswap.com/blends/view/73937.
|
|
|
+ [Blendswap](http://www.blendswap.com/blends/view/73937).
|
|
|
|
|
|
* bmw-m6: Thanks to Fred C. M'ule Jr. ("tyrant monkey" on BlendSwap) for
|
|
|
this nice car model. CC-Zero (public domain) license. Downloaded from
|
|
|
- http://www.blendswap.com/blends/view/3557.
|
|
|
+ [Blendswap](http://www.blendswap.com/blends/view/3557).
|
|
|
|
|
|
* breakfast: Thanks to "Wig42", CC-BY license. Downloaded from
|
|
|
- http://www.blendswap.com/blends/view/75431.
|
|
|
+ [Blendswap](http://www.blendswap.com/blends/view/75431).
|
|
|
|
|
|
* buddha-fractal: Thanks for Guillermo M. Leal Llaguno for this fun variant
|
|
|
of the Stanford Buddha model. (Buddha model courtesy [Stanford Computer
|
|
@@ -458,15 +521,30 @@ are a few options for submitting updates.
|
|
|
the model.
|
|
|
|
|
|
* chopper-titan: Thanks to julioras3d for this model; CC-BY
|
|
|
- license. Downloaded from http://www.blendswap.com/blends/view/67726.
|
|
|
+ license. Downloaded from
|
|
|
+ [Blendswap](http://www.blendswap.com/blends/view/67726).
|
|
|
|
|
|
* cloud: Smoke dataset courtesy Duc Nguyen and Ron Fedkiw. Skylight
|
|
|
environment map courtesy Nolan Goodnight.
|
|
|
|
|
|
-* coffee-splash: Scene thanks to "guismo"; CC-Attribution license.
|
|
|
- Downloaded from http://www.blendswap.com/blends/view/56136. Environment map
|
|
|
+* coffee-splash: Scene thanks to "guismo"; CC-BY license. Downloaded from
|
|
|
+ [Blendswap](http://www.blendswap.com/blends/view/56136). Environment map
|
|
|
via http://dativ.at/lightprobes/index.html, thanks to Bernhard Vogl.
|
|
|
|
|
|
+* contemporary-bathroom: Scene thanks to
|
|
|
+ [Mareck](http://www.studios-cad.fr/galerie.html), CC-Zero (public domain)
|
|
|
+ license. "contemporary_china" texture used for wallpaper thanks to [Adam
|
|
|
+ Charlts](http://subtlepatterns.com/contemporary-china/); texture contrast
|
|
|
+ was increased for the render. "American_walnut_pxr128" wood texture
|
|
|
+ courtesy [Pixar Animation
|
|
|
+ studios](https://community.renderman.pixar.com/article/114/library-pixar-one-twenty-eight.html),
|
|
|
+ CC-BY 4.0 license. Abstract print seen in mirror based on a smoke
|
|
|
+ photograph by [Vanessa
|
|
|
+ Pike-Russell](https://www.flickr.com/photos/lilcrabbygal/), CC-BY
|
|
|
+ license; the photo was inverted and contrast was adjusted for rendering.
|
|
|
+ Hurricane image used for photo on wall courtesy [NASA Goddard Space
|
|
|
+ Flight Center](https://www.flickr.com/photos/gsfc), CC-BY license.
|
|
|
+
|
|
|
* crown: This amazing model was created by Martin Lubich
|
|
|
(http://www.loramel.net/).
|
|
|
|
|
@@ -478,7 +556,7 @@ are a few options for submitting updates.
|
|
|
|
|
|
* ganesha: Model scanned by Wenzel Jakob.
|
|
|
|
|
|
-* head: Model thanks to Infinite Realities, Inc., CC-Attribution license.
|
|
|
+* head: Model thanks to Infinite Realities, Inc., CC-BY license.
|
|
|
Environment map thanks to [USC-ICT light probe image gallery](http://gl.ict.usc.edu/Data/HighResProbes/).
|
|
|
|
|
|
* killeroos: Thanks to [headus](http://www.headus.com/au)/Rezard for the
|
|
@@ -512,8 +590,8 @@ are a few options for submitting updates.
|
|
|
exported from Cinema4D using the [Cinema4D pbrt
|
|
|
exporter](https://github.com/mmp/pbrt-v3/tree/master/exporters/cinema4d).
|
|
|
|
|
|
-* white-room: Scene thanks to Jay Hardy, CC-Attribution
|
|
|
- license. Downloaded from http://www.blendswap.com/blends/view/41683.
|
|
|
+* white-room: Scene thanks to Jay Hardy, CC-BY
|
|
|
+ license. Downloaded from [Blendswap](http://www.blendswap.com/blends/view/41683).
|
|
|
|
|
|
* yeahright: "Interesting" shape generated by Keenan Crane
|
|
|
(http://www.cs.cmu.edu/~kmcrane/Projects/ModelRepository/). Environment
|