Houdini Pyro流體的插值變速

用簡單的節點嘗試了下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的思想應用進去,如果可以會精確很多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章