FEATURED · 精选文章

UE5.7.4山地场景制作全流程:地形雕刻、材质混合与体积雾

发布时间 / 2026/9/8 11:01:36
来源 / 创域科博编辑部
栏目 / 资讯中心
UE5.7.4山地场景制作全流程:地形雕刻、材质混合与体积雾 如果你是一位环境美术或独立开发者想在 UE5.7.4 里搭一个有“叙事感”的山地场景——不是单纯拷贝一张风景照而是清晨雾气从林间升起、山脊线在逆光里变成剪影、一条被脚步踩出的土路消失在森林尽头——那么这篇教程会很有用。“山地日记”这个方向近几年在虚拟制片、独立游戏和数字孪生演示里都很常见。它和“写实大场景”最大的区别在于场景不是用来展示地形雕刻技巧而是用来传递情绪和记录空间。换句话说地形是骨架材质是皮肤光照和大气才是让山“开口说话”的关键。这篇文章会从 UE5.7.4 的项目配置开始依次拆解地形创建、山体材质分层、植被散布、体积雾和后期处理最后给出运行验证和常见问题排查思路。全程以“能照着做出来”为标准不做过度复杂的实验性尝试。1. 这篇文章真正要解决的问题很多新手第一次在 UE 里做自然环境喜欢直接找一张大地图模板然后刷草、刷树、调个太阳结果一运行发现远处山体像塑料模型近处植被没有层次雾和光的关系完全不对整体画面又灰又平。这不是美术能力的问题而是缺少一条完整的“环境工作流”。“山地日记”场景的难点并不在某一个环节而是多个环节之间的耦合关系地形形状决定了 Sun Angle 和雾的遮挡关系地形材质的高度混合决定了山体是否生硬植被密度和大小决定了空间层次感体积雾和大气散射决定了画面是“透”还是“闷”后期处理体积里的曝光和颜色分级决定场景是否统一。如果你正在做下面这些项目这篇文章会比较适用独立游戏里的野外关卡或新手村场景虚拟制片里的户外舞台背景建筑可视化里的山地景观展示想做环境美术作品集但不知道如何开始的开发者。读完这篇文章你应该能搭建出一个完整的山地区域并掌握一套可复用的环境创作顺序。2. UE5.7.4 环境创作的底层变化UE 5.x 系列最大的变化是把过去需要大量手工处理的内容变成了近乎“开箱即用”的管线。到了 5.7.4 这个迭代版本环境创作流程稳定了很多特别体现在下面几个方面。2.1 几何体系统Nanite 与资产复杂度过去做山体我们习惯用 Landscape 雕刻大形用静态网格体去拼岩石细节。现在 Nanite 可以让高模岩石、山体表面细节直接进入场景渲染管线不需要手动做 LOD。这意味着场景密度可以做得更高而且不用像过去那样花大量时间在 LOD 设置和 draw call 优化上。不过在“山地日记”这种偏叙事的环境里Nanite 并不一定全场景都要开。树木和草这类植被仍然建议使用传统 foliage因为植被需要随风摆动动画而 Nanite 目前对这类动态变形的支持仍有限。2.2 动态全局光照LumenLumen 让室外场景的间接光照不再依赖繁琐的 Lightmass 烘焙。山体之间的反弹光、树林里的透射光、悬崖背阴面的补光这些都能在运行时动态计算。对于“山地日记”这种一日之内光线变化明显的场景Lumen 的优势非常突出你可以直接把太阳角度从清晨调到黄昏整个山体的光照关系会跟随变化不需要重新烘焙。2.3 程序化内容生成PCGUE 5.2 之后 PCGProcedural Content Generation逐渐成熟到 5.7.4 已经是环境美术的常用工具。但这里要泼一盆冷水PCG 不等于一键生成完美场景。它适合做“大范围但随机性要求不高”的散布比如山坡上的碎石、森林里的低矮灌木。而需要精心控制视觉构图的位置比如登山小径附近的几棵松树、视野中心的一块孤岩仍然需要手动摆放。2.4 开放世界与 Level Instance如果“山地日记”想要扩展成多张地图组成的开放世界5.7.4 里的 World Partition Level Instance 可以让多人协作更高效。不过这篇教程先聚焦单张地图的小场景搭建避免一开始就陷入关卡流送的复杂度。3. 环境准备与项目基础配置3.1 创建项目在 UE 5.7.4 启动器里选择“Game”类空模板项目类型Blank目标平台Desktop质量预设Scalable后面手动调整是否启用新手内容否项目名可以叫MountainDiary。命名建议全小写避免后续写路径时出现大小写问题。3.2 启用插件在 Edit - Plugins 中搜索并启用以下插件插件作用优先级PCG程序化生成植被和碎石高Water如果场景需要溪流或湖泊中Landscape Modeling ToolsLandscape 建模辅助高Foliage Tool植被笔刷和实例化高Volumetric Clouds体积云高Movie Render Queue最终序列帧输出中启用后重启编辑器。3.3 基础渲染设置在 Project Settings - Rendering 中确认Dynamic Global Illumination MethodLumenReflection MethodLumenVirtual Texture开启Support Virtual Texture开启Auto Exposure开启 Extend Default Luminance Range室外场景建议打开体积雾和体积云# 在 Output Log 或控制台输入 r.VolumetricFog 1 r.VolumetricCloud 1 r.Lumen.DiffuseIndirect.Allow 1 r.Shadow.Virtual.Enable 1注意这些是运行时控制台命令。如果想要项目默认开启可以写到DefaultEngine.ini的[/Script/Engine.RendererSettings]段不过不同小版本配置写法略有差异建议先在编辑器里打开相关开关再确认。3.4 目录结构建议在 Content 目录下创建Content/ ├── Maps/ ├── Landscape/ ├── Materials/ │ ├── Terrain/ │ ├── Foliage/ │ └── FX/ ├── Foliage/ ├── Meshes/ ├── PCG/ └── PostProcess/这个结构不复杂但能让后续文件引用不混乱。4. 用 Landscape 创建山地地形4.1 创建 Landscape在 Place Actors 面板里找到 Landscape拖入场景。或者通过 Mode 面板切换到 Landscape 模式。关键参数Scalar1m 或 100m 取决于项目比例尺Section Size127x127Sections1x1Subsections1x1如果地图目标尺寸是 1000m x 1000m直接用 127 分辨率的 Landscape 会显得很粗糙。建议分辨率设置为 507 或 1009也就是在 127 基础上增加 subdivision。一次把分辨率调够比后面用 Recalculate Normals 补救要省事得多。4.2 整体形状雕刻用 Landscape 的 Sculpt 工具把笔刷形状调成 Soft Low强度降低到 0.2 左右。“山地日记”场景通常需要三条山脊线围成一个半封闭的山谷山谷中间留出步行路径。雕刻流程建议先用大笔刷铺出山脉走向只考虑大形不考虑细节在山谷两侧刷出山肩形成从高到低的梯度用 Flatten 工具在山腰处修出一些台地方便后面放植被和路径用 Erosion 工具做风化感最后用小笔刷在岩石露头的地方雕刻破碎感。这一步慢一点比较好。地形大形如果不对后续材质和植被都不能救回来。4.3 添加 Landscape Layer在 Landscape 模式下切到 Paint 页签添加三层 LayerGroundLayer泥土/碎石RockLayer山体岩石GrassLayer草坡每一层都要关联对应的地形材质材质稍后创建。4.4 用 Landmass 做山体轮廓修正Landmass 插件允许通过蓝图样条线切割或叠加山体形状。对于“山地日记”这种叙事场景可以用 Landmass 加一个视觉焦点在视野尽头放一条低缓的 Mountain Range Spline把它的 Height 参数调低用来挡住地平线后面的空白区域配合距离雾让远山产生空气透视。这样整个场景的纵深感会强很多。5. 山体材质与地形混合5.1 创建 Terrain Material在 Material 编辑器中新建材质命名为M_Terrain_Base。设置Shading ModelDefault LitBlend ModeOpaqueMaterial DomainSurface打开 5.1 之后推出的 Landscape Material 混色模式使用 Weight Map 节点。你的材质中将添加Texture Sample 节点Ground、Rock、Grass 三套贴图LandscapeLayerWeight 节点分别接收这三套贴图LandscapeLayerCoords 节点控制 UV 重复连接方式LandscapeLayerWeightGround - Layer0LandscapeLayerWeightRock - Layer1LandscapeLayerWeightGrass - Layer25.2 用高度混合解决接缝问题如果只靠 LayerWeight 混色靠近岩石和草地交界的地方会出现一条生硬的分界线。解决办法是“高度混合”也就是把两张贴图的 Height 高度信息也参与权重计算。在 Material 中可以使用HeightBlend节点// 简化节点逻辑 float GroundHeight TextureObject2DSample(GroundTex, UV).a; float RockHeight TextureObject2DSample(RockTex, UV).a; float BlendMask HeightLerp(GroundHeight, RockHeight, LayerWeight, Softness);HeightLerp 并不是默认可选的节点实际工程里一般用MaterialFunctionLibrary里自带的高度混合函数或者在 Custom 节点里写一小段 HLSL。给一个最小可行的 Custom 节点示例// Custom 节点输入参数BaseA, BaseB, HeightBlend float BlendWeight saturate((HeightA - HeightB) * HeightBlendStrength 0.5); return lerp(TexA, TexB, BlendWeight);在节点里的正确做法是分别采样两张贴图然后把结果交给一个完整的 HeightBlend 材质函数。这部分习惯可以直接参考 UE 官方 Learn 项目里的地形材质。5.3 材质纹理密度室外场景 1m 单位下纹理密度建议近处地面每米 1-2 个 Tile岩石每米 2-4 个 Tile远处山体每米 0.5-1 个 Tile如果全部用高密度纹理远处山体会产生严重摩尔纹。所以地形材质一般会用一个DistanceBlend混合第二套低密度纹理。在 LandscapeLayerCoords 节点里调整 Scale 即可近处写 0.1远处写 0.5。5.4 使用地形材质实例用MaterialInstanceConstant而不是直接修改材质创建三个材质实例MI_Terrain_Mountain、MI_Terrain_Valley、MI_Terrain_Path分别调整三层的颜色与粗糙度在 Landscape 材质里可以按比例混合这些实例。这样做的好处是可以根据光照验证随时微调山体颜色而不用打开庞大的 Material 编辑器。6. 植被散布与氛围道具6.1 场景植被规划“山地日记”不是原始森林更像是一个有人活动痕迹的山地环境。所以植被要考虑“可读性”山谷底部是低矮草地和稀疏灌木山腰是松树和阔叶树的混合山脊线和岩石露头区域不种树留出透气感路径两侧可以放倒下的枯树干让场景有故事感。打开 Foliage 模式的 Paint 页签添加植物类型网格体用途旋转随机缩放范围SM_Pine远处山体松树开0.8 - 1.4SM_Bush山腰灌木开0.6 - 1.1SM_Grass_Clump山谷草簇开0.7 - 1.5SM_Rock_Small碎石开0.5 - 2.0SM_Dead_Log枯木关1.0 - 1.2密度不要一味追求高。在“山地日记”这类偏写实且有镜头叙事的场景里稀疏但有层次的植被比密集但混乱的植被效果好得多。6.2 手动放置关键植物虽然 Foliage 笔刷效率高但关键视觉点需要手动摆放登山路径转角处的导向树山顶地标性的大型松树山谷入口处形成“画框”的两棵树。这些树要单独调整朝向、比例和曲率让它们看起来有生命感而不是复制粘贴的。6.3 使用 PCG 补充大区域植被在场景中放一个 PCG Volume覆盖山脚到半山腰。PCG 图结构可以做得很简单PCG Volume - Point Generator - Density Noise根据地形高度和坡度过滤 - Transform Points随机缩放旋转 - Spawn Foliage / Spawn Static Mesh具体节点配置在 5.7.4 里略有差异核心思路是# PCG 节点链 PCGVolume Get Landscape Layer Weight (Grass) Point Generator Density Noise Transform Points - Scale Min0.7, Max1.3 - Rot Min0, Max360 Spawn Foliage用 PCG 做碎石和远山植被效率很高。但 PCG 生成的植被不稳定刷新后可能变化因此对于需要构图精确的点仍然应该用 Foliage 手动刷。6.4 植被风动画如果你的树和草使用SimpleGrassWind或PivotPainterWind材质风吹动会比较自然。UE 5.7.4 自带的风力控制器可以通过 World Settings 统一调强度。7. 光照、大气与“日记感”后期处理7.1 主光源方向光在场景放置一个 Directional Light设定清晨角度Light Source Angle约 1 度Intensity8-12 luxColor Temperature暖色靠近 3000-3500KAtmosphere Sun Light开启“山地日记”如果做清晨场景太阳位置放在山谷一侧让脊线形成侧逆光。7.2 体积云新建 Volumetric Cloud 组件选择默认预设后调整密度Cloud Strength0.6Cloud Map Scale越大云层越稀疏Weather Map选一张简单的断裂云贴图云的阴影投射到山体上是让大场景不假的关键。7.3 指数高度雾Exponential Height Fog 负责空气透视。参数建议Fog Density0.02-0.05Fog Inscattering Color淡蓝紫色Volumetric Fog开启Volumetric Fog Distance10000Start Distance500距离雾会让山脊线从深色逐渐变淡形成强烈的纵深。雾的颜色不要用纯白偏一点大气的天光是关键。7.4 后期处理体积在场景中加入 Post Process Volume并设为 Infinite Extent关键参数Auto ExposureMin 2Max 14Color Grading - Saturation1.0-1.1Color Grading - Gamma0.95Color Grading - Gain偏一点青或暖Bloom0.3-0.5Vignette0.2-0.4想要“日记感”核心是统一色温和轻微胶片感不要让场景某一区域的对比度突然爆掉。# 检查曝光状态 r.EyeAdaptation.ExposureCompensation 0 r.EyeAdaptation.PreExposureOverride 07.5 用蓝图触发一天时间变化如果你想让“山地日记”具有动态叙事新建一个 Actor Blueprint用 Timeline 控制方向光的旋转和强度同时联动半球天空颜色和雾色。这一步不是必须的但会显著提升场景展示效果。8. 运行验证与性能优化8.1 快速运行检查点击 Play 后不要急着截图先依次看这几项场景内是否有黑面或材质错误远山是否变灰白雾过浓植被是否出现大面积闪烁LOD 问题曝光是否稳定帧率是否稳定在目标值。8.2 渲染统计打开控制台输入stat unit stat rhi stat landscape stat foliage重点关注 Draw Primitive Count 和 Static Mesh Draw Count。大部分卡顿来自植被实例数量过高。8.3 常见优化手段减少 PCG 生成的实例数量用密度或距离裁剪的方式控制植被 LOD 距离调整到合理范围开启 Nanite 的岩石网格体阴影距离缩短远处的山不需要投射实时阴影体积云的分辨率可以降低不影响远景效果。8.4 截图与录屏如果只是展示可以直接用高分辨率截图r.ScreenPercentage 200建议直接使用 Movie Render Queue 输出高质量 PNG 序列再合成成视频或长图。9. 常见问题与排查方法问题现象可能原因排查方式解决方案地形看起来很平雕刻强度太低或笔刷过小检查 Landscape 模式下 Sculpt 参数用大笔刷重新雕刻主结构山体材质接缝明显缺少高度混合检查材质中的 HeightBlend 节点用高度混合函数处理交界植被闪烁LOD 切换距离过近观察运行时 LOD 状态调整 LOD 距离体积雾导致性能暴跌体积雾分辨率过高查看 r.VolumetricFog.GridPixelSize适当降低分辨率曝光忽明忽暗自动曝光范围太窄检查 Post Process 参数扩大 Min/Max 曝光范围远景泛白雾密度过大调整 Exponential Height Fog降低密度或 StartDistance材质在远山出现摩尔纹纹理密度太高调整 LandscapeLayerCoords使用 DistanceBlend 混合低密度纹理PCG 生成位置出现穿插密度噪声没有排除坡度检查 Slope Filter 节点限制最小/最大倾斜角植物不与地面贴合没有启用 Align to Normal在 Foliage 类型属性中调整开启 Align to Surface Normal草太密导致看不到路径路径区域的植被权重过高用 Landscape Layer 画笔清理将路径区域的植被 LayerWeight 调低10. 最佳实践与后续学习方向10.1 环境创作顺序一个比较成熟的工作流顺序是确定叙事主题和一天中的时间用 Landscape 雕刻大形创建基础地形材质手动摆放关键构图物体用 Foliage/PCG 补充密集植被调整光照、大气和后期处理用序列器固定镜头验证构图性能优化。这套顺序的核心是先保证构图和叙事再填充密度最后优化性能。反过来做往往会陷入反复返工。10.2 工程管理建议所有命名统一前缀方便过滤材质实例化不直接改母材质使用 Level Instance 划分区域多人协作不会冲突在提交前清理空的 Actor 和未使用的贴图。10.3 继续深入的方向如果你对“山地日记”环境创作感兴趣下一步可以探索River 水体用 Water 插件在山谷里加一条浅溪提升环境生命力天气系统用 Niagara 实现雨滴和云雾飘动Blueprint 交互让角色沿着山路行走时有脚印或草丛被压低的效果序列器制作一条 30 秒的摄像机运镜展示从清晨到黄昏的环境变化。UE 的环境创作并不是某个单一工具能做到极致它更像是一条由地形、材质、植被、光照共同串联起来的工作流。“山地日记”只是其中一种场景方向但掌握这条工作流之后你完全可以把它迁移到草原、荒漠或者雪地环境里。不要一开始追求大而全先在一个 500x500 的小范围里把整套流程跑通这个过程中的经验和文档积累会比盲目堆场景规模更值得。
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