Houdini·Dops(ing)

Cgwiki·HoudiniDops阅读笔记。

之前跟着教程练习时dop给我的感觉就是抽象,此外也有不少藏得很隐晦的内置变量需要去记住。

dop节点类别

  1. object dops:dop系统的容器,有 popObjectrbdObjectwireObjectgroundplanestaticObjectfluid objectsmoke object等等,模拟不同的东西对应使用相应的object就好。

  2. solver dops:计算模拟的节点,对应不同的object有不同的解算器,如模拟烟雾的pyro solver,线段的wire solver,粒子的pop solver

  3. merge dop,和sop的merge不一样,一般是用于引入碰撞体关系的

  4. force dops,处理力的关系

wire solver

demo 1:File:wire_v01.hipnc

wiresolver可模拟一端或多段固定在某一位置上的线运动。根据官网文档,wire solver使用变量pintoanimationgluetoanimation来确定哪些point会固定在target物体上,即在进入dop模拟前,需要为point标记上诸如@gluetoanimation=1的属性表达该点位置固定在target上不参与模拟。

模拟的时候只是用点和线,尽量简洁,否则模拟耗时且容易出bug,具体模型在模拟完后再加上。

demo 2:File:wire_worms_v01.hipnc

pop solver

同样的有专门的pop vop来进行dop内的顶点运算。

一般pop dop的内部结构如下图:

demo 1 Maze

@sourceptnum记录了粒子发射点的id,常结合add用于拖尾效果的制作。

这个效果如果能不散开好像很适合做苍蝇群…

demo 2 雨滴

hittotal计数撞击到刚体的particle数量

ps. 点击节点右侧的齿轮icon→promote parameter可以快速添加dock参数节点。顺便,对节点右键,在inputs/outputs中可以隐藏(dock)输入或输出的节点。

参考

  1. Particles in Dynamics · 参数文档

  2. Yarnworks: Wire Solver and Constraint Networks in DOPs