Skip to content

体积介质


体积介质用于为雾体积或 VDB 文件添加颜色及其他属性。VDB 是一种通用的体积数据格式,可用于创建烟雾、雾气、蒸汽等气态效果。VDB 文件可以通过其他 3D 软件生成并导出,也可以通过 OctaneRender® 在 Cinema 4D 中通过多种预设和噪声直接生成。VDB 支持单帧文件,也支持动画序列。要在场景中添加体积对象,可通过 Live Viewer > Objects >(添加 Octane Fog Volume 或 添加 Octane VDB Volume) 菜单完成。

#### 体积介质特性

无论选择哪种体积或 VDB 对象,都会提供一个 Medium(介质)标签页,如下图所示。

Volume Medium 标签页位于 Octane Volume 和 Octane VDB Volume 对象中。该标签页包含以下属性:

Density
体积对象的体素密度。数值越大,体积越不透明;数值越小,体积越稀薄。Density 与 Volume Step Length
的组合设置会对渲染时间产生显著影响,可能是正向也可能是负向,因此应将二者视为一个整体进行调整。推荐的做法是先设置较低的密度和较高的步进长度,然后逐步调整以获得理想外观。

Volume Step Percent
体积步进百分比用于决定光线行进算法的精度,需要根据体积表面的特性进行调整。默认步进长度为
4。如果体积尺寸小于该值,通常需要减小步进长度。增大该数值会使光线行进算法采用更大的步长,从而降低体积细节,但渲染速度会更快。如果步进长度远大于体积尺寸,光线行进算法可能会一次性穿过整个体积。

Volume Shadow Ray Step Length

用于阴影光线在体积中行进的步进长度。

Displacement
(体积)位移选项允许使用 Octane 纹理或 OSL
纹理来控制体积采样位置的偏移。这可以为体积着色增加额外细节,从而减少对高密度体积的需求。该效果在使用体积生成器和 Cinema 4D 噪声时尤为明显,相关内容请参见 此处

Absorption
指定吸收颜色纹理。

Absorption Ramp
吸收颜色渐变用于定义颜色范围。Absorption Ramp 以体积网格值作为输入。在颜色渐变中,左侧接近 0
的颜色会映射到体积中密度较低的区域,而右侧颜色则映射到密度较高的区域。Emission 与 [Scattering](javascript:void(0);.md)
渐变的工作方式类似。在为动画 VDB 序列使用渐变时,请注意渐变中的 Max 值,该值用于将体积网格数据归一化到 0 到 1 之间,以便正确映射颜色。不同帧之间的 VDB 网格最大值可能差异很大,如果 Max
设置过高或过低,最终只会显示渐变中的部分颜色。

Invert Absorption
反转吸收颜色,使 Absorption
通道转变为透明通道。这有助于可视化指定颜色的效果,因为透过介质的中性背景颜色会接近该吸收颜色。

Scattering
散射截面,用于定义光在颜色范围内被吸收和散射的程度。

Scattering Ramp
与 Absorption Ramp 类似,但用于将颜色映射到体积中散射的光。

Scattering Phase
其作用方式类似于 Medium 节点中的相位函数,调整 Volume Scale 会线性缩放体积的密度值。

Emission
Emission 插槽可使用 Blackbody Emission 节点或 Texture Emission 节点,并结合体积渐变(在 Octane
Standalone 中称为 Emission Ramp)来控制发光颜色。为了在体积中获得更真实的黑体发光效果,请在 Emission 节点中禁用 Normalize。较低温度产生的光较弱,较高温度产生的光更强,但在启用
Normalize 时,不同温度的辐射亮度会被统一。

当使用 Texture Emission 节点时,输入的温度网格将被解释为发光强度,而非发光温度。这种方式更加线性,即数值越高,发光强度越大。

Emission Ramp
Emission 渐变用于重新映射体积的发光数据。可通过在该插槽中添加 Volume Gradient 节点来访问。当在 Emission 插槽中使用
Blackbody Emission 时,Emission Ramp 的 Max 值可能需要设置为远高于默认值 10 的数值。常用于发光的网格是 Temperature,其数值范围通常为 1,000 到 10,000
开尔文。

Volume Gradient
节点中的渐变颜色用于为发光输出着色。通过调整渐变中的颜色标记位置,可以控制颜色在体积中的分布,从而决定哪些区域看起来像火焰。需要注意的是,在模拟烟雾时,也应在渐变中为烟雾颜色预留合适的颜色区域。

#### 效果调整思路

体积效果 章节中,我们介绍了如何使用 Turbulence FD 和 Volume Medium 创建火焰效果。本节简要回顾了使用
Embergen 生成的 VDB(由 JangaFX 的 Nick Seavert 制作的 “New
Fire” 预设)来创建石油爆炸效果时所使用的设置。可以看到,吸收、散射和发光之间取得了良好的平衡,共同塑造了汽油燃烧的视觉效果。

<h5>Absorption & Scattering</h5>

下图所示的参数用于生成该示例图像。Volume Step Length 被设置为非常小的数值,以捕捉 VDB 的细节(因此渲染速度较慢)。Density 与 Volume Step Length
相互平衡,直到获得期望的外观(本例中尽量接近 Embergen 的效果)。吸收和散射参数按照下图所示进行调整,本例未使用吸收或散射渐变。

<h5>Volume Gradient</h5>

下图展示了 Volume Gradient 的设置方式(在 Octane Standalone 及部分插件版本中,该功能被称为 Volume
Ramp)。渐变的配色方案决定了图像呈现出的燃烧石油外观。要模拟其他化学物质或材质,只需选择合适的颜色方案并相应设置体积渐变即可。

Volume Gradient 展示了如何排列渐变中的颜色标记,以在体积中获得期望的颜色分布,同样是为了尽量接近 Embergen 中的效果。

注意 将 Max 值设置为 10,000,以充分利用 VDB 中包含的数值范围。对于某些 VDB 文件,该数值可能需要设置得更高。

#### VDB 使用注意事项

VDB 文件中的各个属性彼此关联,任意一个参数的改变都可能导致整体效果发生明显变化,因此往往需要重新调整和平衡。在着手体积材质之前,建议先确立体积的基础外观:首先设置 Volume Step Length,其次调整
Density,最后再进行着色器层级的细节调整。

用于 Emission Ramp 的体积渐变对火焰效果至关重要。Cinema 4D 提供了一些不错的渐变预设,通常无需自行创建。可以尝试使用 Heat 3 预设来观察效果。

Emission 插槽需要使用 Blackbody Emission 节点,而其默认参数往往无法直接得到理想结果。这与生成 VDB
的模拟软件、模拟时所使用的尺度等多种因素有关。为达到目标效果,所需的数值可能非常大或非常小。初期需要一定的试错过程,并结合经验进行判断。不要害怕大幅调整参数,直到达到预期效果。

OctaneRender® 和 OTOY® 是 OTOY Inc. 的注册商标