RBD的SDF的精度自适应,适合有些场景里把collision volume的division方式设置成固定时小物体太浪费,设置成uniform时小物体太粗糙的情况下。
此表达式可以把division按大小控制在Min和Max之间。本来在注释间的语句可以自动查找OldMin和OldMax的,但是场景面数多的时候会很慢,所以改成了手动指定的。

使用方法:把以下代码放到RBD DOP的division的表达式里,并且把表达式格式改成Python。

Min = 30
Max = 80
OldMin = 10
OldMax = 100
def fitRange(value,oldmin,oldmax,min,max):
return float(hou.hscriptExpression('fit('+str(value)+','+str(oldmin)+','+str(oldmax)+','+str(min)+','+str(max)+')'))
def sizeOfGroup(grp):
bbx = hou.BoundingBox()
for prim in grp.prims():
for v in prim.vertices():
bbx.enlargeToContain(v.point().position())
sizev = bbx.sizevec()
return max(sizev[0],sizev[1],sizev[2])
sopn

本文介绍如何在Houdini中实现RBD破碎对象的自适应精度,通过调整碰撞体积的division,以平衡小物体的细节需求和整体性能。通过Python表达式控制division范围,确保在最小值和最大值之间动态适应物体大小。
最低0.47元/天 解锁文章
8156

被折叠的 条评论
为什么被折叠?



