pbrt-v4
pbrt-v4 copied to clipboard
PBRT hangs while rendering certain scenes with subsurface materials from a certain sample rate and higher
I'm exploring the possibilities to render scenes using subsurface materials. In this endeavour, I stumbled upon PBRT hanging, not continuing with the rendering, without any error message or other direct indication which could cause this. This time counters just keep increasing while there is no progress and all but two threads stopped.
After some trials, I found out that this occurs at certain sample rates and is also affected by the presence of certain shapes (the vertical plane) in the scene, and on top of this is dependent on the subsurface properties of the material. I'm especially surprised by the big difference in sample rate between the two material properties (skin and outercortex) that can be rendered.
Below and attached you can find the used scene.zip and a summary of my observations:
Sample rate | Material properties | Vertical plane? | Hangs? |
---|---|---|---|
10000 | skin | No | No |
(not reached) | skin | No | Yes |
50 | skin | Yes | No |
60 | skin | Yes | Yes |
10000 | outercortex | No | No |
(not reached) | outercortex | No | Yes |
3000 | outercortex | Yes | No |
4096 | outercortex | Yes | Yes |
Thanks for developing PBRT and possibly clarifying this behaviour of the software!
# Top view over complete area
LookAt 0 0 10 # eye
0 0 0 # look at point
0 -1 0 # up vector
Camera "perspective" "float fov" [45]
Sampler "halton" "integer pixelsamples" [4096]
Integrator "volpath"
"integer maxdepth" [50]
Film "spectral" "string filename" ["../output/out.exr"]
"integer xresolution" [400] "integer yresolution" [400]
"integer nbuckets" [25]
"float lambdamin" [500]
"float lambdamax" [1000]
WorldBegin
# approximate the sun
LightSource "distant" "point3 from" [ -30 0 52 ]
"blackbody L" [3000] "float scale" [5]
AttributeBegin
Rotate 90.0 0.0 0.0 1.0
Translate 0 0 0
Material "subsurface"
"spectrum sigma_a" ["./spds/outercortex_absorption.spd"]
"spectrum sigma_s" ["./spds/outercortex_scattering.spd"]
"float scale" [1]
"float g" [0.8]
"float roughness" [0]
Shape "plymesh" "string filename" ["shapes/rect_slice.ply"]
AttributeEnd
## VERTICAL PLANE ##
AttributeBegin
Rotate 90 0.0 1.0 0.0
Translate -2.2 1 0
Material "diffuse" "rgb reflectance" [ .01 .01 .01 ]
Shape "plymesh" "string filename" ["shapes/plane_big.ply"]
AttributeEnd