在本教程将向您展示与 VRayVolumeGrid 与 Phoenix FD 合并使用的好处。我们将以核爆做为实例。
Phoenix FD 能够模拟复杂的爆炸特效,如小型或大型的空袭爆炸。写实的爆炸总会包含许多不同的组件。例如,核爆炸有一个蘑菇云飞向天际,地面则有蘑菇云爆炸引发的地面烟尘,共两个组件。Phoenix FD 让你可以设定多个火焰/烟雾发射源(Fire/Smoke Source)来产生逼真的核爆。事实上,你可以到 Chaos Group 官方帮助页面上找到可下载的核爆炸 3ds Max 场景。
话虽如此,如果你需要更多的自由度来调整和塑造你想要的核爆呢?只要你可以分开处理每个爆炸组件就办的到。以下解释这样做的好处。
?
让我们观察一下真实物理世界。一枚核弹被放置在未知沙漠的某处。引爆时,会引发连锁反应:化学反应产生热能增加,产生大量烟雾。大爆炸将地面灰尘吹拂起来。我们可以说,这两种组件(地面尘埃 + 爆炸蕈状云)的无疑具有两种不同的物理属性。
就算你用了两个不同的 Phoenix FD 火源和烟雾源,为每个发射源设定不同的烟雾量和温度,但这两个发射源还是不免共享同一个仿真器(Simulator),共享仿真器的其他属性——烟的浮力(smoke buoyancy)、能量守恒类型与质量(conservation type and quality)…等。
核爆的两个组成组件。(a)带有裙状的蕈状云(b)地面灰尘
在同一个仿真器中仿真所有组件可以得到更一致的结果,但如果你追求特定形状和速度,希望仿真结果更贴近参考照片则更加困难。这是因为不同组件间共享属性、蕈状云的模拟与地面尘埃会相互制约。因此,每当您想为仿真器中的其中一个组件调整某特性时,也会影响其他组件。
反之,如果您单独地各别仿真这些组件,那就将仿真从这种约束解放出来。我们可以更容易地得到正确的外观,或者我们可以推进已经不错的效果到更棒的结果。
“蘑菇云”的仿真器设置
(A)蘑菇云:高温和烟雾从球体中发射出来。而重力(gravity)和烟雾浮力(Smoke Buoyancy)的值是仿真器为了模拟出“蘑菇”量身定做的,有利于塑造我们想要的形状。在本例中,我将重力设置为 0.5,烟雾浮力设置为 -1.0。通过 resimulation 过程,使仿真速度降到原速的30%。我利用 Phoenix FD 的“precise tracing”技术产生无闪烁的慢动作效果。
地面灰尘的仿真器设置。注意:为了打破对称性,我们故意将几颗球分散在地上。
(B)地面灰尘:我使用 PFlow 作为烟雾来源。您可以查看之前的文章了解基本设置。使用重力和烟雾浮力的默认值。但是通过 resimulation,我们将序列的速度降速到原来速度的 70%。
蘑菇云 | 地面灰尘 | |
---|---|---|
Cell size | 55.51cm | 1.25 cm |
Source | A sphere | PFlow |
Gravity | 0.5 | 1.0 |
Smoke Buoyancy | -1.0 | 0.0 |
Conservation Quality | 80 | 40 |
Retiming (of original speed) | 30% | 70% |
Resimulation, Amp. Resolution | 0.5 | 0.2 |
Final grid dimension | 338 X 326 X 510 | 668 X 716 X 102 |
蘑菇云和地面灰尘参数设置比较
两个 *.aur 缓存载入到两个不同的 VRayVolumeGrid 中。地面尘埃的网格稍微放大,最后得到了与参考图像相同的三角形比例。
当我们完成蕈状云和地面尘埃的模拟后,我们可以将之 (*.aur 缓存) 导入到两个不同的 VRayVolumeGrid,放在同一个场景中。我们可以开始在 3ds Max 中进行 3D 合成。由于体积数据已加载到 VRayVolumeGrid 中,这意味着我们可以:
缩放大小
旋转,展示最好看的角度
偏移动画
VRayVolumeGrid 提供了时序偏移(Timeline Origin)仿真缓存的选项。
除了空间(大小与旋转)上的调整外,我们还可以偏移序列,以获得最佳时序上的组合。
(请注意,你也可以直接使用 Phoenix FD Simulator 并跳过将缓存加载到VRayVolumeGrid中这个步骤。其实,Simulator 和 VRayVolumeGrid 这两个其实是完全相同的东西,只是 VRayVolumeGrid 简化了仿真设置接口。然而,由于我们是在两个单独的 3ds Max 场景中进行模拟,再加载到 VRayVolumeGrid 当中,因此您不会因为单击错误的按钮而不小心破坏了模拟结果。此外,这样的流程让你可以把场景给同事,即使他们没有安装Phoenix FD。)