首页 > 其他 > 详细

Houdini Pyro流体的插值变速

时间:2016-01-27 12:14:29      阅读:214      评论:0      收藏:0      [点我收藏+]

用简单的节点尝试了下Houdini流体的变速,这里的流体指的是Pyro,而不是FLIP。FLIP仅仅须要记录ID属性然后TimeBlend & TimeShift就可以。


技术分享

Vimeo


上图是一个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/ Δ )

dens2=volumesample(density2, p + v2 * (1-w)/ Δ )  

density=mix(dens1, dens2, w)

 (density1, v1, density2, v2分别为floor($FF)帧和ceil($FF)的密度和速度)


在流体细节特别多时会能看出插值的不精确来。这玩意儿怎么说呢,毕竟是插值。等看看是否能把BFECC的思想应用进去,假设能够会精确非常多。

Houdini Pyro流体的插值变速

原文:http://www.cnblogs.com/bhlsheji/p/5162390.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!