欢迎光临散文网 会员登陆 & 注册

[Houdini] Pyro solver (sparse) 工作原理

2022-02-27 19:07 作者:pandahgt  | 我要投稿

文章有自己理解的地方,不保证正确,也不适合初学者。目的是供自己以后查阅。


和模拟相关的域
模拟过程

1 如果了解pop solver的话,把pyro solver当作一个更复杂的pop solver可能会更好理解。不同的地方是pyro solver进行模拟的是volume。把几何体转换成pyro模拟需要的volume,houdini提供了pyro source这个节点,用于快速把几何体转成拥有特定属性的点,再用volume rasterize attribute节点把点转换成volume。

制作模拟源

2 pyro solver的sourcing选项对这些volume源进行进一步设置。

sourcing

3 在文章开头图片里提到的域里,只有density域不影响其他的域,模拟出的烟雾就是这个域,把它看作pop solver的粒子。把其他域看作pop solver里的各种力场。look选项下默认把density域作为烟雾显示。

denstity域默认作为somke显示

4 temperature域给denstity提供向上的升力,同时temperature域也在变化,它会冷却和向周围扩散。vel域提供速度。divergence域提供向域周围扩散或者吸收的力。在solver的shape选项下的Turbulence选项,像是pop solver力的pop wind,提供湍流扰乱的力。

5  shape选项下的disturbance和shreding根据文档的说法,在调节好大致形态后,用这两个选项调节细节。disturance对不同粒子的速度大小进行扰乱,可以把光滑的表面变得粗糙。shredding对不同粒子的速度方向进行扰乱,把整齐的运动方向变得无序。

disturbance和shredding

6 buoyancy升力和temperature有关,如果没有temperature域,这个选项没效果。

7 wind,常见的风力。

8 viscosity ,粘度。像是水墨效果,火焰似乎也有这种粘度。

9 flame域和其他的有很大区别,它会生成其他的域。在dop network里的pyro solver(sparse)的flame选项下,可以看到,它能生成density,temperature和divergence。这比较像直接引入了一个燃烧源。flame在solver外面一般叫做burn。

sourcing

10 threshold field用于选择力作用的域。然后力的大小再乘以control field选择的域的值,相当于一个遮罩。

11 即使只加入denstiy域和vel域,烟雾仍然表现得像烟雾,不是像粒子一样直接朝一个方向飞去,这可能和流体解算的关键步骤压力投射有关。

第12步
Pressure projection

12 手动创建collision域和collisionvel域和用static solver引入碰撞体两种方式除了创建方式不同外没有区别。


[Houdini] Pyro solver (sparse) 工作原理的评论 (共 条)

分享到微博请遵守国家法律