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

Stefan Werner stewreo at gmail.com
Tue Jul 24 21:05:07 CEST 2018


Hi Geraldine!

> Render time for VDB grids converted to sparse grids:
> - With Mesh: 00:48
> - Without Mesh: 00:43
> 
> Render time for VDB grids directly saved as textures:
> - With Mesh: 01:45
> - Without Mesh: 00:25

Did both generate the same mesh?

> The idea behind the Eulerian motion blur formula is that instead of storing multiple smoke frames and interpolating, we can instead use the velocity data of Eulerian structures to calculate the appearance of the smoke at a given time aside from the current frame. If we use the algorithm only once at time N, what will happen is the smoke gets shifted to what it will look like at instance N, rather than the smear effect we need.

Correct. That’s how we sample every motion effect in Cycles. The trick to get the “smear” is that each camera ray gets a different (pseudo-)random time associated with it (ShaderData::time and Ray::time) and we sample everything at exactly that point in time. Given enough primary rays, the result approaches the integral over the open shutter interval. Adding motion blur should turn one density lookup into one velocity + one density lookup.

-Stefan


More information about the Soc-2018-dev mailing list