Houdini树木生长
CG世界 39489 2
实名

通过了实名认证的内容创造者

发布于 2023-5-4 18:40:55

您需要 登录 才可以下载或查看,没有账号?注册

x
本文转自公号:华强方特深圳电影有限公司

27b1f59ea14a09e0edac59df37b8c86a.png

大家好,我是L小步。今天分享一下,houdini树木程序化生长的工具,先看视频[micxp_wxonkey]wxv_2880224398568456196[/micxp_wxonkey]


介绍

Tree sim是本公司内部开发的树木生长模拟工具。

可以实现任意层级的树木生长;

工具完全基于程序化,不需要模拟。


8a7296def78a955590dfebce7ea3fc87.png


本文就单独摘出Tree sim工具生长的核心技术点分享一下
生长的基本原理:基于模型线的生长,最后线驱动模型动态。
生长技术点摘要
① 各层级线生长需要保证前后依赖性  ② 驱动模型的方式,如何完好驱动原模型③ 叶子数量巨大时,如何提升生长的性能
生长前的准备工作① 提取树干的中心线;方法有很多,本文后面提供一个方法供参考。


② 保证枝干的name属性和对应中心线name属性一致(name属性在prim层级)。


③ 线分好层级,给上对应的属性level(level属性在point层级);关于自动化分层级的这里先不展开。


④ 每条线根部的点给个组,组名为root


生长① 先从简单点一根线生长做起;如果使用carve节点,会导致生长过程中线上的点发生变化,后面我们会拿线驱动模型,此方式不行。


以下方式先给线加上根部到尾部从0到1变化的curveu值。


② 利用vex的primuv,配合curveu属性达到保持点不变且生长的目的。


③ 现在每根曲线都有以下属性:从0到1变化的curveu属性;
层级属性level;
对应name属性;
根部点组root。


④ 因为线的生长依赖上一层级,所以需要计算每根线对应上一层级的点,我们命名这个属性为neigh_pt,如下图:


整个计算节点如下图:



下图此处代码这么写是要保证找到的neigth_pt是上一层级的(如果仅用nearpoint,当树枝多的时候有可能找到是同一层)。


⑤ 接下来这步就是重点了,完成这步几乎就代表整个生长已经完成了,核心部分在这里。先定义每级生长时间,属性为brance_grow_frame。


再做如下操作:


原理就是,利用循环反馈迭代,依次计算每层级生长的开始和结束时间

(grow_frame、@grow_frame_end)

生长效果如下:



⑥ 基本的生长已经完成。但生长有些单调,正常生长的子枝干会跟着父枝干运动的,具体操作增加,如下图节点。


Attibvop2 里连接如下:


效果如下:



⑦ 接下来就是驱动模型了,用传统point deform、wire deform 、cloth deform都不能保证完好的驱动原模型。

这里用kindeFX的功能做驱动(运用里面的矩阵功能)。




Bone Capture Proximity 节点的参数根据模型大小自行调节

驱动效果如下:




刚开始生长模型有穿插的,可以加delta mush节点控制模型平滑(比传统smooth更快)


每根线都有生长开始和结束时间帧属性,可以做到枝干刚出现是平滑最后过渡到原模型,这里不再演示。

此驱动模型的方法:如果枝干数量多时会算的比较慢,特别是前两个节点,但有个好处是只算一帧就可以了。

这种方法在Tree sim工具中并没有用到,因为当枝干多达几万时,rig doctor和Bone Capture Proximity节点会异常的卡。

Tree sim工具内部是使用自定义矩阵驱动模型的,有机会下次分享一下。


⑧ 最后一步,叶子的生长

为了保证叶子生长的性能,用了PrimIntrinsics的方法,这里只介绍使用方法,原理就不展开说了。




准备工作给每一片叶name属性,然后根部点打一个点组root。


计算叶子离线最近的点nearpt,根部的位置属性root_P。


pack每片叶子,并且把中心点移动到根部,因为叶子生长要基于根部点。




接下来就让叶子跟随生长曲线运动。我们用上面驱动模型的方法。


此方法带有旋转,而不是简单的位移跟随



最后把叶子从小变大,基于之前线生长的属性




最终效果如下:



end

公众号链接:https://mp.weixin.qq.com/s/zIhWT3srAvmPGMw-owrDcw
9d7d5c8dabfa8a03dd089cb1b87726f6.gif

评分

参与人数 3元素币 +17 活跃度 +7 展开 理由
lalax07 + 9 + 5 看封面进来的
leemua + 5 + 1 好东西要收藏
andywater1... + 3 + 1 腰间盘都没有你突出

查看全部评分

内容主要涵盖影视特效,CG动国,前沿CG技术,作品欣賞
使用道具 <
机皇天下  发表于 2023-8-13 14:35:58  
2#
6666666666666666666666666666666666666666666
回复 收起回复
使用道具
qq_欣欣_wUj  发表于 2023-10-13 10:50:40  
3#
回复 收起回复
使用道具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表