Volumes

VDB Hints:

NUMBER1

the correct way to noise up a level set is:

LS += noise( CPT )

where CPT is the closest point transform:

CPT = P - LS * grad


Relight Volumes in nuke:

Gradient Pass which is more or less a normal pass for volume

To render a  gradient pass

-convert your colume to VDB volume

-Append a VDB Analysis sop

-Set it to analyse the gradient and give it a custom name "Cd"

-It will produce a VDB vector volume called Cd which is the gradient of the volume

-Convert it back to a houdini volume and merge it back with the original density volume

-now we can visualize the Gradient using volume vizualization sop (put density in density field and Cd.* in Diffuse field)

-we can render this using a constant smoke shader and use this a normal pass

-before rendering it we will need to invert the direction of the gradient vector in the shader.


Inital frame high of velocity particles causes stepping of smoke emited from that?

Fix From Odforce (Thanks Old School Jeff!) - http://forums.odforce.net/topic/15548-billowy-smoke-fast-initial-velocity-dots/

The fix is to insert a Trail SOP immediately after the POP Network SOP and set both it's Trail Length and Cache Size to be the same as the Fluid Source "Frames To Blur" parameter. I used a channel reference and it works fine. I then cranked the Frames to Blur up to 4 and the number of samples in-between to 10 and it fills in the gaps nicely.   


Setting Collisions for smoke

 convert polygon to surface VDB using VDB from polygon , set its name to "collision"

 Add velocity field in and name it "collisionvel"

 Inside dops add source volume set it to collision preset and set its density to -1


Easy way to set the bounds of smoke object

Put a bound node to get the bounds and have these expressions in size and centriod of the smoke object

bbox("../../IN_BOUND",D_XSIZE)

centroid("../../IN_BOUND",D_X)