目录
Differences between legacy and sparse pyro
Getting started with pyro using shelf tools
Sourcing
DOP simulation
SOP simulation
Post-Processing
Rendering
Simple FX shelf tools
Pyro为Houdini的体积流体(volumetric fluid)模拟包;用于烟、火、爆炸,也可用于其他类似流体现象,如雾、雪崩;
注,与FLIP相反,Pyro不使用粒子来追踪流体,由于粒子对surface解析非常有用,因此Pyro不适合模拟液体;
Differences between legacy and sparse pyro
Legacy pyro works
H18之前,使用fuel场燃烧(在高温区,fuel被点燃,形成瞬时的burn场以提供heat场,从而捕获烟雾的发射部分;最后,输出将由积累的heat和瞬时burn场产生;
Sparse pyro works
新推荐的工作流,要求在SOP中生成瞬时burn场并作为源的一部分;此burn会被合并到flame和divergence场;此方法具有可预测和更多控制的优点;
Getting started with pyro using shelf tools
Simple FX shelf工具架,生成pyro模拟(使用Pyro Solver SOP),提供快速友好的用户体验,并避免手动构建动力学网络;通常是更好的选择,因为更简单、更友好、不需要分离的动力学网络;
Pyro FX shelf工具架,使用DOP pyro设置案例;
Related pyro nodes
Sourcing
Sourcing负责向模拟注入新的流体,建议使用光栅化点属性(Volume Rasterize Attributes)的方法来创建source volumes,可使用粒子模拟的结果来发射源;
Pyro Source | 将几何体转化为具有指定属性(如density、temperature)的点,可操作这些属性,以调整烟火特性; |
Pyro Source Spread | 模拟点上的fuel燃烧及heat扩散; |
Pyro Burst Source | 创建爆炸核心的源点,且塑造爆炸的外观; |
Pyro Muzzle Flash(Pyro Burst Source) | 创建枪火源点,且塑造枪口闪光的外观; |
Pyro Shockwave(Pyro Burst Source) | 创建爆炸冲击波源点,且塑造冲击波; |
Pyro Scatter from Burst | 在爆炸核心创建点,用于生成拖尾,火花,各种粒子,及飞溅的刚体碎片; |
Pyro Trail Path | 生成用作拖尾的曲线(为Pyro Trail Scource); |
Pyro Trail Scource | 生成沿曲线运动的源点; |
Pyro Source Pack | 从输入的volumes创建packed source,可合并多个packed source,可被实例化到pyro模拟中; |
Pyro Spawn Sources | 创建spawn点,实例化源库的元素,可精确控制位置和时间; |
Pyro Sources Instance | 从spawn点生成实例化源点; |
Debris Source | 使用RBD Bullet Solver输出来生成源点,用于从破碎处发射烟雾; |
Attribute Noise | 对点添加随机,以创建更有趣更真实的烟火效果; |
Volume Rasterize Attributes | 从点和点属性生成volume,为Pyro Solver; |
DOP simulation
Pyro动力学模拟的基本构成为:object、sourcing、solver;Smoke Object(Sparse)创建所有必要的场,Volume Source负责导入源,最终Pyro Solver(Sparse)应用力及演算流体场;
Smoke Object | 控制精度和域,及可视化; |
Volume Source | 导入volumes,并与object场合并(具有多种合并方式); |
Volume Instance Source | 与Volume Source类似,合并volumes,但使用实例化点; |
Pyro Solver | 基于Smoke Solver构建,添加火等控制; |
Smoke Solver | 烟雾解算器,但没有flame; |
DOP Import Fields | 将模拟结果导入的SOP,以输出和渲染;使用Pyro Bake Volume SOP创建和调整可视化数据; |
SOP simulation
Pyro模拟可完全在单个SOP中,避免切换;使用Pyro Solver SOP,pyro动力学网络的封装,可适用于大多数模拟;内置了Pyro Post-Process和Pyro Bake Volume,以确保可渲染;
Post-Processing
处理解算完的volume,以节省空间是非常重要的;可使用此节点,来优化;Pyro Solver SOP节点的Quick Setups->Optimize Exports可降低90%大小;
Rendering
最后是在视图或渲染中,尽可能获得最佳外观;须调整默认的颜色显示,默认是gamma2.2不足以显示和渲染pyro;使用ACES(Academy Color Encoding System);
Volume Visualization | 调整volume的可视化; |
Pyro Bake Volume | 调整volume以备渲染,视图结果非常接近于渲染; |
Pyro Shader | 由渲染使用的shader,以生成产品级的质量; |
Simple FX shelf tools
Pyro Muzzle Flash,创建枪火及额外的火星,非动力学模拟;
Simple Billowy Smoke,简单的上升烟雾设置(sparse pyro);
Simple GPU Ground Explosion,创建完全GPU模拟的爆炸(Minimal OpenCL Solve);尽可能快的模拟,可在模拟过程中实时操作参数(以快速反馈效果),会禁用某些功能;
- 禁用模拟的缓存,无法返回查看;
- 不支持Advection-Reflection;
- 仅执行dense模拟;
- 禁用动态流体框;
- 不可基于CFL Condition动态子步;
- 发射源和碰撞体有更多的限制;须指定帧范围,解释器会循环整个输入源;碰撞体须转化为SDF(collision)和速度场(v);
以下可提高性能:
- 避免使用Pyro Bake Volume节点;
- 关闭Field Guides和Shape Guides;
- 尽可能的循环源;
- 如使用microsolvers,开启Use OpenCL;
Simple GPU Torch,创建完全GPU模拟的火炬(Minimal OpenCL Solve);
Simple Fireball,创建上升扩大的爆炸火球(Sparse);
产品级文件:Fireball | SideFX
Simple Aerial Explosion,创建空中爆炸(Sparse);
产品级文件:Aerial Explosion | SideFX
Simple Ground Explosion,创建地面爆炸(Sparse);
产品级文件:Ground Explosion | SideFX
Simple Shockwave,创建地面爆炸(Sparse),并带有冲击波;
Simple Bonefire,创建篝火(Sparse);
Simple Spreading Fire,创建表面蔓延火(Sparse);