设置和配置一个烟火解算器。此解算器可以用于创建火和烟雾。
pyro解算器时烟雾解算器的一个扩展。如果你想只生成烟雾,但没有火,你可以考虑使用烟雾解算器,因为它更快。但是pyro解算器更灵活。
Setting up
如果你使用工具创建Pyro效果,其会给你自动设置设置源对象,解算器,以及输出物体。
如果你手动设置pyro网络,你可以使用 Smoke Object node节点创建一个DOP物体(其会附加烟火解算器所需要的数据)如果你已经有一个DOP物体,你可以使用 Smoke Configure Object node添加所需要的数据。
解算器会利用物体上各种场数据。
物体应当有一个用于烟雾密度的标量场density。
物体应当有一个用于每个体素处速度的矢量场vel。
另外,物体可以有一个标量场temperature ,用于内部浮力的计算。
Inputs
smokesolver#object_input —物体的输入端。
smokesolver#presolve_input —预结算输入端。
smokesolver#velupdate_input —速度更新输入端。
smokesolver#advection_input —传输输入端。
smokesolver#sourcing_input –源输入端。
Parameters
Simulation
这些参数控制着模拟如何随着时间变化。查看pyro模拟如何工作,获取更多关于温度和速度场如何驱动模拟扩散的信息。
Time Scale | 对烟火的模拟进行时间缩放。 |
Temperature Diffusion | 是温度场的一个高斯模糊因子。高的值会更多的向外扩展烟雾,创建更少的尖锐效果。例如,值为2会每秒使用值为2的半径模糊温度场。真实世界中该参数是模拟扰乱效果,会向外扩散场。 |
Cooling Rate | 设置烟雾的冷却快慢。值为0.9会每秒降低90%的温度。 |
Viscosity | 速度场的流动性。高的值会使临近的体素有同样的速度,创建一个更像流动的效果,值为0会允许临近的体素值朝着任意方向移动(没有限制性),创建一个更随机的,紊乱的效果。 |
Buoyancy Lift | 每个体素处向上的力会被环境温度和体素温度值的差所缩放。因此,越热的区域会上升越快,冷的区域会下沉。增加该值可以使烟火效果上升更快。 |
Buoyancy Dir | T设置所运用的浮力的方向。 通常用于向上提升,模拟,也可以快速的调节模拟的运动方向。 |
Combustion
燃烧中,首先会获取燃料场,然后再将其转为燃烧,温度,密度场。
Enable Combustion | 启用阴影Pyro解算器的燃烧模式。如果关闭它,燃料场,以及任何和燃烧相关的都会被忽略。 |
Ignition Temperature | 设置温度的燃点。 |
Burn Rate | 设置燃料场每秒燃烧速率。0.9表没描述燃烧90%的燃料。 |
Fuel Inefficiency | 控制实际中,有多少燃料没有被燃烧。0表示所有燃料会从燃料场中被移除。1表示当其被点燃时,没有燃料会被从燃料场中移除。 |
Temperature Output | 设置没单位燃料燃烧所增加的温度。此会影响热度和燃料场。 |
Gas Released | 是一个缩放因子,控制由多少气体会被注射到燃烧的燃料中。此会导致燃烧区域向外扩散。 |
Flames(火)
Flame Height | 缩放火的高度。高的值会使火焰值更高。低的值会产生更小的火焰。此值不会以任何单位来测量,其只会影响运用到火上的冷却数量。非常低的值不会产生任何小的火焰。 |
Cooling Field | 当启用时,在给定场中的数值(默认是 temperature)会被使用,用于改变容器中火的冷却率。 |
Cooling field range | 用于控制场映射到冷却数量上的范围值。 |
Remap heat cool field | 渐变的垂直轴表示冷却数量,水平轴表示控制场中的数值。例如,定义该渐变的外形,(左侧高,右侧低),会在温度低的地方运用更多的冷却率。 |
Smoke(控制烟雾的发射)
Emit Smoke | 启用从燃烧物体上发射烟雾。 | ||||
Create Dense Smoke | 添加烟雾到系统中,不会考虑以及出现了多少烟雾。此可以用于非常大的爆炸,和大的烟雾扩散。 关闭此项时,每个体素中的烟雾只能添加到指定的最大数量值,产生更轻的烟雾。 | ||||
Source | 从何处发射烟雾。最好的方式是Heat方式,此更真实,且会避免烟雾在源对象处模糊火焰。
| ||||
Smoke Amount | 缩放要被添加的烟雾数量。基本的烟雾值取决于Source 参数所设置的场中的数值。 | ||||
Heat Cutoff | 在其处发射烟雾的热度场的数值。当Source 参数是“Heat”时,此项才可以使用。例如,如果Heat cutoff 是0.2,烟雾会出现在值为0.2的热度场,或更低的热度场处。混合数量参数控制着在热度剪切点处会发生什么。 | ||||
Blend Amount | 增加此参数可以参数一个光滑的火到烟雾的转换,即在 Heat Cutoff 值上添加一定的衰减。在Source参数是“Heat”方式时,该选项才可使用。 在下面这个图中,烟雾的产生分为三个区域: full amount 、Decreasing、None。此参数值就是控制其混合效果。值为0不会在heat cutoff上方添加烟雾,值为1会混合在cutoff点处添加的“ full amount”类烟雾,即在高热量值区域减少烟雾数量。 |
Fuel
Advect Fuel | 当此项关闭时(默认关闭),燃烧会是静态的,且不会被速度场所影响。当此项开启时,燃料场会像温度,热量,密度那样被传输。开启此项会导致一些不精确的结果,以及会减慢计算。 |
Fuel Speed | 燃料值可以被传输的最大速度值。 |
Shape
此选项卡中的参数控制火/烟雾的形状,以及其变化。除了消散场,其它都会以内部力方式来影响速度场。
记住烟雾物体的分辨率定义着你可以在火/烟雾中获取的细节度。不管怎样,Pyro解算器很大程度上独立于分辨率,因此你可以在低分辨率系工作,然后提升分辨率,产生类似的,更有细节的效果(通常用Gas Upres来提升分辨率)。
Houdini有两种方式可以向火中添加噪波:分解和紊乱。
Shredding是主要的向火中添加高频率的噪波方式。它会挤压和拉伸速度场来创建一个火舌状的,流动的火。
你应当使用紊乱方式来添加低频噪波:旋转,搅拌,大规模的运动。
对于每个形态参数,都有一个开启该形态的选项,以及用于控制运用多少形状的缩放因子,下面的这些参数包含着控制和可视化每类型形状的参数。
Note
你可以添加额外的速度场来更新DOP,如添加Vortex Equalizer, Gas Wind Dop 以及 Gas Damp Dop 到其第二输入端(速度更新端)。
Dissipation | 会导致烟雾随着时间消散。低的值会使烟雾慢慢消散,高的值会使烟雾快速消散。值为0.1表示每秒消散10%的烟雾。 |
Disturbance | 产生烟雾或火中特定尺寸的细节,不会改变整体的运动,或模拟的形状。 |
Shredding | 基于热度场的渐变值来推动,或拉动速度场,创建出条纹,分离的,舌状类型的或。 非常高的值会产生非常随机的,分形的外观. |
Sharpening | 锐化速度场中的特性,是烟雾更纤细/条纹化,而非柔软/蓬松。当你不使用太多的撕裂值时,要在火中增加其特性,但不会过分的锐化,在体积中产生任意的效果时,此选项会非常有用。 |
Turbulence | 相速度场中添加搅乱噪波。使用该值可以添加大规模的/低频率的噪波。对于运动非常快的火,使用该项会非常有用。 |
Confinement 限制 | 增强漩涡效果,在模拟中增加卷曲度,太高的值可能会使模拟不稳定,或崩溃。负值会抑制漩涡的产生,并光滑模拟的结果,通常最号使用一个低分辨率的栅格。 |
Dissipation
Control field | 当启用时,外露的力会被该场的值缩放。 |
Control range | 使用该范围映射控制场的范围。 |
Remap dissipation field | 渐变的垂直轴表示消散数量,水平轴表示控制场中的数值。例如,默认的渐变外形,(左侧高,右侧低),会使烟雾在温度低的地方消散更快。 |
Disturbance
Field To Disturb | 要将扰乱力运用到其上的场对象。 |
Cutoff | 默认会忽略值高于“阈值场”值的体素,(默认是密度场,你可以在Binding选项卡中改变该场)。此可以让你只影响烟雾的边缘。 |
Use Block Size | 当此项开启时,会使用Block size 参数来设置世界空间单位中扰乱元素的尺寸。当关闭此项时,会使用其所在的位置来控制体素中扰乱元素的尺寸。如果你缩放容器,使用阻块值可以避免一些问题。 |
Block Size | 世界单位中,所添加的细节尺寸。高的值会产生更大的扰乱元素。当Use block size 启用时,可以使用该项。 |
Locality | 被采样到特定扰乱数量值的体素数量。高的值会产生更大的扰乱元素。当Use block size 启用时,可以使用该项。 |
Control settings
control_settings
Bindings
Threshold Field | 在该场中,值高于 Cutoff 产生值的区域,不会被扰乱。 |
Shredding
Temperature threshold | 温度低于该值的地方,速度场会被拉伸,温度高于该值的地方,速度场会被挤压。低的值会在边缘处产生更多撕裂效果(边缘处的温度低)。 |
Threshold width | 此是设置温度阈值的阈值宽度,在其处,挤压和拉伸会被模糊。低的值会产生更坚硬的挤压和拉伸,高的值产生光滑的条纹。 |
Squash | 当温度高于“温度阈值”时,设置挤压速度场的程度。 |
Stretch | 当温度低于“温度阈值”时,设置拉伸速度场的程度。 |
Clip gradient | 裁切所计算的温度渐变值到最大值。当模拟非常高的温度值时(如爆炸的火球),此会非常有用。 |
Control settings
此选项卡中的控制可以让你基于一个场的值改变容器边界的分解效果。
Control field | 当启用时,外露的力会被该场的值缩放。 |
Control influence | 是一个用于控制场的影响效果的缩放因子。值为0会使场无效。 |
Control range | 使用该范围映射控制场的范围。 |
Remap control field | 启用或禁用控制场渐变。 |
Control field ramp | 渐变的垂直轴是效果的强度,水平轴是控制场中的数值。 |
Visualization
Visualize shredding | 开启此项可以在视窗查看此效应所运用到速度上的力的可视化效果 |
Bindings
不要改变此选项卡中的数值,除非你知道你在做什么。
Sharpness
Field name | 要锐化的场名称(通常是代表烟雾的密度场)。 |
Locality | 当锐化时,解算器所采样的体素数量。当锐化时,非常小的连接着的滴对象可以被去除。此参数定义可被锐化移除的滴状对象的尺寸。 |
Turbulence
Swirl size | 设置自旋的尺寸(使用Houdini的单位)。 |
Grain | 是一个缩放值,会缩放添加到swirls (自旋)上的噪波值 。 |
Pulse length | 噪波的频率(时间上的频率)。 |
Seed | 设置用于生成噪波的随机种子值。 |
Influence threshold | 扰乱力不会被运用到密度值低于该值的体素对象上(可以在 Bindings 选项卡中该边场)。此会大大的优化性能:此值你设置的越高,扰乱越快速,因为它会跳过更多体素对象。 |
Turbulence | 要添加到自旋上的噪波的数量。 |
Control settings
Control field | 当启用时,外露的力会被该场的值缩放。 |
Control influence | 是一个用于控制场的影响效果的缩放因子。值为0会使场无效。 |
Control range | 使用该范围映射控制场的范围。 |
Remap control field | 启用或禁用控制场渐变。 |
Control field ramp | 渐变的垂直轴是效果的强度,水平轴是控制场中的数值。 |
Visualization
Visualize turbulence | 开启此项可以在视窗查看此效应所运用到速度上的力的可视化效果 |
Bindings
不要改变此选项卡中的数值,除非你知道你在做什么。
Confinement
Control field | 当启用时,外露的力会被该场的值缩放。默认的控制场是confinement,其会在每个体素上存放所计算的卷曲值(高的卷曲值意味着是小的漩涡)。 |
Control range | 使用该范围映射控制场的范围。 |
Control influence | 是一个用于控制场的影响效果的缩放因子。值为0会使场无效。 |
Visualization
Visualize confinement | 开启此项可以在视窗查看此效应所运用到速度上的力的可视化效果 |
Control field ramp
Remap control field | 启用或禁用渐变场的控制。 |
Control field ramp | 渐变的垂直轴表示限制的数量,水平轴表示控制场中的数值。例如,默认的渐变外形,(左侧高,右侧低),会在卷曲值高的地方添加更多的限制。 |
Bindings
不要改变此选项卡中的数值,除非你知道你在做什么。
Relationships
在Houdini12之前,Pyro解算器会使用DOP关系来将源对象,水泵对象,sink以及碰撞几何体和流体容器产生关联,使用Merge DOP/Apply Relationship DOP来创建这个关系。在H12和之后的版本中首先方式是使用SOP网络创建源,水泵,Sink,以及碰撞几何体,并使用Source Volume DOP导入它们。
如果你想使用旧的关系方式来设置源,Sink等关系,你可以使用该选项卡中的参数来启用关系。默认,关系是关闭的,解算器会忽略这些关系。
你可以同时使用这两种方式,即导入导入DOP物体,并将其附加到解算器的“源”输入端,以及设置DOP物体的关系。当启用关系时,解算器会合并两种方式之间的源,Sink等关系。
Enable Relationships | 使用物体的关系数据来添加源,水泵,SInk以及碰撞几何体关系到模拟中(以及连接被导入的数据到源输入端)。 |
Sources
Enable Source Relationship | 将物体作为一个源对象处理,即Pyro的模拟会从该物体上产生。 | ||||||
Add Source To | 将源对象添加到哪个场上。默认是密度(其会创建烟雾)。要创建火,你可以将此改变为fuel(燃料),并设置源物体的温度属性。 | ||||||
Source Merge | 如何将源物体的体积添加到模拟中。会缩放所添加的数量。 | ||||||
Velocity Merge | 源物体的速度如何影响容器对象的速度场。会缩放所添加的数量。 | ||||||
Temperature Merge | 源物体的温度如何影响容器对象的温度场。缩放控制着要添加的温度数量。 | ||||||
Velocity Type | 如何测量源物体上的速度。如果源几何体没有随着时间变形,可以使用“刚性速度”。如果源几何体随着时间变形,但不会改变拓扑,可以使用“点速度”方式。
|
Pumps
Enable Pump Relationship | 给DOP物体使用一个“水泵”关系,即DOP物体会作为一个水泵,对烟雾产生推动作用。 |
Velocity Merge | 源物体的速度如何影响容器的速度场。缩放参数控制着所添加的速度数量。 |
Velocity Type | 控制水泵物体的每点速度是如何计算的。 |
Temperature Merge | 物体的温度属性是否会影响容器对象的温度场。如果你选择“Set interior”, 方式,在物体内部的部分温度场会被设为物体的温度值。 |
Collisions
Enable Collide Relationship | 给DOP物体使用一个“碰撞”关系,即DOP物体会和烟雾碰撞。 |
Temperature Merge | 物体的温度属性是否会影响容器对象的温度场。如果你选择 “Collision interior”, 方式,在物体内部的部分温度场会被设为物体的温度值。 |
Restrict Mask to Bandwidth | 使用碰撞遮罩,只会从原始的碰撞几何体上计算到一定的距离范围。关闭此项会计算遮罩的完整范围。 |
Use Point Velocity for Collisions | 如果碰撞物体是变形的,但是有固定的拓扑,可以开启此项,如果拓扑也不固定,可以开启Use volume velocity for collisions方式。 |
Use Volume Velocity for Collisions | 如果变形几何体随着时间是变形的(改变形状),且拓扑也会改变,可以开启该项。 |
Collide with Non-SDF | 允许流体和没有SDF的物体碰撞,如其他流体。 |
Extrapolate into Collisions | 拷贝密度和燃料场到碰撞场中。此会导致烟雾变得有粘性,可以避免烟雾和碰撞直接的空气带。也可以避免烟雾穿过碰撞场。(物体的运动会带动烟雾的运动) |
Correct Collisions | 在每个步幅上,清空碰撞遮罩内的密度场。此可以避免烟雾穿过物体,或被困在物体内部。 |
Sink
Enable Sink Relationship | 给DOP物体使用一个“Sink”关系。 |
Advanced
通常你不需要改变这些参数。
Use OpenCL | 默认,DOP中启用了缓存。 默认是启用了重设大小。重设大小必须通过CPU来管理场的变化。它可能会打碎GPU内存,导致内存溢出错误。 |
Minimum Substeps | 强制设置解算器所运行的最小子步幅尺寸。通常, pyro solver 不需要子步幅。如果你使用的是烟雾解算器,可以增加此值获取一个更稳定的效果。增加它会使模拟变慢。 |
Maximum Substeps | 强制设置解算器所运行的最大子步幅尺寸。增加它也会使模拟变慢。 |
CFL Condition | 当最大子步幅大于1时,解算器会使用该参数来定义子步幅的数量。其条件是:没有子步幅会允许一个物体以大于该体素数量产生渗透的。高值可以通过更多的子步幅来移动烟雾,很可能让它穿过碰撞物体。 |
Frames Before Solve | 指定在完全解算完成前,等待的帧数量。只有这些帧或运用到运用到上一此解算器输入端的会被计算。 |
External Forces
Scaled Forces | 是一个被每个体素处forcescale 场所缩放的力的列表。默认是所有的力,除了重力。 |
Absolute Forces | 统一运用到所有体素上的力列表,会忽略forcescale 场。 |
Rest Field
Enable Rest | 启用静止场,可以用于跟踪流体随着时间的运动。开启此项可以在体积材质上映射噪波或纹理。 |
Dual Rest Fields | 创建一个rest2 场,即是一个有主要的rest场返回的场,允许你运行较长的模拟,无需 |
Frames Between Solve | 在重设静止场前,帧的数量。 |
Frame Offset | 静止场会在哪一帧被重设。如果你在预滚动模拟,可以延迟静止场的初始化,直到预滚动完成,通常此会产生一个好的结果。 |
Time Scale | 设置经常场对速度场反应的快慢。值为1会使静止场精确的匹配速度场,值小于1会使静止场的移动比真实流体慢。 |
Projection
模拟中“映射非分散”的步骤会移除速度中分散的元素。
Projection Method | 设置映射非分散对象的算法。“PCG”有更精确的边界条件,可以避免计算碰撞物体的内部。“ Multigrid ”更快,特别是在大的高分辨率的容器中。 |
Multigrid Iterations | 设置 multigrid 方式中计算的迭代次数。增加此值可以强制其映射多次,使其更精确(不要高于5). |
Advection
Advection Type | 用于传输场的算法。
| ||||||||||
Clamp Values | “BFECC and Modified MacCormack ”传输类型的错误校正可以移除超出容器的外的体素值,导致产生负的密度值的奇怪的效果。此参数可以让你选择一个方式来避免这个问题。默认是“重置”方式。
| ||||||||||
Vel Advection Type | 用于传输速度场的算法。列表中更高的类型会降低场的外观粘度。 | ||||||||||
Advection Method | Controls particle tracing. 控制粒子跟踪。
| ||||||||||
Advection CFL | 当跟踪粒子时,此控制在单次迭代计算中,粒子可以移动多少体素。高的值会产生快速的传输,和快速的跟踪,但会有更多错误。 |
Timescale
Burn Influence | 解算器的“时间缩放”参数影响燃烧的数量。你应该让该值设为0,因为燃烧场的计算不需要缩放,当改变此值时,会产生不可以预期的结果。 |
Heat Influence | 解算器的“时间缩放”参数影火焰高度的数量。当你改“变时间缩放”参数时,该参数会弥补真实火焰的损失 。设置此为1,当时间缩放参数改变时,可以争取的缩放火焰,但火焰不会变小。 |
Collisions
Correct Collisions | 设置碰撞物体内部的密度,燃料场为0.此可以避免燃料和密度从移动的物体中漏出。 |
Feedback Scale | 是一个烟雾对物体反作用的力的缩放因子。值为0,烟雾不会反作用于物体(没有反馈效应)。 |
Clear
Fields to Clear | 在解算完步幅后,清空指定的场类型。此可以去掉不需要的.sim 文件,减少模拟数据的尺寸,节约保存时间。
| ||||||
Additional | 此处是一个用空格隔开的额外场列表,在解算处理完成后,这些场数据会被清空。 |
Outputs
First Output | 此操作节点的输出取决于连接到该节点的输入对象。如果一个物体流输入到该节点,输出也会是一个包含同样物体的物体流(但是会在物体上附加该节点的数据)。 如果没有物体流连接到该节点,此输出就会是一个数据数据。此数据输出可以被连接到一个Apply Data DOP节点上,或者之间连接到其它数据节点的输入上,将该节点的数据附加到另外一个物体或数据块上。 |