Why is there big difference the luminance maps redered by rpict and vwrays-rcontrib?

I rendered the same scene using the rpict and vways-rcontrib respectively. However, the maximum luminnce values calculated by the two methods have very big difference. I guess it was because the ambient cache led to the big difference, but even if I turn off the amient cache through setting -aa to 0, the big difference still existed. So I really didn’t know what cause this difference.

The fenestration in the model is the prism film characterized by a Klems BSDF.
Below are the luminance map render by the both methods.

void brightdata Treg_dist
4 noop ./skies/sky12.dat Myreinhart.cal rbin
1 1

Treg_dist glow skyglow
4 1 1 1 0

skyglow source sky
4 0 0 1 360

#./skies/sky12.dat (only the luminance for the 12nd patch is 1000, the values for others are 0)

Fig.1 Rendered with rpict
(rpict -vf views/view2.vf -dc 1 -dt 0 -dj 0 -lw 1e-5 -ab 8 -aa 0.00 -ad 1000 -x 800 -y 800 m.oct > 12.hdr)

Fig.2 Rendered with rpict
(rpict -vf views/view2.vf -dc 1 -dt 0 -dj 0 -lw 1e-5 -ab 8 -aa 0.05 -ad 1000 -x 800 -y 800 m.oct > 12.hdr)

Fig.3 Rendered with vways-rcontrib
(vwrays -ff -c 9 -x 800 -y 800 -vf Views/view2.vf | rcontrib -n 16 -c 9 -ds 0.3 -dc 1 -dt 0 -dj 0 -lw 2e-4 -ab 8 -ad 4000 -ffc `vwrays -vf Views/view2.vf -x 800 -y 800 -d` -V+ -m skyglow m.oct > 12.hdr)

It looks like your second rendering (rpict with irradiance cache) and third (rcontrib) are grossly similar, you just have biased noise (splothes) replaced with unbiased noise in rcontrib. This is roughly what I would expect. To reduce the noise in both, you would need to increase the -ad values substantially.

The problem with the first rpict command is that Russian roulette sampling is “off” by default. If you rerun this calculation with “-lr -10” to match rcontrib, then your deep rays won’t get truncated and your corner region will brighten up, hopefully to match rcontrib.


Hi, Greg

It seems this difference is caused by the undersmaple in vways-rcontrib, when I increased the -ad to 10000, the luminance map between two methods are macthed.

With ambient caching off (-aa 0), there is an interplay between the -ad, -ab, -lw, and -lr settings. Especially if you don’t set -lr <= 0, when Russian roulette is turned on, ray trees will be truncated at some point as the ray weights dip below the -lw setting, and there is no forgiveness. At minimum, -lw should be 1/ad (the -ad setting), and -lr should be < -(ab) (the -ab setting).


1 Like