欢迎光临散文网 会员登陆 & 注册

[Houdini] Static Object

2022-04-29 21:25 作者:pandahgt  | 我要投稿


Static Object

Static Object适用于大部分解算器,由此带来的坏处就是参数很多。另一个让它很不直观的原因是houdini的obj级别有一个transform(下图1),很多节点要引用sop里的几何体时,都有一个选项问要不要应用这个transform,这让很多节点的面板变得很复杂,Static Object可以说达到了极致。尽管点一下工具栏就可以引入碰撞体,但是有时候还是需要手动设置一下的,如今大部分操作都在sop里进行, 我觉得sidefx是时候做一些改进了。这篇文章主要在说里面错综复杂的关系。(下图2)

OBJ Transform
Static Object

碰撞体是分3部分数据引入的,volume,geometry,obj pos。下图是Static Object节点内部。

Static Object内部

SOP PATH参数对应里面的sopgeo节点,用来引入geometry。如果碰撞体会动,这个geometry需要包含速度v属性。

OBJ PATH参数对应里面的objpos节点,用来引入OBJ级别上的位置变化信息,不包含缩放。这个参数可以空着。

Proxy Volume参数对应里面的sdf_geo节点(Volume Sample模式),用来引入外部的volume而不使用这个节点用SOP PATH几何体生成的volume。(下图)

Volume

当勾选Use Deforming Geometry时,Static Object节点内部用来引入volume和geometry的sop geometry节点都把Default Operation设置成了Set Always,意思是每一帧都重新读取,这样就能引入会动的碰撞体了。

SOP GEOMETRY

Use Object Transform,这个选项就有意思了,OBJ PATH不是已经引入transform信息了吗,这个选项用来干什么?这个选项专门用来应用SOP PATH几何体上级OBJ的缩放(下图)。它对应的是内部Sop Geometry节点上的Use Object Transform。也就是说,这里应用了一个transform,而内部的obj pos节点又引入了另一个位移信息。

OBJ上的缩放

后话1

为什么两个地方都能引入位置信息?

大概是如果碰撞体只是动一动,没有缩放,用sop geometry节点直接引入的话,需要把Operation设置成Set Always,然后再勾选Use Object Transform,这样的话每帧都重新读取(下图),可能会损失性能,不如把Operation设置成Set initail,只读一次,然后位置信息用obj pos节点引入。

SOP Geometry

后话2。

所有的这些,包括其他节点上的各种Transform选项(下图),都是因为OBJ级别上有一个Transform。

建议改成只有路径指向OBJ而不指向OBJ内部的节点时,才应用这个transform,去掉相关的选项。再或者,直接把OBJ上的Transform删掉?

Object Merge
FLIP Object
Volume Source


[Houdini] Static Object的评论 (共 条)

分享到微博请遵守国家法律