统计
  • 建站日期:2021-03-10
  • 文章总数:29 篇
  • 评论总数:0 条
  • 分类总数:3 个
  • 最后更新:11月2日
文章 Houdini

Houdini 小技巧将原点解算的pyro 附加到运动的物体上

Luo7758
首页 Houdini 正文

1.在制作一个场景特效时,比如我们有很多个悬挂的壁炉需要制作燃烧的火焰,而这些壁炉又有移动旋转存在,我们拆开去做解算会比较费时费力,我这里是直接在原点模拟了一个火焰,最直接的方式是给每个需要燃烧的物体计算一个中心点 copy to point 上去就行,但是这样没有继承旋转信息,效果看起来会比较奇怪,这里就需要用在每个点上计算一个矩阵信息:
1.新建一个 extracttransform 节点 计算得到矩阵

  1. 新建一个attribwrangle 读取计算得到矩阵 ,并给到pyro解算的 位置内在属性上:

这里只用最简单的场景做一个演示如果有多个物体的话:需要for 循环去做:

// 从输入1拿到点上的 matrix 属性
matrix myMatrix = point(1, "transform", 0);

// 获取当前体积的 transform intrinsic
float srcMatrix[] = primintrinsic(0, "transform", @primnum);
int length = len(srcMatrix);

if(length == 16){
    //如果是 4x4 矩阵,就把 myMatrix 的逆矩阵作用到 primitive intrinsic 上
    setprimintrinsic(0, "transform", @ptnum, invert(myMatrix), "multiply");
}
else{

    // 如果是 3x3 矩阵,只把旋转部分(matrix3)应用到 primitive intrinsic 上
    setprimintrinsic(0, "transform", @ptnum, matrix3(myMatrix), "multiply");

    //平移部分单独用矩阵作用到点的位置
    @P = myMatrix*@P;


(提示这里如果物体很多的话 直接用位置拿过去物体会很卡 这就需要用到Instance实列化 也就是需要计算得到每个点上带有矩阵属性的Instance点 这里只截图 记录一下步骤 )




版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!

-- 展开阅读全文 --
Houdini中的UV数据类型和UV Set名称问题
下一篇 »
为了防止灌水评论,登录后即可评论!

HI ! 请登录
注册会员,享受下载全站资源特权。

今日事今日毕

标签

最新评论