开篇:为什么你的天空总是“差口气”?

做UE5场景的兄弟,十有八九都遇到过这种憋屈事:明明Directional Light、Sky Atmosphere、Sky Light、Exponential Height Fog、Volumetric Cloud全挂上了,参数也照着教程调了,可画面就是不对劲——要么天空灰蒙蒙一片死白,要么远处物体像被“抠图”贴上去的,要么雾效在相机移动时疯狂闪烁。更气人的是,你搜遍教程,所有人都在告诉你“勾选这个、拉那个滑条”,却没人告诉你为什么要这么做,以及什么情况下这么做会翻车。

我在火星人教育带了这么多届UE5学员,看过的“翻车现场”比成功案例多得多。今天这篇,我不讲基础操作,就讲坑。从你新建场景到最终出片,我按时间线把最容易踩的8个坑给你刨出来,每个坑都按「现象→根因→解决方案→预防措施」四步拆解。看完这篇,你至少能省下两周的瞎调时间。

UE5大气雾Atmospheric Fog避坑排雷指南:我踩过的8个坑,你别再踩了 - 配图1
UE5大气雾Atmospheric Fog避坑排雷指南:我踩过的8个坑,你别再踩了

坑一:Sky Atmosphere和Exponential Height Fog“打架”,天空发灰、地平线发白

现象

场景里同时开了Sky Atmosphere和Exponential Height Fog之后,天空整体蒙了一层灰,地平线附近尤其严重,像隔着一层脏玻璃。你把Fog Density拉到0.001,灰雾还在;你关掉Height Fog,天空立刻通透了。

根因

这是最经典的“双重大气”问题。Sky Atmosphere本身就是一个物理大气散射模型,它基于Rayleigh散射和Mie散射计算天空颜色,已经包含了大气对光线的散射和吸收。而Exponential Height Fog是屏幕空间的雾效近似,它不参与物理光照计算,只是在渲染管线后段往画面上叠一层颜色。两者叠加,等于你在大气模型外面又套了一层“假大气”,散射能量被重复计算,画面自然发灰。

解决方案

分两种情况:

  • 如果你要的是物理正确的天空:把Exponential Height Fog的Fog Density降到0.0005以下,或者干脆关掉,改用Sky Atmosphere的Aerial Perspective参数来控制远景雾感。Aerial Perspective LUT是Sky Atmosphere自带的距离雾方案,它和大气模型是同一套物理体系,不会打架。
  • 如果你要的是风格化雾效:把Sky Atmosphere的Aerial Perspective关掉(LUT设为0),让Height Fog全权负责雾效。但注意,这样天空颜色会偏“干净”,需要手动调Sky Atmosphere的Rayleigh Scattering Scale来补偿。

技巧提示:在火星人教育的UE5课堂里,我通常让学员先只开Sky Atmosphere,把天空调满意了,再以0.0001为步进慢慢加Height Fog,加到“刚好能感觉到空气感”就停手。这个“刚好”的临界点,就是两种雾效不打架的边界。

预防措施

新建场景时,先想清楚你要的是物理大气还是风格化雾效。两者选其一作为主导,另一个只做微调。永远不要两个都拉满。

坑二:Sky Light的实时捕获没开,间接光全黑,暗部像贴了黑纸

现象

天空调好了,太阳也亮了,但场景里的阴影面、背光面死黑一片,完全没有天空的蓝色反弹光。你以为是曝光问题,调了Post Process Volume的Exposure,结果亮部过曝、暗部还是黑。

根因

Sky Light默认使用静态捕获(Static Cubemap),它只在你手动点击“Recapture”时更新一次。如果你改了Sky Atmosphere的参数但没有重新捕获,Sky Light用的还是旧的环境贴图。更关键的是,静态捕获在运行时不会响应大气变化,太阳一移动,间接光就完全对不上。

解决方案

把Sky Light的Mobility设为Movable,然后在Lighting设置里勾选Real Time Capture。这个选项会让Sky Light每帧实时捕获天空环境,间接光会随着大气变化动态更新。代价是每帧多一次Cubemap渲染,性能开销大约增加0.5-1ms,但在现代GPU上完全可以接受。

预防措施

只要你的场景有动态时间变化(Day/Night Cycle),Sky Light必须用Real Time Capture。如果是静态场景,用静态捕获也行,但每次改完大气参数记得手动Recapture,养成肌肉记忆。

UE5大气雾Atmospheric Fog避坑排雷指南:我踩过的8个坑,你别再踩了 - 配图2
UE5大气雾Atmospheric Fog避坑排雷指南:我踩过的8个坑,你别再踩了

坑三:Volumetric Fog的Scattering Distribution调错,雾效像“牛奶”或“玻璃渣”

现象

