目录

Legacy Pyro

Houdini 18 之前用于创建 Pyro 的方法。

Pyro 的基本结构

在 Pyro 网络中,我们需要以下的部分来组建整个模拟过程:

Sourcing

在 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的场)

Inside Pyro Solver

重要的属性 / 场

Pyro solver 要依赖自身的 Combustion Model 来进行模拟燃烧。在此期间,有几个属性(场)扮演了很重要的作用:

Combustion 的过程

整个个模拟过程大致如下:

  1. 通过指定的几何体在 SOP 中生成 temperature 属性与 fuel 属性。
  2. temperature 属性决定 fuel 所在 field 的燃点。当温度达到指定的值, fuel 会开始燃烧,并生成 burn 的 field。
  3. burn 会持续的生成 heat field,即可见的火焰visible flame)。通过控制 burn inefficiency 的选项可以决定每次燃烧后会剩下多少 fuel
  4. divergence(散度),该属性决定了体积的延伸会在多大程度上受 heat 的影响。
  5. 燃烧过程中会产生 smoke,smoke 的强度以 density 为基准作为判断。Dissipation / cooling rate 决定了燃烧产生的烟的密度变化的程度。
  6. velocity,默认情况下整个模拟中 velocity = 初始的 velocity 加上 temperature * Buoyancy(浮力).
  7. 如果 advect fuel 选项开启,那么 advect 将影响 temperature, heat, densityfuel

<html>

<img src=“/_media/vfx/houdini/dop/simulations/pyro/combustion_model_step.svg” width=“700”/>

</html>

Dependent
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