Clouds and voxel resolution

Hi there,
this is my first post here, I’ve started playing with Eddy only yesterday and the tutorials + examples are really helping me getting the hang of it.

I’ve opened the “eddy_cloud_example.nk” script and noticed that this particular setup doesn’t use an Element but goes straight into the shader.

Although it’s really nice not to have to run any simulation and can still get some movement in the clouds animating the noise nodes, the final result is slow to render especially if I set the Render quality high enough to get a smooth image.

How do I control the resolution of the voxels?



The eddy_cloud_example.nk scene is demonstrating implicit rendering. This means it is rendering the fields directly, without any voxelizing happening at any step of the process. While this is nice because the full detail of the field is preserved, it can get quite slow if there are lots of noise fields or trace fields for the renderer to sample. In addition, this scene has full path tracing enabled in the render settings, which requires even more sampling by the renderer.

It’s possible to voxelize the field first which will speed up rendering. This is a bit clunky at the moment however, we will definitely be improving the process in a future release. But for now, plug your field into an emitter node with a mode of “Set”. Then connect the emitter to a SmokeSparse element, and set the Time Scale on the element to 0, which should disable the simulation. The voxel resolution can then be controlled using the resolution setting in the element. You can then either add a cache node to write the voxelized result to VDB, or render it directly by extracting the voxelized density field with a Channel node and connecting that to the shader.

I didn’t know how to use SET on emitter, thanks Niall.

Storing vdb, then reading it back into a new sim, would also allow you to drift the clouds and simulate too!


Thanks for your quick reply @niall

I’ll try it right away.

@MattBarker I’ll give a try to this as well. I finally understood how to use that cache node. The only way it would work on my Linux box with Nuke 10.5v6 is to use “Passthrough Write” , the Write Cache button doesn’t work