Blender Git Commit Log

Git Commits -> Revision aed107c

Revision aed107c by Matt Ebb (master)
September 24, 2008, 02:52 (GMT)
* Volumetrics scene integration

Now other objects (and sky) correctly render if they're partially
inside or behind a volume. Previously all other objects were ignored,
and volumes just rendered on black. The colour of surfaces inside or
behind the volume gets correctly attenuated by the density of the
volume in between - i.e. thicker volumes will block the light coming
from behind. However, other solid objects don't receive volume shadows
yet, this is to be worked on later.

http://mke3.net/blender/devel/rendering/volumetrics/vol_inside_behind.png

Currently this uses raytracing to find intersections within the volume,
and rays are also traced from the volume, heading behind into the
scene, to see what's behind it (similar effect to ray transp with IOR
1). Because of this, objects inside or behind the volume will not be
antialiased. Perhaps I can come up with a solution for this, but until
then, for antialiasing, you can turn on Full OSA (warning, this will
incur a slowdown). Of course you can always avoid this by rendering
volumes on a separate renderlayer, and compositing in post, too.

Another idea I've started thinking about is to calculate an alpha
value, then use ztransp to overlay on top of other objects. This won't
accurately attenuate and absorb light coming from objects behind the
volume, but for some situations it may be fine, and faster too.

Commit Details:

Full Hash: aed107cf4a31f4b07d1f065d407e6ad55935afb2
SVN Revision: 16711
Parent Commit: 45acf42
Lines Changed: +132, -47

3 Modified Paths:

/source/blender/render/intern/include/shading.h (+3, -0) (Diff)
/source/blender/render/intern/source/rayshade.c (+1, -1) (Diff)
/source/blender/render/intern/source/volumetric.c (+128, -46) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021