[Houdini] Static Object

Static Object適用于大部分解算器,由此帶來的壞處就是參數(shù)很多。另一個讓它很不直觀的原因是houdini的obj級別有一個transform(下圖1),很多節(jié)點要引用sop里的幾何體時,都有一個選項問要不要應(yīng)用這個transform,這讓很多節(jié)點的面板變得很復(fù)雜,Static Object可以說達到了極致。盡管點一下工具欄就可以引入碰撞體,但是有時候還是需要手動設(shè)置一下的,如今大部分操作都在sop里進行, 我覺得sidefx是時候做一些改進了。這篇文章主要在說里面錯綜復(fù)雜的關(guān)系。(下圖2)


碰撞體是分3部分數(shù)據(jù)引入的,volume,geometry,obj pos。下圖是Static Object節(jié)點內(nèi)部。

SOP PATH參數(shù)對應(yīng)里面的sopgeo節(jié)點,用來引入geometry。如果碰撞體會動,這個geometry需要包含速度v屬性。
OBJ PATH參數(shù)對應(yīng)里面的objpos節(jié)點,用來引入OBJ級別上的位置變化信息,不包含縮放。這個參數(shù)可以空著。
Proxy Volume參數(shù)對應(yīng)里面的sdf_geo節(jié)點(Volume Sample模式),用來引入外部的volume而不使用這個節(jié)點用SOP PATH幾何體生成的volume。(下圖)

當(dāng)勾選Use Deforming Geometry時,Static Object節(jié)點內(nèi)部用來引入volume和geometry的sop geometry節(jié)點都把Default Operation設(shè)置成了Set Always,意思是每一幀都重新讀取,這樣就能引入會動的碰撞體了。

Use Object Transform,這個選項就有意思了,OBJ PATH不是已經(jīng)引入transform信息了嗎,這個選項用來干什么?這個選項專門用來應(yīng)用SOP PATH幾何體上級OBJ的縮放(下圖)。它對應(yīng)的是內(nèi)部Sop Geometry節(jié)點上的Use Object Transform。也就是說,這里應(yīng)用了一個transform,而內(nèi)部的obj pos節(jié)點又引入了另一個位移信息。

后話1
為什么兩個地方都能引入位置信息?
大概是如果碰撞體只是動一動,沒有縮放,用sop geometry節(jié)點直接引入的話,需要把Operation設(shè)置成Set Always,然后再勾選Use Object Transform,這樣的話每幀都重新讀?。ㄏ聢D),可能會損失性能,不如把Operation設(shè)置成Set initail,只讀一次,然后位置信息用obj pos節(jié)點引入。

后話2。
所有的這些,包括其他節(jié)點上的各種Transform選項(下圖),都是因為OBJ級別上有一個Transform。
建議改成只有路徑指向OBJ而不指向OBJ內(nèi)部的節(jié)點時,才應(yīng)用這個transform,去掉相關(guān)的選項。再或者,直接把OBJ上的Transform刪掉?


