目录
Visualization
General workflow
Tips and troubleshooting
Pyro模拟的速度和外形,由许多参数组合控制;
Visualization
在制作的整个过程中,检查模拟场的状态是非常有用的;Smoke Object具有许多场的可视化选项;最有用的可视化为Multi Field,显示渲染时的所有volumes,其影响外观的最重要设置如下:
- Density Field,用于smoke的厚度;
- Diffuse Field,用于给smoke上色;
- Emission Field,用于发光,可设置为flame或temperature;
- Emission Color Field,控制发光的颜色,可设置为temperature;
General workflow
解算器的许多参数都对模拟结果有影响;最好是分解为一系列任务,每个任务都不影响先前设置的效果,如下:
- 创建发射源;
- 设置基本模拟参数;
- 设置温度和浮力参数;
- 设置相对flame场的参数;
- 调节外形shape操作;
创建发射源
发射源对新注入smoke的外形和行为有很大影响,应创建有趣变化的源,不必担心最终结果的细节;
- 对静态烟火模拟,对源添加noise(Attribute Noise SOP);
- 对蔓延的火,确保传播行为正确(Pyro Source Spread SOP);
- 对爆炸,可使用Pyro Burst Source SOP创建爆炸核心外形,还可添加拖尾(使用Pyro Trail Path和Pyro Trail Source);
还应确定源值的范围,特别是temperature、flame,可使用Attribute Promote SOP计算最大值,对后来在解算器上设置参数有用;
设置基本模拟参数
一旦设置好发射源,接下来就是设置模拟的基本参数,以使模拟正确工作;
Smoke Object:
- Voxel Size,相对场景比例设置;
- Boundary Conditions,可添加地面或实体墙;
Pyro Solver:
- Max Timesteps,默认为1,应该足够,但对快速流体应增加;
- Padding,应足够大以适应时间步长内的运动;
设置温度和浮力参数
通过浮力,温度场对smoke的整体运动有很大影响;通过Ambient Temp (K)和Reference Temp (K) 控制浮力;
- Ambient Temp (K)
- Reference Temp (K)
- Gravity
- Buoyancy Scale
- Cooling Rate
设置相对flame场的参数
解算器Flames标签内的参数对模拟有重大的影响,先首先调整“Flame Lifespan”参数,然后开启所需的输出;
调节外形shape操作
以上旨在确定smoke的外形和运动,一旦满意,即可使用shape操作,来添加细节;Pyro解算器有4个内置shape操作,如dissipation、disturbance、shredding、turbulence;
- Dissipation,降低density值,以便烟雾消散;
- Disturbance and Shredding,应用随机力以分解模拟;Disturbance产生线性加速度,对破开光滑烟冒有用;Shredding旋转速度方向,对不加速或减速添加扰乱有效(特别对火模拟有用);
- Turbulence,将强大的大尺寸noise添加到速度中;
Tips and troubleshooting
- Advection-Reflection,可极大有助于涡流保存;
- Disabled,对涉及divergence场(如爆炸)是最安全的选项;
- Single-Project,使用廉价的方式,不会增加过多开销;
- Double-Project,最佳的保存涡流方式,会增加子步数一倍;
- Time Scale,此参数可动画,特别对爆炸有用,在开始设置高值以捕捉初始剧烈爆炸;
- Disturbance模式设置为Continuous,将在每体素添加独立的noise,对雪崩很有用;但对体素太小,可能会不理想;
- 在解算器的Forces输入端口,应用自定义力;
- 在sparse内,如出现阶梯伪影,可增加最大子步或增加Padding;
- 如发射源或模拟非常快,子步不够会出现明显的streak;
- 如烟雾几乎没有和碰撞体交互,增加IOP Iterations可能有碰撞;
- 如注意到轴对其的烟雾条纹,可开启Hourglass Filtering;
- Sparse解算器会批量执行驱动,以加速模拟;如遇内存问题,可设置Max Batch Size;