[Soc-2018-dev] Weekly Report #6 - Further Development for Cycles' Volume Rendering

Geraldine Chua chua.gsk at gmail.com
Sat Jun 23 10:01:04 CEST 2018


This week was mostly spent going over the OpenVDB pointcache code and Luca
Rood's work with on creating an OpenVDB importer here (
https://github.com/tangent-animation/blender278/commits/openvdb_import). As
I was unable to build Tangent Animation's Blender fork, I just went ahead
and ported all relevant code over to my branch.

Having gone over Luca's importer, instead of generating a smoke domain from
the OpenVDB file as I originally expected it would work, it creates a new
OpenVDB modifier which allows manual grid assignment and orientation of the
volume. Aside from basic transformations like scaling, OpenVDB volumes as
far as I can tell cannot be modified. Depending on what the goal of the
importer is (just importing vs editing), it may be better to convert
OpenVDB files into Smoke modifiers instead.

A minor improvement that could be made is to attempt to auto-assign grids
using default names e.g. set grid called "density" as the density grid of
the object. As it currently stands, the OpenVDB object at first does not
appear in the viewport since all grids are unset (I actually initially
thought the function was not working because of this, so this is more for
user-friendliness). Another improvement can be mass importing of vdbs since
they are usually saved one frame per file.

For some .vdb files such as the bunny sample files, Blender would crash
upon attempting to assign a grid (although that may be due to insufficient
specs on my computer...). It also crashes occasionally when attempting to
set the wrong grid e.g. set "density" grid to color. I am still tracing the
cause and location of the crashes, as there is no error message printed
besides "Killed" and no error log created. Probably this is because the
error happens in the OpenVDB library.

While the OpenVDB object shows perfectly fine on the viewport, only the
domain appears when rendering both with Blender Internal and Cycles. Unless
I have missed something, this is because the object is not accounted for in
Cycles yet, so I will have a further look into that.

To-dos next week are further investigating / implementing the above
mentioned changes / issues. I will also try to have a look into how other
external files are imported and rendered in Blender such as Collada and
Alembic as a reference point for what to do with the OpenVDB importer.

For questions, I would just like to know whether or not we want editable
OpenVDB volumes and if Luca's approach with the new modifier is fine.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.blender.org/pipermail/soc-2018-dev/attachments/20180623/3cdb0d45/attachment-0001.html>


More information about the Soc-2018-dev mailing list