Forum: Poser - OFFICIAL


Subject: A Dummies Guide to Indirect Lighting in Poser 8

ziggie opened this issue on Aug 05, 2009 · 761 posts


Whichway posted Wed, 12 August 2009 at 8:38 PM

Quote -   > Quote - question - anyone know the units of "Irradiance Sample Size"? Thanks.

Pixels, and it's the maximum sample size - minimum size is currently hardcoded to 1 pixel. It's not to be taken literally, though, as the max sample size is also being affected by overall scene size, and the irradiance cache setting.
The irradiance cache slider in the UI is controlling two separate caches in the renderer: one for indirect diffuse, one for AO. They're one slider in the UI, but they can be changed separately in pz3 files and from Python. There they are called "max error" and go from 1 (worst, fastest) to 0 (best, slowest), where for the indirect light the GUI never sets it to 0. *

The irradiance caching algorithm is well documented, for anyone interested in how the whole thing works, the SIGGRAPH 2008 course explains it and a lot more:
http://www.graphics.cornell.edu/~jaroslav/papers/2008-irradiance_caching_class/

I hope this answers some questions.

*If you're interested to see what comes out when with a max error of 0, open the Python shell and type this:
poser.Scene().CurrentFireFlyOptions().SetGIMaxError(0)
poser.Scene().CurrentFireFlyOptions().SetGINumSamples(16)
Then render.
Brave souls can replace the 16 with higher numbers. MaxError = 0 effectively turns of irradiance caching and the indirect light is being calculated with plain path tracing.

Stefen was quoting the manual in the post you are remembering. I'm not sure the manual is fully accurate, to be diplomatic. I've found the above post along with the reference far more useful. [Note: I think he confirms above pjz99's observation that "Irradiance Sample Size" is bounded from below by 1.0.] Associating cache sliders with "max error" is the key. To make it make sense, I think you have to take the reciprocal of the slider value. That then is the relative error limit for how far off the interpolated irradiance value can be without trigging a new explicit calculation. IC=200 then means 0.5% interpolation accuracy. My story, in progress, takes 0.5% accuracy as the goal since we ultimately have only 256 possible brightness values in the final image. To help with playing around, I will post what I believe is the lowest quality it is possible to achieve and you can play with one thing at a time. Note that certain combinations of values can effectively override other parameters; I think this is what's happening with my last parameter - others have already required things to be better than it's calling for.

Whichway

(Oops, didn't know the god was watching.)