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);

前后的对比如下:


时间: 2024-08-26 07:23:03

Houdini RBD 研究笔记的相关文章

kubernetes整合ceph rbd

一.有一个ceph cluster,假设已经准备好了,文档网上一大堆 二.开始集成ceph和kuberntes 2.1 禁用rbd features rbd image有4个 features,layering, exclusive-lock, object-map, fast-diff, deep-flatten因为目前内核仅支持layering,修改默认配置每个ceph node的/etc/ceph/ceph.conf 添加一行rbd_default_features = 1这样之后创建的i

在Houdini里固定半径范围内改变权重中心点的方法

大家都知道如果使用点云或者使用类似attribTransform这样的节点来采样或者传值的时候,都是以点为圆心一定半径均匀的采样,近几天为了做一些比较特殊的牵引效果所以好好琢磨了一下非均匀的线性采样方法,这个词有点太绕,我先上两张对比图看一看: 权重改变前                       权重改变后 要求是在上面第一张图限定的半径范围内,改变权值为1的中心点位置该点到圆的边缘还是从1到0的线性渐变过度(如果用指数运算就不是线性了,但还是连续过渡的渐变). 这里的方法其实也不算特别复杂

rdb map出错rbd sysfs write failed

创建了一个rbd镜像 $ rbd create --size 4096 docker_test 然后,在Ceph client端将该rbd镜像映射为本地设备时出错. $ rbd map docker_test --name client.admin rbd: sysfs write failed RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature

Houdini中给火花渲染准确的运动模糊 - 给运动模糊做非线性差值的方法以及固定粒子点数的方法

估计大家都知道使用运动速度来进行运动模糊的渲染,但是往往这个方法得到的运动模糊都是线性变化的,虽然乍一看没什么问题,但是如果想要每一帧的模糊轨迹也是有曲线变化的而不是僵硬的直来直去的话,使用trail算个速度来做的运动模糊是永远做不到这一点的. 这里我想通过常用的火花(spark)的运动模糊来讲一讲我所了解的一些比较好的方法. 所谓渲染中的运动模糊无非就是差值算法.目前使用的比较多的主要有两种.第一种就是上面说到的直接使用速度来线性差值,这种方法会计算每一个点的速度方向,计算出前一帧或者后一帧的

Houdini中总结Volume Lattice的方法

这两天挪威大神不在,感觉有点寂寞.刚刚学习完他的一个牛逼工具Volume Lattice.鉴于他直接把这个工具已经拿到Orbolt里面卖钱了,我在这就只讲讲自己的学习理解,代码什么的就不在这上了,何况要是理解了方法其实零代码也能够自己实现出来.这里是他的工具连接,给这位牛逼的外国师傅做做广告:Volume Lattice 效果图: 这个工具的思路主要是使用点云来代替voxel,通过拉伸点云之后,求出每个点的位移向量,再把这个向量值转变为体积,最后使用这些向量来计算density新的位置. 制作步

Houdini 快速点云连线以及避免重采样的技巧

今天和挪威的同事讨论点云的vex函数pcunshaded(),结果两个人都没搞太明白倒是转到了另一个话题,就是点云采样制作连线怎样避免重复计算,这里做一下记录. 如果采用严格的避免重复连接的方法,我们可以在每个点上增加两个点属性,一个是确定自己是否已经建立连线的判断属性,另一个是存储连线对应的另一端点的点数,同时使用setattrib()函数在对应点上标记自己的点数.但由于setattrib()的局限性,这种方法只能从一个点上生出一根(int or float),三根(vector), 四根(v

Houdini + TouchDesigner + leapmotion 分分钟做出钢铁侠的体感交互效果

接触touchdesigner已经有一段时间了,虽然教程确实非常有限而且很难找到深入的主题,但好在和houdini同根同源很多思路都是可以直接套用的,学习过程目前还没遇到特别难理解的问题. 今天我来讲一讲最近尝试的一个交互实验,目的是想了解touchdesigner到底有多灵活,结果很明显它的能力和Houdini形同手足.如果说Houdini是一个城府很深,每一步都要深思熟虑的老大哥的话,Touchdesigner则有点像一个事事都急于表现,任何精彩的点子都藏不住的小弟.一个是用时间精雕细琢,一

Houdini 节点参数读取输入节点的数据列表

今天做了一个在点级别的smooth工具,因为houdini默认的smooth是基于primitive的.工具能够根据输入节点的点组(point groups)或者特定的点属性(attributes)来smooth特定范围的点,这里讲一讲制作过程中一个很值得在意的细节问题,那就是读取输入节点的特定属性列表,这里讲的就是point group list和attribute list. 这个问题相当于用自己的方法实现很多节点里面的选择点组或者面组的功能,这个问题大家也许觉得非常简单,不就是从子节点上拽

Houdini 中 Gray Scott Reaction-Diffusion算法的实现

这篇文章是吧很久以前学的一个神奇算法归一下档,在公交车上突然想起来了,觉得还是很有必要再仔细梳理一遍,对以后也许有用. 先看图再说话: Gray Scott Reaction-Diffusion算法, 在模拟微观细胞的运动或者类似的效果是非常神奇. 理论链接:http://www.karlsims.com/rd.html 原理:模拟两种物质之间在平面(暂时是平面)上的相互作用,动作分为反应与扩散. 公式: 右手边第一项为扩散,第二项为反应,第三项是供给,DA与DB为分散率,▽2A或B为相邻位置扩