开了Volumetric Fog之后,雾要么浓得像牛奶,什么都看不见;要么稀得像玻璃渣,光柱断断续续。你调Fog Density,要么太浓要么太稀,找不到中间值。

根因

Volumetric Fog的观感由两个参数共同决定:Fog Density(雾的浓度)和Scattering Distribution(散射方向分布)。Scattering Distribution的取值范围是-1到1,负值表示前向散射(光往相机方向散射,光柱明显),正值表示后向散射(光往远离相机方向散射,雾感均匀)。很多人只调Density不调Distribution,导致要么光柱过强像探照灯,要么完全没有体积感。

解决方案

参考以下参数组合:

效果目标 Fog Density Scattering Distribution Albedo
晨雾、光柱 0.05-0.1 -0.3 ~ -0.5 0.8-0.9
均匀薄雾 0.02-0.05 0.1 ~ 0.3 0.9-1.0
浓雾、神秘感 0.15-0.3 -0.1 ~ 0.1 0.7-0.8

注意Albedo不要设成纯白1.0,否则雾会“吃掉”所有颜色,画面发灰。0.8-0.9之间能保留一定的色彩信息。

预防措施

调Volumetric Fog时,先把Directional Light的Light Shaft Occlusion和Light Shaft Bloom关掉,避免光柱效果干扰判断。调好雾本身之后,再开光柱做叠加。

坑四:Aerial Perspective LUT分辨率不够,远景出现“色带”和“断层”

现象

远景的山脉或建筑,在天空背景下出现明显的色带(Color Banding),像彩虹一样的条纹。你以为是Post Process的Dithering没开,开了之后色带还在。

根因

Sky Atmosphere的Aerial Perspective是通过一张3D LUT(查找表)来近似计算的。默认LUT分辨率是32x32x32,对于大场景来说精度不够,尤其在天空颜色渐变剧烈的区域(比如地平线附近),LUT插值会产生可见的色带。

解决方案

在Sky Atmosphere的Details面板里,找到Aerial Perspective LUT设置,把LUT Size从32提升到64或128。64是性价比最高的选择,128会显著增加显存占用(约16MB→256MB)。同时确保Sample Count Scale不低于1.0,低于1.0会降低采样精度,色带更严重。

技巧提示:如果你的场景有大量远景,建议LUT Size设64,同时在Post Process Volume里开启Film Grain(强度0.1-0.2),用微弱的噪点掩盖残余色带。这是电影工业常用的“抖动”技巧。

预防措施

项目初期就确定LUT Size,不要等到后期才发现色带问题。LUT Size一旦确定,不要中途更改,否则所有基于LUT的调色都要重做。

坑五:Directional Light的Atmosphere Sun Light没勾,天空和太阳“各亮各的”

现象

太阳在天空中的位置和Directional Light的方向对不上,或者太阳的亮度、颜色和天空的散射光完全不匹配。你移动Directional Light,天空颜色不跟着变。

根因

Sky Atmosphere需要知道“哪个光源是太阳”才能正确计算散射。这个信息通过Directional Light上的Atmosphere Sun Light复选框传递。如果不勾选,Sky Atmosphere会使用默认的太阳方向(通常是世界坐标的某个固定方向),导致天空和实际光照脱节。

解决方案

选中Directional Light,在Details面板的Atmosphere and Cloud分类下,勾选Atmosphere Sun Light。如果有多个Directional Light(比如主光+补光),只有主光勾选,补光不要勾。

预防措施

创建Directional Light之后,第一件事就是勾Atmosphere Sun Light。这个习惯能帮你省掉后面80%的“天空对不上”问题。

UE5大气雾Atmospheric Fog避坑排雷指南:我踩过的8个坑,你别再踩了 - 配图3
UE5大气雾Atmospheric Fog避坑排雷指南:我踩过的8个坑,你别再踩了

坑六:Volumetric Cloud和Sky Atmosphere的“高度冲突”,云层被大气“吃掉”

现象

Volumetric Cloud的云层看起来“扁平”,没有体积感,或者云层底部被一层灰雾覆盖,像泡在脏水里。你调Cloud Layer的Altitude,云要么太高看不见,要么太低穿模。

根因

Sky Atmosphere和Volumetric Cloud共享同一个大气高度模型。Sky Atmosphere的Bottom Altitude(底部高度)和Atmosphere Height(大气总高度)决定了整个大气的垂直结构。如果Cloud Layer的Altitude低于Sky Atmosphere的Bottom Altitude,云层就在大气“下面”,不会被大气散射影响,看起来像贴图。如果Cloud Layer的Altitude接近Atmosphere Height,云层会被大气顶部的散射“洗白”。

解决方案

确保Cloud Layer的Altitude在Sky Atmosphere的Bottom Altitude和Atmosphere Height之间,且留出至少20%的余量。例如:Bottom Altitude=0,Atmosphere Height=60km,Cloud Layer Altitude建议设在8-15km之间。同时调整Cloud Layer的Layer Bottom Altitude和Layer Height,让云层有足够的厚度。

