资讯动态

UE5山地环境制作全流程:地形、植被、光照与PCG实战

发布时间:2026/9/7 13:28:50 来源:尧图企业网站定制
在虚幻引擎里做“环境”常常会陷入一个误区堆了资产、摆了草木看起来还是“空”的。这次我们以 UE5.7.4 为操作基线做一个名为“山地日记”的写实环境——不是单独摆一棵树、贴一张贴图而是从地形雕刻、地表材质分层、植被批量放置、光照氛围到最后输出完整走通一套山地场景的制作流程。这个场景的重点不是某个单点功能多炫而是整个制作链路是否顺。UE5.7.4 中Landscape 雕刻、Layer Blend 材质、Foliage 批量绘制、PCG 程序化生成、Lumen 全局光照这几套系统要配合起来用才能做出“山有起伏、植被有层次、光线有情绪”的效果。这次我会按实际制作顺序拆开讲包括每一步验证什么、卡住时查什么。如果你正在学 UE5 场景制作或者准备从平地区块转向山地环境这篇文章可以直接收藏。下面先给结论。1. 核心能力速览能力项说明引擎版本UE5.7.4以该版本为操作基线5.5/5.6 流程基本一致项目类型Blank 空白模板 / 第三人称模板均可核心系统Landscape 地形、Landscape Material、Foliage、PCG、Lumen、Volumetric Cloud主要功能山地地形雕刻、地表分层材质、植被批量放置、程序化分布、晨昏光照、批量渲染输出推荐硬件显卡建议 8GB 及以上Lumen 对显卡要求偏高CPU 多核有利于 PCG 生成启动方式编辑器常规启动 / 命令行带参数启动是否支持 API场景制作本身无 HTTP 接口批量任务通过 Movie Render Queue 和 Python 编辑器脚本完成是否支持批量任务支持PCG 批量生成、Foliage 批量绘制、MRQ 批量出图/出视频适合场景游戏场景、数字孪生地块展示、CG 静帧、短视频氛围环境需要注意的是UE5.7.4 对 Lumen 的全局光照有比较明显的性能压力。如果显卡显存只有 6G 左右建议把 Lumen 改成 Screen Space GI或者在做大范围山地时可接受部分烘焙结果具体看你的目标平台而定。2. 适用场景与使用边界“山地日记”这个环境可以理解为一种以叙事感为主的自然场景晨雾、草坡、孤树、乱石、踩出来的小路。它适合做三件事环境美术练习。把地形、材质、植被、光照四条线串起来理解 UE5 大型场景的节点式制作流程。个人作品或视频短片背景。配合 Sequencer 和 Movie Render Queue直接输出短片片段。项目前期预演。用较高效率搭出一个可供评审看效果的地形与光照方向后续再交接给团队细化。但也有不适合的用法。如果你想做的是大面积程序化随机地图效率更高的是 World Machine 或 Houdini 生成 Heightmap 再导入而不是纯手工雕刻。如果你想做的是室内细颗粒度作品这套流程偏室外大尺度。另外山地场景对材质贴图分辨率和资产数量都比较敏感最忌讳一进场就疯狂刷植被后面性能会非常难调。版权与合规方面要单独提醒场景里用到的 Quixel Megascans 资产、第三方植物模型、贴图包都要确认授权范围。个人学习和作品展示通常没有问题但如果用于商业项目发布必须确认资产许可允许商用尤其是从外部下载的“免费”资源不要想当然。3. 环境准备与基础设置开始之前先确认你的机器满足基础要求。UE5 编辑器本身就比较吃内存山地场景叠上 Nanite、Lumen、PCG 之后32GB 内存会更舒服16GB 也能跑但不是每个环节都流畅。显卡建议 8GB 显存起步Lumen 打开时分辨率不要一上来就 4K。磁盘方面UE5 安装目录、项目工程、资产库尽量分开存放。比如D:\Program Files\Epic Games\UE_5.7 E:\UnrealProjects\MountainDiary F:\MegascansLibrary系统方面Windows 10/11 都可以。如果你用笔记本双显卡编辑器中要把 UE5 的渲染线程指定到独立显卡上别让它默认跑到核显上。启动 UE5.7.4 时可以先用命令行打开项目# 启动 UE5.7.4 编辑器并打开项目使用 DX12 渲染后端 E:\Program Files\Epic Games\UE_5.7\Engine\Binaries\Win64\UnrealEditor.exe E:\UnrealProjects\MountainDiary\MountainDiary.uproject -d3d12 -sm6其中-d3d12指定 DirectX 12-sm6允许 Shader Model 6Lumen、Nanite 通常需要这两个条件才工作得最稳。如果你使用的是 5.5 之前版本或显卡较旧可以去掉-sm6。打开项目后建议先做两个项目设置检查Project Settings - Rendering确认 Global Illumination 为 LumenReflection Method 为 LumenAuto Exposure 开启。Project Settings - Platforms - Windows如果目标机器不确定关闭高 DPI 缩放避免编辑器界面错乱。另外在编辑器菜单 Edit - Plugins 中确认以下插件已启用Procedural Content Generation、Water、Volumetric Cloud 相关模块。UE5.7.4 中 PCG 是标准插件但每个项目不一定默认打开进入插件面板确认一下不会浪费时间。4. 山地地形塑造从平地块到自然起伏启用 Landscape 模式后你会看到创建地形的一组参数。第一次做山地容易犹豫的是“这个分辨率怎么填”。这里给一个参考做法地块大小3096分段数63这样单块地形大约 9.8 公里足够做一片有纵深感的山地。如果你的场景只想围绕一个山谷展开2016也能用后期加载速度更快。创建好地形后第一件事不是刷细节而是先把大的山形压出来。用 Sculpt 工具下的 Damage、Noise、Erosion 笔刷交替操作。实际操作顺序是用大笔刷把主体山脊推出来笔刷强度 0.3 左右先别追求细节。用 Noise 笔刷沿山脊线走一遍产生纵向的破碎感。用 Erosion 笔刷在坡面低洼处反复轻刷模拟雨水冲刷。用 Flatten 笔刷在山的半腰或山脚找两三块平坦区域作为“日记”里的临时营地或观景点。判断这一步是否成功的标准很简单在顶视图里山体的明暗层次是否像真实等高线图在透视图里是否能看到明显的山脊和沟壑。如果还是像一个扁平的随机噪点说明笔刷强度太平均了要交替使用大强度推形和小强度修面。如果你手里有从 World Machine、Gaea 或其它地形工具导出的 16bit Heightmap也可以直接在 Landscape 模式中导入。导入时注意 UE 是左手坐标系Z 轴向上而 World Machine 默认是右手系如果导入后山体轴向反了需要到外部编辑器里翻转一下。地形雕刻是环境制作中最基础也最劝退的一步。一个可落地的策略是“先定三条线”山脊线、山谷线、山脚线。把这三条线雕出来再用笔刷休整过渡区比直接刷全面要快很多。5. 地表材质与分层混合让山体颜色统一又不单调地形形状确定了接下来的工程重点就是 Landscape Material。山地环境的材质只做一层“全部铺绿色草地”在远距离看会很假。分层混合是必须做的。在 UE5.7.4 中创建一个 Landscape Material 的做法是在 Content Browser 中右键创建 Material命名为M_Landscape_Mountain。打开材质编辑器在 Material Properties 面板里把 Material Domain 设为 Landscape。在材质蓝图中添加 Landscape Layer Blend 节点模式选 Height Blend。向 Layer Blend 中添加五层草地、碎石、泥土、裸露岩层、雪/枯草。每一层至少要有 Base Color、Roughness、Normal 三组输入如果你要表现坑洼再叠加一个 Displacement 通道。写实山体最容易出现问题的地方是五层之间没有按高度和坡度分布。比如岩石应该出现在陡坡草地应该出现在平缓地段雪要出现在最高海拔。一个可控的做法是不直接用纯噪声做权重而是用 Height 混合加上Layer Depth和Specular的联动来控制。举个例子岩石层与草地层的混合这样处理草地和岩石都接入 Layer Blend让两者按高度权重交叉。岩石层单独加一个HeightLerp节点用地形高度作为 A 值只有高度超过设定阈值时岩石权重才提高。在材质里读取顶点法线用VertexNormal.WorldZ做一张坡度 Mask陡坡处把岩石颜色提纯草地颜色淡化。这种方式做出来之后从山脚向上看草坡和断崖的过渡会比较自然。判断标准是同一片山体在 30 米距离和 500 米距离看颜色大体统一不会出现某一层颜色非常跳。如果某一层颜色在远景中过亮或过不自然先去检查该层贴图的 Roughness 和 Satellite Texture再考虑混合因子。山地日场景中往往不需要把地表铺得五彩斑斓。控制色调更关键草地偏灰绿岩石偏灰蓝泥土偏暖棕。整体饱和度不要拉满给光照留出调色空间。6. 植被与地形细节的批量放置Foliage 与 PCG地形和基础材质做完山地已经有雏形了。接下来是工作量最大的一步植被。植被有两种做法。第一种是 Foliage Mode 的传统刷法适合做小面积的层次控制。选中你提前导入的树木、灌木、岩石资产开启Paint模式在山体上按下左键刷。Foliage 刷出来之后会自己贴合地面法线但也要注意笔刷密度、缩放范围和避开坡度过大的区域。第二种做法是 PCG 程序化生成适合大范围随机分布。UE5.7.4 中 PCG 已经进入成熟可用状态它可以用样条线控制生成范围指定密度、缩放、旋转随机范围并且可以自动剔除陡坡上的植被。下面是一套比较实用的 PCG 工作流选中 Content Browser 中的 PCG 节点图也可以直接在关卡中放入 PCG Volume。在 PCG 图里添加 Spline Sampler然后在地形上画一条样条线作为生成区域。接一个 Surface Sampler设定 Density、Point Radius比如每 10 平方米生成 8 个点。用 Slope Filter 节点筛掉坡度过大的区域例如当法线 Z 小于 0.5 时不生成。最后接 Static Mesh Spawner选择一组低中高三档的植物和岩石资产。实际生成前建议先在 PCG 设置中打开 Debug 预览看到白点分布合理后再真正生成实例。这样能避免生成上万棵穿插进山体的树。批量放置之后真正决定环境质量的是“大中小三层配合”大树提供轮廓中等灌木填充中景草地和碎石压住地面细节。如果你发现场景还是空大概率不是资产不够而是中景层的密度太低。判断植被是否到位的办法是把场景切到顶视图看一下是否出现“一团一团的聚类感”。真实山地植物不是均匀分布的而是围绕水源、岩石、旧树桩形成群落。建议手动种几棵关键树木再用 PCG 在它们周围密集补一圈灌木。7. 光照与大气Lumen 下的晨昏表达“山地日记”最重要的是氛围。氛围一半靠光照一半靠雾。UE5.7.4 默认在关卡中加入以下组件Sky Atmosphere、Volumetric Cloud、Exponential Height Fog、Directional Light。在运行时启用 Lumen 后Lighting 面板会提示全局光照使用 Lumen 计算。建议这样设置核心光照参数Directional Light 的 Intensity 根据时间而变。早晨场景调到 6-8 lux黄昏场景 3-5 lux色温偏暖黄。Volumetric Cloud 的 Layer Bottom Altitude 控制在 3000 左右让云层压在远处的山脊上。Exponential Height Fog 的 Fog Density 不要超过 0.004山地场景轻雾比浓雾更容易出效果。打开 Volumetric Fog让光穿过树枝时产生体积感但 Volumetric Fog 对性能消耗明显要配合后面性能优化控制。在“山地日记”这种语境下比较出效果的时间点是早晨 7 点左右的顺光和黄昏 5 点的逆光。早晨低角度光能拉长影子山脊线的轮廓会更清晰黄昏逆光能拍出树叶透亮的轮廓感山体边缘会产生漂亮的 rim light。如果你的显卡跑不动全动态 Lumen也可以退回到屏幕空间 GIr.Lumen.DiffuseIndirect.Allow0 r.Lumen.Reflections.Allow0 r.ScreenSpaceGI.Allow1这套配置在老显卡上会更流畅但反射和暗部细节会弱不少。光照阶段最容易踩的坑是“过曝”。尤其是打开 Auto Exposure 之后天空高光会把山体整体压暗看起来像阴天。解决办法是直接调整Camera Exposure的 Min/Max EV例如 8 到 13把动态范围收窄让画面更接近人眼感受。雾也是环境的一部分不要只在材质和模型里做文章。把雾的高度压到山腰位置山脚清晰、山尖朦胧画面会有明显的空间层次。8. 河流、小径与风动细节让场景“被走过”山地环境如果全是静态植物会缺一点“叙事感”。两个最容易加分的元素是河流和小径。UE5.7.4 的 Water 系统可以创建河流。方法是放一个 WaterBodyRiver 到场景。选中样条点沿着山谷的洼地编辑流向。Water 组件会自动贴合地形如果流经区域落差过大回到 Landscape 模式把河床挖深。在 Water 材质中调整水面 Roughness 和透明度让水面在早晨光照下有高光但不过曝。河流的流向最好从场景边缘开始穿越中景再消失在雾里。不要设计一条横穿整个画面的直线那样缺乏观感。小径可以通过 Landscape Spline 来做在 Landscape 模式下创建 Spline沿山脚到营地的方向布置为 Spline 指定一个包含碎石和泥土材质的网格体。UE 会自动沿样条变形。这样踩出来的路径感会比纯贴图自然很多。另外给场景增加动态感的关键是 Wind 组件。在场景中加入 Wind Directional Source设置风速适中的风强然后回到植被材质中为树叶添加简单的 World Position Offset 顶点抖动。这样树冠和草地在镜头前会有轻微晃动静止画面也会多一点生机。判断这些“动线元素”是否成功的方法是截取一张正面图先看视觉是否有引导线再看画面是否有近景、中景、远景三个层级。如果视线能自然地从左下角小径移动到远处山脊这个场景的空间引导就是对的。9. 资源占用与性能观察制作到中后期你的场景大概率会卡。先不要急着删资产用统计数据定位瓶颈。在编辑器视角窗口中输入以下控制台命令stat gpu stat unit stat streaming重点看这几类Frame和Game时间是否稳定。山地场景中如果Draw时间高说明模型实例数量太多优先检查 Nanite 和非 Nanite Mesh。GPU 占用中BasePass和Shadows是否异常高。如果高优先降低阴影贴图分辨率或把阴影距离限制在 2000 以内。Streaming中纹理超预算优先优化贴图尺寸比如植被贴图 2048 改 1024肉眼几乎看不出差别。如果 Lumen 时间占比过高可以把r.Lumen.TraceMeshSDFs关掉或降低远场跟踪距离。你还可以这样快速降低显存压力在 Project Settings 中把 Engine Scalability 预设为 Medium 或 Cinematic然后通过r.ScreenPercentage控制渲染分辨率来观察变化。这里的思路是“先能用再调画质”不要一上来就 4K 满配置。一个更具确定性的做法是在山地场景中先关闭 Lumen 的天气体积影响测试 PCG 生成与植被刷完之后再用r.VolumetricFog 1打开体积雾。这样你能区分清楚哪个系统占用了多少 GPU 时间。如果需要批量输出静帧或视频使用 Movie Render Queue 预设打开 Window - Cinematics - Movie Render Queue。添加 Sequencer 关卡设置输出路径和帧范围。在Settings中选择 Anti-Aliasing 为 TSR 或 Temporal Super Resolution输出分辨率为 3840x2160。指定Console Variables配置例如强制 Lumen 高质量。批量出图的任务也可以通过 Python 编辑器脚本完成。下面是一个简单示意脚本核心逻辑是遍历多个关卡并依次渲染import unreal # 仅作编辑器脚本示意运行前按实际项目名称调整 editor_actor_subsystem unreal.get_editor_subsystem(unreal.EditorActorSubsystem) asset_registry unreal.EditorAssetLibrary map_list [ /Game/Maps/M_Init, /Game/Maps/M_Morning, /Game/Maps/M_Dusk ] for map_path in map_list: if not asset_registry.does_asset_exist(map_path): print(地图不存在: map_path) continue unreal.EditorLevelLibrary.load_level(map_path) print(已加载: map_path)这段代码的角色是把多个关卡串起来方便你构建一条“夜间打包-晨间出图-黄昏出图”的批处理链路。UE 编辑器脚本的实际 API 在版本间可能有调整建议你在 5.7.4 编辑器里仔细核对接口这里的重点是提供自动化批处理的思路而不是必须照抄。10. 常见问题与排查方法下面是我在做 UE5 山地环境时经常会遇到的问题按现象、原因、排查、解决收集成表。问题现象可能原因排查方式解决方案Landscape 上刷了植被但山体没有显示植被颜色Landscape Material 未指定或 Layer Weight 未生效检查 Landscape 的 Material 是否赋给了地形重新指定 Landscape Material检查 Layer Blend 节点是否连到最终 Base ColorPCG 没有生成任何实例缺少 Spline 或 Density 过低Surface Sampler 点数不够打开 PCG Debug检查 Sample Points 数量调高 Point Radius 外的生成密度检查样条范围Lumen 画面发暗Lumen 曝光或 GI 质量设置偏低查看 Lumen 相关统计对比 r.ScreenPercentage将 GI 提高到 High检查自动曝光范围河流没有顺应地形河流样条与地形高度差距过大选中 WaterBodyRiver查看样条点高度用 Landscape 雕刻方式降低河床匹配样条高度植被在近处清晰、远处消失Foliage 的 Cull Distance 设置过小在 Foliage 类型面板检查 Cull Distance将中景植物的距离范围从 2000 调大到 5000画面噪点明显TSR/TAA 采样不足或屏幕百分比过低查看输出分辨率与渲染分辨率比例开启 TSR 高质量或提高 r.ScreenPercentage 至 100启动项目时提示缺少插件项目插件未启用查看错误日志中的插件名称在插件面板启用相应插件然后重新启动编辑器如果你的编辑器启动后直接闪退建议先在Saved/Logs中查看日志。UE 的崩溃日志通常能把卡住的模块文件名打出来比到处猜更直接。11. 最佳实践与使用建议最后总结几条我实际做场景时最受益的习惯。第一内容浏览器文件夹结构从一开始就固定下来。建议按这个结构分Content/ |-- Maps/ |-- Material/ |-- Mesh/ |-- Foliage/ |-- PCG/ |-- Audio/ |-- VFX/不要今天建一个NewFolder_2明天又建一个NewFolder_Final后期你会在找资产上浪费大量时间。第二材质贴图统一分辨率。山区植被贴图 2K 和 1K 混用没问题但不要在一个材质里 4K 贴图叠 4 层显存很快就会崩。第一版先用 1K 把效果看顺再逐步替换关键资产到 2K。第三第一次运行不要开太高画质。所有性能优化都应该先于最终渲染不要到了输出阶段才降配置。每天都用stat gpu过一眼比最后集中调性能要省事得多。第四在批量任务和 PCG 生成时加日志。PCG 生成的实例数量、Foliage 的网格体数量、每个关卡的渲染帧时间这些数据建议以 CSV 记录一次。这样当你发现场景卡顿时可以直接定位到是哪一类资产超预算。第五合规边界不能踩。树种、岩石、贴图素材的来源要记录清楚。如果你要发布到公众平台或商业交付务必确认许可范围。山地“日记”是创作不是未经授权复制别人的环境作品。最后一点关于场景气质。山地环境的氛围不是靠单棵高精度树撑起来的而是靠远中近三层的整体配合。如果你做完一轮觉得不够好看大概率不是资产精度不够而是远近层级拉得不够开。把 UE5.7.4 的这套流程再走一遍你会发现 PCG 的 Seed 每一次随机都会带来新的分布这就是场景“日记”的乐趣每次打开都能看到不一样的山、不一样的雾、不一样的光。下一次建场景时建议直接从这套流程开始留出一段时间只做地形和光照别一头扎进植被刷子里去。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价