首页 > 代码库 > Houdini RBD 研究笔记

Houdini RBD 研究笔记

intrinsic:packedfulltransform 属性

对于Pack Gemetry会有一些额外的属性。创建一个Grid、Sphere,利用Copy节点把小球copy到Grid上,Copy节点中勾选 Pack Geometry Before Copying, 然后用Edit节点移动某个点,会发现信息存储在 intrinsic:packedfulltransform这个属性(16位矩阵)里。需要注意的是 intrinsic:packedfulltransform 属性是只读的,你不能修改它。但是你可以修改intrinsic:transform (3x3 matrix,控制旋转,缩放,skew)这个属性,移动点的位置(P属性), 这些也会改变intrinsic:packedfulltransform属性的值

 简单的一个小案例:  http://pan.baidu.com/s/1kVazAmV  (houdini_rbd_intrinsic.hip)

再来一个小例子,在Odforce上看到的,利用Copy 节点Instance 一大堆BOX,注意勾选上Copy节点的Pack Geometry Before Copying参数然后再接一个Wrangle节点,代码如下:

1 vector scale = fit01(vector(rand(@primnum)), 0.2,1);
2 matrix3 trn = primintrinsic(0, "transform", @primnum);
3 matrix scalem = maketransform(0, 0, {0,0,0}, {0,0,0}, scale, @P);
4 trn *= matrix3(scalem);
5 setprimintrinsic(0, "transform", @primnum, trn);

前后的对比如下:

技术分享 技术分享

Houdini RBD 研究笔记