本 Wiki 开启了 HTTPS。但由于同 IP 的 Blog 也开启了 HTTPS,因此本站必须要支持 SNI 的浏览器才能浏览。为了兼容一部分浏览器,本站保留了 HTTP 作为兼容。如果您的浏览器支持 SNI,请尽量通过 HTTPS 访问本站,谢谢!
这是本文档旧的修订版!
供烟雾与火焰效果使用的解算器。
Pyro Solver 是进阶版本的 Smoke Solver。相比 Somke Solver, Pyro Solver 更复杂一些,但更灵活一些。
在设置 Pyro 解算中,有几个重要的数据需要从几何体对象获得:
该输入端用于连接解算的容器。使用 smoke object
。
在 Pyro 中,该输入端主要用于加载 Gas Resize Fluid Dynamic
节点,使整个模拟容器的大小按照目标体积的大小进行变化,从而达到优化的效果。该输入端的计算按 step 为单位计算,每 step 更新一次。
该输入端主要用于加载自定义的速度场。这些速度场的计算会在 project gas non-divergent
之前应用完毕。
该输入端用于连接 Gas advect
节点。该节点允许使用指定的场来推动模拟中的其他场(该计算基于 point)。
该输入端主要用于加载指定的源(以及其包含的属性 / 场的信息)到 DOP 中。该输入端主要使用的节点是 Volume Source
。当然,我们也可以通过修改源中的信息,来达到更新、操作 DOP 中场的目的。
该 tab 下的参数控制解算的整体发展。
Time Scale | 该参数类型为 scalar,作为整个解算的缩放参数而存在。1 代表正常速度,大于该值表示该模拟已经被加速,反之则是减速。我们可以使用 doptime ,dopframe ,dopsttot / dopttost 等表达式来进行全局时间与解算时间之间的转换。
Time Scale 的值只影响 DOP 中的 Timestep。举个例子,如果我们的速度场是在 SOP 中计算完毕并导入的,那么如果我们想在 Time scale 改变的情况下获取对应正确的速度,我们需要使用 |
Temperature Diffusion | 该参数操作的对象是 temperature field (实际上进行的是 Gaussian Blur)。该值越高意味着 temperature field 的扩张程度越大。比如,2 意味着 solver 会每秒对 temperature field 进行以 2 为半径的高斯模糊,从而达到温度场扩散的效果。这个参数存在的意义是为了实现小于 container 分辨率的 turbulence。这些 turbulence 对温度场的延伸也同样有贡献。 |
Cooling Rate | 该参数指定 temperature field 冷却的速度。比如,0.9 意味着每秒钟当前的“热”气体温度会下降 90%。 |
Viscosity | 该参数定义了 velocity field 的流动性(也就是说速度场与液体是类似的,也是在流动的)。该值越高,越会使相邻的 voxel 具有相同的速度,从而导致流动的效果。该值为 0 会导致相邻的 voxel 会在不受任何阻力的情况下,向任意方向移动,这将会创建更混乱,更动荡的效果(布朗运动?doge)(在 pyro solver 中,当临近 voxel 速度不一致时,高 viscosity 会带来一种类似颜料在水中扩散的效果(无视速度场,布朗运动 again doge)。这种效果称为 diffusive term。) |
Buoyancy Lift | 该参数是浮力的系数。该参数使用环境温度与个体 voxel 温度的差异来决定系数的大小,因此越热的区域会得到更多的浮力,而越冷的区域会下降的更快。增加该值会导致体积的上升速度更快,能够达到的区域更高。 |
该 tab 是 pyro solver 与 smoke solver 最大的不同点。该模型通过使用导入的 fuel
field 进行燃烧,模拟了将 fuel
转化为 burn
/ temperature
/ density
场的过程。
Peter Quint 的教程非常有用!!
Ignition Temperature | 燃点温度。只有在该温度以上,整个 combustion model 才会进行运作。如果希望所有的 fuel 被立即点燃,使用负值作为参数值。 |
Burn Rate | 每秒参与燃烧的 fuel 。该参数值是比例值,0.9 意味着 90% 参与燃烧的的 fuel 将在一秒中以后被“消耗”掉。该值主要控制参与燃烧的 fuel 占 fuel 总量的比例。Fuel Inefficiency 会对 fuel 的实际剩余量有影响。 |
Fuel Inefficiency | 控制有多少参与燃烧的 fuel 实际上没有被消耗掉。0 代表所有参与燃烧的 fuel 都会被从 fuel field 中去掉,而 1 代表保留所有的参与燃烧的 fuel 。该值设置为 0 的时候有时会出现 bug。设置为一个非常靠近 0,比如 0.05 这样的值会更好一些。 |
Temperature Output | 燃烧每单元 fuel 产生的温度场(添加到当前温度场中)。该属性同时受 burn 和 heat 的影响。 |
Gas Released | 该参数作为向燃烧区域注入的 gas 量的系数。这个选项会导致燃烧区域极速往外扩张。该值同时受 heat 和 burn 场的缩放系数加成。 |
对 flame / heat field 的控制参数 tab。
Flame Height | flame 的缩放系数。该值越高,flame 的高度就越高。需要注意,该值并不是一个有测量量表的值,该值只是影响应用到 flame 上的冷却量。 本参数下,非常低的参数值并不能得到非常小的 flame,因为冷却的影响因素并不足以抵消温度场的影响。 该值可以被视作冷却的时间,在 cooling field 打开或关闭的前提下有不同的算法:
|
Cooling Field | 使用指定的 field 来控制 cooling field(也就是 mask) |
Time Scale | |
Time Scale | |
Time Scale | |
Time Scale |