用简单的节点尝试了下Houdini流体的变速,这里的流体指的是Pyro,而不是FLIP,FLIP只需要记录ID属性然后TimeBlend & TimeShift即可。
上图是一个10倍降速的测试对比,在这个对比中,左边是retime的测试,右两个是对照,其中中间是TimeBlend & TimeShift,右边是只一个简单的TimeShift。
使用的方法类似advect,即 density = volumesample(p - v * length / Δ ),其中Δ为1/$FPS,length是advect的长度,=0时不变,=1时类似于下一帧。
但只是从floor($FF)去推下一帧时会发生的情况是$FF在跨越整数帧时会有一个小小的突变,所以用了一个另外的反向advect去推了上一帧,并在这两个插值之间mix。
w=$FF-floor($FF)
dens1= volumesample(density1, p - v1 * w/ Δ )</