[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18674] branches/sim_physics/source/ blender: Volume rendering: multiple scattering

Brecht Van Lommel brecht at blender.org
Mon Jan 26 07:36:39 CET 2009

Hi Matt,

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:
> http://mke3.net/blender/devel/rendering/volumetrics/ms_spread_laser.jpg
> 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 mailing list