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

原理:辐射传输与体积散射的数学本质
体积雾的视觉表现由参与介质(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.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的本质是视觉引导工具,而非物理模拟的炫技。
在实际项目中,建议遵循以下工作流:先以默认参数建立物理基准,再通过相位函数与密度梯度塑造光柱形态,最后利用时间重投影与降噪在性能预算内达到电影级质量。掌握这些底层机制后,你便能预判参数变化的效果,而非盲目试错。

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








评论(0)