1.在dop network中将pyro solver与staic solver或rigid body solver merge在一起
这种方式最简单,直接用工具架就点出来了,之后在staic object中选择适当的collision的类型,不过这样会有个问题对于凹面的几何体并不能与pyro得到正确的碰撞(当然刚体之间碰撞是没有问题的),即使已经选择了concave方式。
2.在dop network中将碰撞场导入进来
这是比较实用方式的。其中有三种方式做出碰撞场:VDB,isooffset节点,fluid source节点。用source volume 将碰撞场导入进来同时将initialze设置成collision,同时注意sop中的volume导入到dop中 field的名字填写正确。这里需要注意一点是pyro 的解算精度决定了碰撞精度,因为碰撞场是作为 source volume 导入的,在smoke object里打开显示collision场,可以观察collision是否正确。
VDB方式制作碰撞场
这是比较推荐的一种方式,因为VDB非常的快,我刚刚做了一个凹面几何体的场,VDB的速度是fluid sourc的几十倍。SDF field和density field是相反的,使用volume slice节点可以很直观的看出来,所以在source volume中的scale source volume需要改成负值。
fluid source节点制作碰撞场
fluid source虽然没有VDB速度快,但是fluid source节点自带了很多功能,省的我们自己去写vop了,所以很多时候fluid source来导入source volume,强大方便。制作碰撞场需要再这里设置一下。
isooffset节点
这种方式似乎不大会用到,简单说一下吧。output 选择sdf。之后也需要在dop中设置负值,同时提高 uniform sampling divs。