houdini中不得不掌握的技术集锦(12)粒子生成路径

——  微资讯 · 微课程  ——

利用零碎时间,走上超神之路!

http://www.tokeru.com/cgwiki/index.php?title=Houdini_Lighting_Shading

由CG猎人独家翻译,转载请注明


整体设置

新建grid,在grid上发射粒子,使用popnet中控制粒子形态→ add连接成线→ fuse把一段段线连接起来→ timeshift固定在完整的一帧→ connectivity 根据连续性把线段通过class分类→ 基于class对不同线给予颜色→ 依据class把较短的线删除→ sort 使用@frame驱动种子每一帧采样随机→ findshortestpath任意0-1作为开始和结束点查找最短路径

popnet中设置 popsource继承grid发射粒子→ wrangle节点设置点运动状态→ popreplicate设置分裂(道路分子)使用split属性驱动→ proximity用于检测周围的粒子数量numproximity,如果超过阈值→ popkill判定粒子多少进行删除或者保留→ popinteract粒子相互排斥→ popreplicate粒子复制出拖尾

popnet中设置步骤

popsource中设置

使用第一个链接模型的points点发射,设置每帧发射一个粒子,设置生命长度为1,生命变化为0.3,stream名字为hero。

pop wrangle中的代码

这里用到了vex语言中制作旋转的方法(具体说明请参考之前的vex语言详解的文章)

除了设置随机旋转之外,控制@split的值,如果nage的比例大于0.9,那么split的值为1,否则为0

popreplicate设置

使用split属性来判定什么时候分裂,发射形态为point shape,设置属性为attributes,stream name还是使用hero。

pop proximity节点

添加了number in proximity attributes,用来统计粒子周围有多少个点?

设置查找范围max distance和最大的查找数量max count

pop kill中使用刚才创建的numproximity属性进行判定什么时候删除点

pop interact节点 让粒子相互躲避

最后一个pop replicate设置点拖尾

回到外面层级,add节点连线(基于id)

fuse合并多余的点和线

timeshift锁定到最后一帧不动

connectivity基于点创建class属性

基于class属性创建随机颜色(还是点层级)

找到最长的线的class值,使用代码删除没有选择中

sort对基于关键帧进行随机设置

通过findshortest path 可以查找到最短的 距离的曲线

和之前植物生长的案例很相似。这次是从一个grid网格开始生长而不是从一个点,然后赋予的力努力让粒子随机地沿着东南西北移动。他们会竟可能地互相躲避,如果他们的区域太过狭窄,那么就会自动停止。

最后面的测试设置是在把curve曲线融合在一起。找到最大的一块,然后随机旋转start和end的组,使用find shortest path sop来制作这个导航路的设置,很有趣!


—— CG猎人——

微信号:Hunter_CG

QQ-540710114

为您提供最具前景的咨询与最适合的分类技术与学习教程

(0)

相关推荐