volumesample&vomlumegradient在houdini中应用广泛
尤其在模型生长和水模拟中解决穿插问题表现尤为突出
从图中不难看出 ,将流体进行包面以后 particalsurface 和vdb在attributewrangle 中进行关联
float lift = chf("lift");
float dist = volumesample(1,"collision",@p);
vector grad = -normalize(vomumegradient(1,"collision",@p));
vector pos = @P;
if(dist<0)
{
pos += dist*grad;
pos += grad*lift;
@group_collison =1;
}
@P =pos;
此固定表达为:对一号端口的collison 的模型进行位置体积采样,然后对一号端口的coliison 模型进行位置上的体积梯度渐变(穿插为负值)
当dist小于0,即在vdb内部时/穿插时。对0号输入端口穿插的模型进行方向(grad)和距离上(dist)的位移