Houdini 18 之前用于创建 Pyro 的方法。
在 Pyro 网络中,我们需要以下的部分来组建整个模拟过程:
density
、temperature
、velocity
等等。源创建完毕后,会通过 source volume
节点导入到 DOP 中。smoke object
。容器的大小可以通过 pre-slove 的步骤来控制,比如 gas resize fluid dynamic
节点。pyro solver
。在 Houdini 17 之前,Pyro 模拟采用 volume rep(体积表现形式)来生成源。Houdini 17 将源的生成方式从 volume rep 改成了 point based rep(点表现方式)。该种方式有两个优点:
<html>
<img src=“/_media/vfx/houdini/dop/simulations/pyro/pyro_sourcing_flow.svg” width=“600”/>
</html>
该流程中,源最终还是会被转化成体积再导入到 DOP 中(volume rasterize)。
通常,SOP 中的 attribute 与 DOP 中的 field 是等价概念。(注:在 Houdini 17以前使用的 fluid source 产生的速度场是基于 volume 生成的,与之后版本的 point 速度场有区别。但从概念上来说 SOP的属性就是 DOP的场)
Pyro solver 要依赖自身的 Combustion Model 来进行模拟燃烧。在此期间,有几个属性(场)扮演了很重要的作用:
整个个模拟过程大致如下:
temperature
属性与 fuel
属性。temperature
属性决定 fuel
所在 field 的燃点。当温度达到指定的值, fuel
会开始燃烧,并生成 burn
的 field。burn
会持续的生成 heat
field,即可见的火焰(visible flame)。通过控制 burn inefficiency 的选项可以决定每次燃烧后会剩下多少 fuel
。divergence
(散度),该属性决定了体积的延伸会在多大程度上受 heat
的影响。density
为基准作为判断。Dissipation
/ cooling rate
决定了燃烧产生的烟的密度变化的程度。velocity
,默认情况下整个模拟中 velocity = 初始的 velocity 加上 temperature * Buoyancy(浮力).temperature
, heat
, density
和 fuel
。<html>
<img src=“/_media/vfx/houdini/dop/simulations/pyro/combustion_model_step.svg” width=“700”/>
</html>
Smoke(density) | Fuel / Burn rate / Smoke Amount |
Flames(Heat) | Fuel / Burn rate |
Temperature | Fuel / Burn rate / Flame & Burn Contribution(可以使用 heat 或者 burn 来产生 temperature) |
Expansion(divergence) | Fuel / Burn rate / Gas released |