* Volume rendering / multiple scattering - normalisation
authorMatt Ebb <matt@mke3.net>
Wed, 18 Mar 2009 03:52:17 +0000 (03:52 +0000)
committerMatt Ebb <matt@mke3.net>
Wed, 18 Mar 2009 03:52:17 +0000 (03:52 +0000)
commit41b2a2a530804db35c3a0fed2d881acf6f332c3d
treeaa5ba0de484d88f1f031161490f25a036d4b4bf0
parent2b05a837295e32c2dd91a59984870803a3f0a52d
* Volume rendering / multiple scattering - normalisation

This changes the effect of the multiple scattering approximation to be more
physically plausible (and easier to use) by making it conserve energy.
Previously, the multiple scattering could show wildly different results
based on the spread settings, often outputting much more light than was put
in (via lamps), which is physically incorrect and made it difficult to use
by requiring a lot of tweaking of the intensity value.

This fixes it to some extent with a simple normalization, where it scales
the light energy after multiple scattering to be the same as what was
previously there in the light cache via single scattering. This means that
using the default intensity of 1.0 should give good results by default,
although you can still use it to tweak the effect.

Note: This will render differently if you've already set up a .blend using
multiple scattering with the old code, so you'll need to tweak older files.
Setting the intensity back to the default 1.0 should be good though.

* Smaller thing - fixed the camera view vector stuff up a bit in light
cache, it now gives much more similar results to non-light cache when using
anisotropic scattering.
source/blender/render/intern/source/volume_precache.c