What & How & Why

这是本文档旧的修订版!


Legacy Pyro

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

Pyro 的基本结构

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

  • Source):这个部分一般在 SOP 中创建,再导入到 DOP 中。根据不同的需要,Pyro 会要求带有不同属性 的源(也称为 field),比如 densitytemperaturevelocity 等等。源创建完毕后,会通过 source volume 节点导入到 DOP 中。
  • 容器Container):这个部分处于 DOP 中的左上角,也就是初始化的部分。为了进行 Pyro 的模拟,我们需要首先创建一个容器来存储模拟的结果。该部分对应的节点称为 smoke object。容器的大小可以通过 pre-slove 的步骤来控制,比如 gas resize fluid dynamic 节点。
  • 解算器Solver):当所有数据准备好之后,我们通过解算器来进行数据处理。在 pyro 模拟中起作用的是 pyro solver
  • Extra:Houdini 中,Pyro 的解算与其他动力学部分深度集合。我们可以使用其他动力学的部分与 pyro 进行交互,比如重力等等。

Sourcing

在 Houdini 17 之前,Pyro 模拟采用 volume rep(体积表现形式)来生成源。Houdini 17 将源的生成方式从 volume rep 改成了 point based rep(点表现方式)。该种方式有两个优点:

  • 在绝大多数情况下,我们会使用 particle 来驱动 pyro 的源。因此使用点来表示源会更加的方便。
  • 相比使用体积,使用点属性来控制源会更加的容易。



<html>

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

</html>

该流程中,源最终还是会被转化成体积再导入到 DOP 中(volume rasterize),但点属性显然更加易于操控。

Pyro Solver 的属性作用

Pyro 模拟中,有几个重要的属性是必要的: