翻译的官方文档。虽然一些内容还是解释的传统流体,而不是新的稀疏流体,不过大体上还是对理解Pyro模块非常有帮助的。

field会被翻译为场或者域。sim会被翻译为解算或者模拟。

概述

Pyro solver是用来处理与热膨胀相关的气体,例如火、烟和爆炸。Pyro FX工具架包含了创建这些不同效果的工具。

这类效果通常由一个source geometry产生。比如,一个人的皮肤在着火。这个效果制作起来可以和创建球体一样简单,只要你单纯的只是想生成烟,无所谓source 形状是什么样的。

基于点的source

在houdini17以前,pyro发射源由不同的vlolumes来表示不同的属性(温度、燃料等等),从houdini17开始,用一些带有表示物理属性的点属性来表示pyro发射源。

  • 这符合大多数人模拟pyro的方式,比如先制作一个粒子解算,然后用粒子解算的结果作为烟火的发射源。
  • 这也让使用SOPs中编辑大量点属性,以此来操作属性变的更容易。

解算之前,点还是会被转换为volume,然而新的工作流程是编辑点和点属性,不再是直接编辑volume本身了。

点属性有着和volume一样的名称:density、temperature、fuel、divergence、burn、heat、velocity、collision、source和sink。

Pyro节点网络

Source SOP network

Pyro Source node
用来将source geometry转换为带有属性的点,你可以操控改变生成的烟火类型。比如,想要创建一个火球的效果,你可以在开始使用非常高的fuel,然后迅速的降低数值,以此来制作一个爆炸的效果而不是一个持续发射的火焰。
这个节点也可以控制怎样在source geometry表面或者内部撒点,创建什么属性,以及属性值。

Attribute Noise node
在点上创建一些随机的属性值,以此来创建一个更随机的效果。

Volume Rasterize node
根据点和点属性创建volume,以此来导入进DOPs中。

DOP network

Smoke Object node
控制烟火的精度,以及体素框的大小。
在DOP network中,这里的object是被解算出来的volume,而不是source geometry。source geometry通过Volume Source node导入进network中的不同分支里。

Volume Source node
这个节点将source network中生成的SOP Volume转为多个相应的volume域导入进DOP中。注意下属性名和volume域名可能会有不同,因为一些历史原因,比如v属性需要改为vel域。
通常来说,你需要将SOP属性导入到相应的DOP域中,除非你有需求,那也可以做一些改变,比如将一个属性分别导入进不同的域中。

Pyro Solver node
houdini有两个解算器用来解算基于网格的烟火模拟,Smoke solver用作基础流体解算引擎,它可以解算基础的烟效果,但是不支持解算火。Pyro solver建立在smoke solver之上,支持火模拟和更多的控制。

Output SOP network

DOP Import node
一个DOP Import node可以导入全部的域用来渲染,其他的导入节点只是为了快速显示相关的域用来在视窗中监察。

Pyro solver内核

  • 发射源添加temperature和fuel用来模拟
  • 当fuel存在,并且temperatur高于某个值的时候,burn属性被创建。
  • burn创建heat,也就是可以被看到的火苗。
  • burn燃烧不充分后会留下一定比例的fuel。
  • divergence表示热气导致的扩张。
  • Dissipation和cooling随着时间推移分别的减少density和temperature。
  • velocity = 初始velocity 加上 temperature 乘以 Buoyancy
  • Advection影响temperature、heat、density和fuel(如果Advect fuel在解算器中被激活)。
  • 在houdini中,temperature表示浮力buoyancy,velocity表示冲力momentum。

注意:

  • Multifield可视化可以同时显示heat(flame)和density(smoke)。
  • temperature是在解算中最重要的域之一,(另一个是velocity),它对于解算的动态和外观影响很大。虽然它并不经常用来渲染和可视化查看。在内部,它驱动着很多力场和shape操作器,比如Buoyancy、Shredding和Dissipation。
  • 当创建火焰模拟的时候,解算器会被扩展到燃烧模型。temperature Diffusion和Cooling Rate直接作用于温度场,对解算的速度衰减和细节模拟有着极大的控制。

temperature diffusion和viscosity就是模糊

temperature diffusion就是模糊temperature场。增大数值可以模糊高温度和低温度区域之间的界限并且增大温度场从源到模拟系统中的扩散。

viscosity是对速度场的模糊。增大数值会模糊速度之间的差异,比如shredding撕裂场和vorticles(小型的风车类型的漩涡)。假如你对现在的模拟很满意,但是就是有一点点太碎了,那就可以尝试稍微增大一些viscosity数值来模糊一下。

因为这些控制是用来模糊场,高的diffusion/viscosity值会减少系统中的temperature和velocity,因为这个操作是将高温/高速区域(例如,靠近源头)与周围(通常大得多)的非活动空间区域平均在一起。

渲染Pyro

首先应该在渲染前尽量增高精度。

使用micropolygon引擎渲染Pyro。

调整灯光阴影参数,设置Shadow type为Depth Map Shadows,Pixel sample为2×2,Shadow Quality为2。

想要在渲染中得到更多的细节,可以降低渲染参数中的Volume step size值。

(完)

Leave a Reply