[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender  branches/sim_physics/source/ blender: Volume rendering: multiple scattering
Brecht Van Lommel
brecht at blender.org
Mon Jan 26 07:36:39 CET 2009
Matt Ebb wrote:
> The multiple scattering methods introduce 3 new controls when enabled:
> * Blur: A factor blending between fully diffuse/blurred lighting, and sharper
> * Spread: The range that the diffuse blurred lighting spreads over - similar to a
> blur width. The higher the spread, the slower the processing time.
> * Intensity: A multiplier for the multiple scattering light brightness
> Here's the effect of multiple scattering on a tight beam (similar to a laser). The
> effect of the 'spread' value is pretty clear here:
> Unlike the rest of the system so far, this part of the volume rendering engine isn't
> physically based, and currently it's not unusual to get non-physical results (i.e.
> much more light being scattered out then goes in via lamps or emit). To counter this,
> you can use the intensity slider to tweak the brightness - on the todo, perhaps there is a more automatic method we can work on for this later on. I'd also like to check
> on speeding this up further with threading too.
I'd just like to point out that this effect is essentially the same as
SSS tries to do, but on a volumetric grid instead. The code could be
made compatible easily, but at the cost of extra memory.
The SSS code is easy to reuse for this case since it is split up into
a generic and internal render specific part, i.e. you can just build a
tree by passing an array of coordinates, colors and areas (the latter
would just be constant in your case), and then sample arbitrary
locations in it.
It would be more memory intensive because it works with an arbitrary
collection of points rather than a grid, and volumetric simulation
might give more points too because it adds an extra dimension so it's
not ideal. One of the nice things is that it is somewhat physically
based and runs at the same speed regardless of blur/spread factor.
Also possible is to reuse the falloff function so you so the results
are compatible, but they basically assume you sample a large area and
not do multiple blurring passes, not sure how they would need to be
adapted to that.
More information about the Bf-committers