Blender Git Commit Log

Git Commits -> Revision 75eea19

Revision 75eea19 by Kévin Dietrich (gooseberry, openvdb)
June 5, 2015, 20:24 (GMT)
Cycles: first pass at using VDB ray intersectors for ray marching.

The idea behind them is to avoid unnecessary ray marching by frog
leaping empty space. The only requirement for it to work is to have a
grid whose voxels are uniform, otherwise Cycles' default ray marching is
used.

For now the code has a some issues and dark sides to it:
- it only works if there is a single object containing vdb volumes in
the scene
- for a given file, only the grid named "density" (case insensitive) is
used for intersection, it's not clear how to handle multiple grids in
this case (maybe we coiuld let the user set which one to use?)
- the ray march loop is a total duplicate of the default one, this will
be addressed later on
- some leaf nodes are missing when using large volumes, the issue might
be the early exit due to the check to see if light was totally absorbed
or not

Here's some render tests:
Dense volume: http://www.pasteall.org/pic/89090
VDB with intersection: http://www.pasteall.org/pic/89092

Commit Details:

Full Hash: 75eea19d026028fccc62455bb2001eac2c8b1e17
Parent Commit: 83752e2
Lines Changed: +228, -122

5 Modified Paths:

/intern/cycles/kernel/kernel_types.h (+1, -1) (Diff)
/intern/cycles/kernel/kernel_volume.h (+202, -81) (Diff)
/intern/cycles/render/openvdb.cpp (+5, -0) (Diff)
/intern/cycles/render/openvdb.h (+2, -0) (Diff)
/intern/cycles/util/util_openvdb.h (+18, -40) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021