houdini中不得不掌握的技术集锦(9)粒子复制生成流程

——  微资讯 · 微课程  ——

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

原文地址http://www.tokeru.com/cgwiki/index.php?title=HoudiniDops

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


粒子入门案例,主要展示了粒子入门效果。主要学习粒子的分组,碰撞属性和参数使用,使用wrangle节点和popreplicate节点设置。


Pop replicate and hittotal

Pop中的复制和hittotal 碰撞总数


基本流程设置,创建grid作为发射物体,xform调整位置,normal控制法线,wrangle节点把速度属性与法线关联连接到popnet中input1中,同样,新建一个猪头,然后加载到popnet中作为碰撞体

在popnet中设置:基本的pop网络设置,使用popwrangle节点设置颜色和popreplicate进行粒子复制,使用merge节点把左边的碰撞体与popsolver连接,产生碰撞。


初始化设置

我设置了一个inputs输入端(猪头模型,还有发射平面,并且创建@v速度属性),然后把它们连接到popnet中,把发射平面连接到第一个input中,进入到popnet网络

在里面,popnet已经为我们设置了一些节点,一个solver,一个object和一个source

source object-默认情况下从第一个input中读取物体,基于模型创建粒子。如果输入端有@v速度属性,那么粒子会继承这个速度。这在个节点可以设置发射率和粒子寿命

Pop object-houdini节点中用来包含粒子的节点。对于其他dop系统它代表了空间中的一个物体体积,更像是一个内存容器

Pop solver-用于每帧解算,和力的因素考虑进来。使用这个节点来改变次级步幅,如果有需要的话,或者进行solver的缩放(这个可以在上一层级dopnet中调整)

在这个设置中我添加了一个gravity节点,放在了solver的后面。

在gif图片中你可以看到粒子后面有个拖尾,这个是对速度的可视化。在视图右边中可以激活速度显示


碰撞

如果要添加一个碰撞物体,那么在动力学中tab创建一个static geo节点,然后把路径指定到pig猪头物体。让他们碰撞,需要创建一个merge节点,把static goe节点和solver合并在一起。这个需要花点时间理解,感觉很简单,但是实际上就是这样。把solver合并或者把static 物体和solver合并可以让他们互相碰撞。注意merge链接的顺序也很重要的,左边链接影响右边。在这个案例中,我们需要static geo影响solver,所以如果顺序错了,你可以使用shift+r进行翻转输入端顺序。如果有多个输入物体,那么使用参数面吧来做这个顺序调整。

我还添加了一个groud plane地面物体,它是个无线地面的虚拟代表,同样把这个节点连接到merge节点,同样需要让它保持在solver的左边。最开始我想使用一个grid物体,但是粒子会穿透,后面我会有更详细的解释。

有基本的碰撞排列,是时候看如何使用碰撞来驱动颜色和复制生成更多的粒子了。

在solver节点中,在collision behavior,激活 add hit attributes属性,dopnet会自动添加hit碰撞次数这个属性,但是我们该怎么查看这个属性呢?


显示粒子的属性

找到geometryspreadsheet,发现这里不再是显示点信息了,变成一个很奇怪的树状视图。但是每粒子的属性信息依旧在这里,知识被折叠隐藏了。在视图中选择popobject,在里面有一个geometry物体,选择它,右边会显示会熟悉的点属性模式,让场景播放并且查看粒子碰撞,你会发现很多hit_属性的值


Hittotal 碰撞总数属性

其中一个是hitttoal,正如其名,就是记录粒子碰撞的次数。我们用到的第一个技巧就是使用它来改变我们粒子的颜色

在source节点后面,我们添加一个pop wrangle节点,输入下面的表达式

@Cd={1,0,0};if(@hittotal>0){@Cd={0,1,0};}

第一行代码是设置所有的粒子为红色,但是如果hittotal这个值大于0,让粒子的颜色变成绿色。重新播放解算一遍,能看到预期的效果。

复制生成新的粒子

现在我们把碰撞的粒子生成更多的粒子。这里有一个节点是做这个效果的,popreplicate节点。把他创建并且在wrangle节点后接入,你会发现所有点都会生成一堆新的粒子,这个并不是我们想要的结果。我们要确保只有碰撞后的粒子才会生成一堆新粒子,所以我们要使用一个组来限制。

这样只有在碰撞之后粒子才会生成。接下来,让效果更有趣,进入到属性标签,设置继承速度和弧度速度为0.5.让他们和父粒子的运动方向有区别。如果你把initial velocity中选择下来参数add to inherited velocity添加到继承速度。你可以获得更多的变化控制,这个会有帮助。最后,在shape标签下,设置mode模式为circle圆圈,在birth tab设置lifespan的值为2,cost activation和cost rate的为0,然后impulse activation为1,impulse的数量为20.POP发射可以基于每秒发射或者每帧发射,在这里,我需要精确控制每个粒子分裂的数量。



—— CG猎人——

微信号:Hunter_CG

QQ-540710114

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

(0)

相关推荐