预防措施

调云之前,先把Sky Atmosphere的Bottom Altitude和Atmosphere Height记下来,写在便签上。所有云层参数都在这个范围内调,不要越界。

坑七:Post Process Volume的Exposure没锁,天空亮度“飘忽不定”

现象

相机转动时,天空的亮度忽明忽暗,像自动曝光在“呼吸”。你锁定Exposure,画面又过曝或过暗。

根因

UE5默认使用Auto Exposure(自动曝光),它根据画面平均亮度动态调整曝光值。天空大面积高亮区域会导致Auto Exposure把整体曝光压暗,暗部细节丢失。而当你锁定Exposure时,如果锁定的EV值不对应场景的实际亮度,就会过曝或过暗。

解决方案

在Post Process Volume里,把Exposure的Metering Mode设为Manual,然后调整Exposure Compensation。对于大多数户外日间场景,EV100在12-15之间比较合适。具体值取决于你的Directional Light强度(Lux)。可以用以下公式估算:

EV100 = log2(Lux * 100 / 12.5)
例如:Directional Light = 100,000 Lux
EV100 = log2(100000 * 100 / 12.5) = log2(800000) ≈ 19.6

但UE5的Sky Atmosphere会放大亮度,实际EV100通常比计算值低3-5档。建议从15开始试,逐步调整。

预防措施

项目初期就锁定Exposure,不要依赖Auto Exposure。Auto Exposure适合“从暗到亮”的过渡场景,不适合需要稳定画面亮度的展示或影视项目。

坑八:移动端/VR项目里Volumetric Fog性能爆炸,帧率“跳水”

现象

在PC上跑得好好的Volumetric Fog,打包到移动端或VR之后帧率从90掉到30,甚至更低。你以为是模型问题,优化了半天模型,帧率没变。

根因

Volumetric Fog是一个逐帧的3D体积纹理渲染过程,它在每个相机视锥体内生成一个3D网格(默认分辨率是128x128x64),然后对每个体素计算散射和消光。这个计算量在桌面GPU上还好,但在移动端(尤其是Quest 2/3这类一体机)上,填充率是瓶颈。VR还需要双眼渲染,计算量翻倍。

解决方案

移动端/VR项目,不要用Volumetric Fog。改用以下替代方案:

  • Height Fog + Light Shaft:用Exponential Height Fog做基础雾效,Directional Light开Light Shaft做光柱。这是移动端最廉价的方案。
  • Billboard Fog Cards:在关键位置放置半透明的雾面片,手动控制雾的分布。适合小场景。
  • 降低Volumetric Fog分辨率:如果非要用,把Volumetric Fog的Grid Pixel Size从默认的8提升到16或32,分辨率降为64x64x32。代价是雾效细节丢失,但性能提升2-4倍。

技巧提示:在火星人教育的VR项目实训中,我们有一条铁律——移动端VR项目,Volumetric Fog的开关默认关闭。需要光柱效果,用Light Shaft + 半透明面片模拟,性能可控且效果不差。

预防措施

项目立项时就确定目标平台。移动端/VR项目,在技术选型阶段就把Volumetric Fog排除在外,不要等到优化阶段才发现问题。

总结:大气雾调优的“三先三后”原则

踩了这么多坑,我总结出一个“三先三后”原则,帮你建立正确的调优顺序:

  • 先大气,后雾效:先把Sky Atmosphere调满意,再用Height Fog做微调。不要两个同时调。
  • 先光照,后体积:先把Directional Light和Sky Light的间接光调对,再开Volumetric Fog。光照不对,体积雾怎么调都别扭。
  • 先性能,后效果:先确定目标平台的性能预算,再决定用哪些效果。移动端不要碰Volumetric Fog,这是铁律。

UE5的大气系统是一套高度耦合的物理模型,牵一发而动全身。理解每个参数背后的物理意义,比死记参数值重要得多。希望这篇避坑指南能帮你少走弯路,把时间花在创作上,而不是跟参数较劲。

关于火星人教育

火星人教育创办24年来,始终专注数字艺术与AIGC实战职业技能培训。我们开设的课程涵盖AI漫剧创作、AIGC视觉设计、UE5游戏特效、室内全屋定制、MAYA三维动画、C4D动态设计、工业设计、NUKE影视后期、摄影摄像实训等方向,北京、深圳双校区开设线下面授班,面向美术生、在校大学生及意向转行的职场人群,以项目化实训教学,夯实专业技能,助力就业与职业提升。如果你在UE5大气渲染或AIGC视觉设计上遇到瓶颈,欢迎致电010-65918670咨询,我们的导师团队会给你最实战的建议。

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