<div dir="ltr">This week was spent mostly reviewing and testing everything done in the past 10 weeks, and making revisions for better optimizations.<br><br>Some changes:<br><ul><li>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.</li><li>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).</li><li>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).</li><li>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.</li><li>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!)</li></ul><br>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 (<a href="https://developer.blender.org/P756">https://developer.blender.org/P756</a>).<br><br><b>To-dos next week</b><br><br>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.<br></div>