[Bf-cycles] Volume Rendering for GSoC

Brecht Van Lommel brechtvanlommel at pandora.be
Mon Apr 29 22:15:32 CEST 2013

Hi Rafael,

I left volume rendering off the summer of code ideas list because it's
a big project, and because I'm already planning to work on it this
summer myself. However there are two quite separate things to be done,
the shading and texturing parts.

The shading part is something I'd prefer to tackle myself, to make
sure it all integrates well with the nodes and closure system, render
passes, transparency, etc. This gets quite complex if you're not
familiar with rendering and I want to make sure we get this right from
the start. There's also already an experimental patch which contains
volume rendering.

The other part is texturing, which can be developed independently.
Basically we need equivalents of the blender internal point density
and voxel data textures in cycles. For the point density texture the
points come from particle systems or object vertices, and for the
voxel data they come either from smoke or some voxel file format.

Field3D, OpenVDB and Partio are all interesting libraries to look into
as this would give us some support for more standard file formats than
just Blender specific ones. Also interesting would be adding support
for smoke to export to such file formats, as we can then add support
for rendering such volume data without the entire thing being in
memory at once.

The nice part is that this can be developed even if volume shading is
not implemented, surfaces can also do lookups in 3D textures. Just
create a stack of transparent planes and you can test if the texture
works correctly. So maybe implementing support for volume textures
could be an interesting project?


On Mon, Apr 29, 2013 at 6:56 PM, Rafael Campos <rafaelcdn at gmail.com> wrote:
> I'm in my last year as a Computer Engineering undergraduate, and not as
> experienced with rendering engines as I had hoped I'd be by now.
> Nonetheless, I'd really like to tackle Volume Rendering in Cycles for the
> upcoming GSoC.
> I believe I understand the challenges - it might be the case that the entire
> project will be too much for one summer, but perhaps there's a good enough
> subset of the problem that can serve as basis for future work, even my own.
> Working out the details of such a proposal is proving to be a challenge,
> since it isn't trivial to anticipate what the best approaches will be for
> Cycles - I'm trying to keep interactivity and responsiveness in mind.
> For now, I'm going over volume data structures (in the lines of field3d
> (code.google.com/p/field3d/, but probably less general and simpler) and
> different models for light scattering.
> Resources I've been using are both code and books for pbrt and pvr, and the
> volume rendering course notes of Siggraph '11
> (http://magnuswrenninge.com/productionvolumerendering).
> Any ideas to help me along the way?

More information about the Bf-cycles mailing list