[Soc-2018-dev] Weekly Report #11 - Further Development for Cycles' Volume Rendering
chua.gsk at gmail.com
Sat Jul 28 18:03:48 CEST 2018
This week was spent mostly reviewing and testing everything done in the
past 10 weeks, and making revisions for better optimizations.
- For motion blur, advected position is now cached in ShaderData and
only one sample is done (originally 3 samples were taken due to some
confusion over what was causing lack of blur). As an aside, normalized
position is also now cached, so there may be some modest speed-ups now in
rendering volumes even without motion blur.
- Sparse grids are now directly loaded into device memory rather than
loaded into a vector and then memcpy to device memory (used to be based on
how scaling images works).
- OpenVDBs are directly loaded as sparse grids (originally they were
loaded first as dense grids to allow some post-processing and then
converted to sparse grids).
- External VDBs may have background values that are not 0.0. In theory,
that means voxel values should be shifted to account for a background value
of 0.0 in Cycles, which is now done to all imported grids, though whether
this effect is required or not depends on the VDB imported.
- Changed how VDB values are iterated through from using accessors to
iterating through leaf nodes and acessing their buffers, greatly decreasing
iteration time (thanks to suggestion from Brecht!)
Unrelated to my tasks, but the volume mesh builder has significant slowdown
with very large volumes (e.g. a single 577x572x438 density grid takes ~25
seconds to build a mesh for), which is probably only somewhat obvious now
when testing volumes from external VDBs. Stefan posted a patch that looks
to fix this issue (https://developer.blender.org/P756).
*To-dos next week*
Next week should be mostly wrapping up, minor revisions, and merging. I
will await code review to see if any new changes need to be made.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Soc-2018-dev