现象:光柱为何在体积雾中“显形”?

在UE5中开启体积雾(Volumetric Fog)后,一束定向光穿过场景,常会在空气中形成清晰的God Ray(光柱)。这一现象看似简单,却涉及辐射传输方程(Radiative Transfer Equation, RTE)的实时求解。本文以“为什么”为主线,从散射物理出发,逐层剖析体积雾的底层机制、光照注入算法、时间重投影与降噪策略,最终给出可验证的工程实践。阅读本文前,建议你已熟悉UE5的指数高度雾(Exponential Height Fog)与定向光(Directional Light)基本操作,但我们将不满足于“调参”,而是理解每个参数背后的数学与工程权衡。

UE5 Volume体积雾与God Ray光柱:从物理散射到实时渲染的深度解构 - 配图1
UE5 Volume体积雾与God Ray光柱:从物理散射到实时渲染的深度解构

原理:辐射传输与体积散射的数学本质

体积雾的视觉表现由参与介质(Participating Media)中的光与物质相互作用决定。当光线穿过雾体时,发生三种基本过程:吸收(Absorption)、外散射(Out-scattering)和内散射(In-scattering)。描述这一过程的辐射传输方程沿光线方向积分,可简化为:

L(x, ω) = ∫₀ᵈ T(t) · [σ_s(t) · ∫_{S²} p(ω, ω') · L_i(t, ω') dω' + σ_a(t) · L_e(t)] dt + T(d) · L_bg

其中 σ_s 为散射系数,σ_a 为吸收系数,p 为相位函数(Phase Function),T 为透射率(Transmittance),L_i 为入射辐射亮度。对于God Ray,关键项是内散射积分——它累加了沿视线方向所有雾体微元向观察者散射的光能量。而相位函数决定了散射的方向性:UE5默认使用Henyey-Greenstein(HG)相位函数,其各向异性参数 g 控制前向散射强度。当g>0时,光更倾向于沿原方向散射,这正是太阳光穿过雾体形成明亮光柱的物理根源。

因此,God Ray并非“光本身可见”,而是雾粒子将光线散射进相机的结果。没有体积雾,就没有足够密度的散射粒子,光柱便无从谈起。

推导:UE5体积雾的实时求解架构

1. 体积纹理与光照注入

UE5的体积雾使用一张3D纹理(Fog Volume Texture)来存储雾的密度与散射属性。该纹理通常以相机视锥体为边界,在深度方向进行非均匀分布(近密远疏),以优化采样效率。每帧,渲染管线执行以下步骤:

  • 密度场生成:根据指数高度雾参数、距离场(Distance Field)或粒子系统,计算每个体素的消光系数(Extinction)与散射系数。
  • 光照注入:对每个体素,从光源视角渲染阴影图(Shadow Map),并结合光源方向计算入射辐射亮度。对于定向光,还需考虑相位函数,将入射光按HG分布散射到各方向。
  • 光线步进(Ray Marching):从相机出发,沿视线方向步进采样体素,累加内散射与透射率。步长通常动态调整,以平衡性能与质量。

这一过程在低分辨率(如1/4或1/8屏幕分辨率)下执行,再通过时间重投影(Temporal Reprojection)和降噪(Denoising)上采样至全分辨率。时间重投影利用运动向量将上一帧的雾结果重投影到当前帧,从而以较低采样数累积高质量结果。但这也引入了拖影(Ghosting)风险,尤其在快速运动或光照突变时。

技巧:在UE5中,r.VolumetricFog.GridPixelSize 控制体积纹理的像素尺寸(默认8),减小该值可提升光柱细节,但会显著增加GPU开销。建议在需要精细God Ray的镜头中设为4,并配合时间抗锯齿(TAA)使用。

2. 相位函数与光柱形态

HG相位函数定义为:

p(θ) = (1 - g²) / (4π · (1 + g² - 2g·cosθ)^{3/2})

其中θ为入射光与视线方向的夹角。当g=0时,散射各向同性,光柱均匀但缺乏方向感;当g→1时,前向散射极强,光柱在背光方向明亮,但侧向几乎不可见。UE5的定向光组件中,Volumetric Scattering Intensity 直接缩放散射系数,而Phase Function参数(在体积雾设置中)则调整g值。实践中,g=0.6~0.8可模拟大气散射,产生自然的太阳光柱。

值得注意的是,God Ray的“光柱”形态还受光源角度与雾密度梯度影响。指数高度雾的密度随高度指数衰减,因此光柱在低空更亮,向上逐渐消散——这符合真实大气中气溶胶的分布规律。

UE5 Volume体积雾与God Ray光柱:从物理散射到实时渲染的深度解构 - 配图2
UE5 Volume体积雾与God Ray光柱:从物理散射到实时渲染的深度解构

验证:参数实验与性能权衡

为验证上述原理,我们在UE5.3中搭建测试场景:一个定向光(强度10 lux)穿过指数高度雾(密度0.02,高度衰减0.2),相机固定,逐步调整关键参数并记录视觉与性能变化。

参数 默认值 调整范围 视觉影响 性能影响(ms)
r.VolumetricFog.GridPixelSize 8 4~16 值越小,光柱边缘越锐利,细节越丰富 4→8.5(翻倍)
r.VolumetricFog.GridSizeZ 128 64~256 值越大,深度方向采样越密,光柱层次感越强 +15%每翻倍
Volumetric Scattering Intensity 1.0 0.5~5.0 线性缩放光柱亮度,过高导致过曝 可忽略
Phase Function g 0.0 0.0~0.9 g越大,前向散射越强,光柱在背光方向越亮 可忽略

实验表明,GridPixelSize减半会使体积雾渲染耗时增加约一倍,但God Ray的视觉质量提升显著,尤其对于细长光柱(如透过窗户的光束)。因此,在电影级渲染中,我们常采用动态分辨率策略:当相机静止时降低GridPixelSize,运动时恢复默认值。

此外,时间重投影的累积帧数(r.VolumetricFog.TemporalReprojection)也影响光柱的稳定性。增加累积帧数可减少噪点,但会加剧拖影。建议在光照变化剧烈时(如闪电)临时禁用时间重投影,或提高降噪强度。

注意:体积雾与半透明材质存在排序问题。若God Ray穿过玻璃或烟雾粒子,需确保半透明材质启用了“Volumetric Fog”写入(在材质细节中勾选“Apply Fogging”),否则光柱会被错误遮挡。

总结:从物理正确到艺术可控

UE5的体积雾通过实时求解简化的辐射传输方程,将物理散射转化为可调的渲染参数。理解HG相位函数与密度场的关系,能帮助你在“物理正确”与“艺术可控”之间找到平衡点:例如,为了强化戏剧性光柱,可以故意提高g值并增加散射强度,即使这偏离了真实大气散射。但切记,任何参数调整都应服务于镜头叙事——God Ray的本质是视觉引导工具,而非物理模拟的炫技。

在实际项目中,建议遵循以下工作流:先以默认参数建立物理基准,再通过相位函数与密度梯度塑造光柱形态,最后利用时间重投影与降噪在性能预算内达到电影级质量。掌握这些底层机制后,你便能预判参数变化的效果,而非盲目试错。

UE5 Volume体积雾与God Ray光柱:从物理散射到实时渲染的深度解构 - 配图3
UE5 Volume体积雾与God Ray光柱:从物理散射到实时渲染的深度解构

关于火星人教育:作为创办24年来专注数字艺术与AIGC实战职业技能培训的机构,火星人教育在UE5游戏特效、AIGC视觉设计、AI漫剧创作、室内全屋定制、MAYA三维动画、C4D动态设计、工业设计、NUKE影视后期、摄影摄像实训等课程中,始终强调“原理驱动”的教学理念。北京、深圳双校区开设线下面授班,面向美术生、在校大学生及意向转行的职场人群,以项目化实训教学夯实专业技能,助力就业与职业提升。若你想深入UE5体积渲染与光效设计,欢迎咨询:010-65918670。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。