中EN
概念页

移动端渲染优化

Mobile Rendering Optimization

更新于 2026-10-13 约 9 分钟UE5移动端Draw CallOverdraw性能

移动端优化的核心是认清设备的 CPU/GPU 速度、线程、带宽和内存,然后控制最主要的几项开销:Draw Call(官方称其为当前导致图形性能低下的最大因素,在 Galaxy Tab S6 上建议约 700 个,低端设备少于 500 个)、材质复杂度和 overdraw。合并网格和材质(Substance 把多种材质画进同一张纹理,用顶点色作遮罩)是减少 Draw Call 最直接的办法。

先了解设备

官方:要熟悉设备的 CPU 和 GPU 速度、线程数和带宽,以及内存、显存和可用磁盘空间。Stat TextureGroup 可以查看各纹理池的内存占用,Stat RHI 可以输出 Draw Call 数量。(Optimization and Development Best Practices for Mobile Projects in Unreal Engine)定位瓶颈的通用方法见 渲染瓶颈定位与性能度量、UE5 性能分析。

Draw Call:最大的开销

场景Galaxy Tab S6 目标低端设备
优化过的一般场景约 700少于 500
HMI(材质独特而复杂)100最好少于 50

(Optimization and Development Best Practices for Mobile Projects in Unreal Engine)另外注意:PIE 中和设备上的 Draw Call 数不同,要在设备上测。

像素开销

资产质量

从高模烘焙法线贴图时,有很多因素会降低进入引擎后的质量;静态网格可以在 LOD 设置中开启 Use Full Precision UVs 和 Use High Precision Tangent Basis 来减少瑕疵。(Optimization and Development Best Practices for Mobile Projects in Unreal Engine,见 法线贴图与凹凸贴图)

移动端前向与延迟着色

5.8 没有专页,以下来自 5.4 文档《Rendering Features for Mobile Games》的功能表,以及 Epic 员工 Jack Porter 在 Unreal Fest 2025 的演讲幻灯片《Developing Mobile Games with UE 5.6》。(Rendering Features for Mobile Games (5.4) + Unreal Fest 2025 mobile talk)

5.4 文档列出三种移动渲染配置:

功能移动前向 (Mobile Forward)移动延迟 (Mobile Deferred)前向且关闭 HDR(头显 XR)
支持的 APIOpenGL ES 3.2 / Metal / Vulkan / SwitchMetal / Vulkan / Switch—
光照函数 (Light Function,静态光)否是否
IES 纹理(固定/可移动光)否是否
DBuffer 贴花 Roughness 响应否是否
延迟贴花 (Deferred Decal)是是否
体积云 / 体积雾 / VSM / TSR否否否

演讲给出的 5.6 变化:延迟渲染器现在是所有移动平台的默认(Android GLES、Android Vulkan、iOS Metal),GBuffer 为每像素 128 位;支持更多光照模型和静态光照,BRDF 改为与桌面渲染器一致。在 iOS 和 Vulkan Android 上,GBuffer 是 memoryless 的,存放在 GPU 的 tile 片上内存;在 OpenGL ES 上改为多 Pass,官方称比 PLS 和 framebuffer fetch 更可靠也更快。(Rendering Features for Mobile Games (5.4) + Unreal Fest 2025 mobile talk)

以下流程图概括 5.6 及计划中的多 Pass 延迟方案:

flowchart LR
  A["Base Pass 写 GBuffer 与深度"] --> B{"平台"}
  B -->|iOS Metal / Android Vulkan| C["GBuffer 留在 tile 片上内存"]
  B -->|Android GLES| D["多 Pass"]
  C --> E["光照 Pass"]
  D --> E
  A -.->|"计划 5.7+"| F["GBuffer 存系统内存 多 Pass 延迟"]
  F --> G["后处理可读 GBuffer DFAO DF 阴影 SSR"]

图中虚线是演讲列出的未来计划:把 GBuffer 存进系统内存。好处是不需要深度预 Pass,可以把 DFAO、距离场阴影、SSR、DBuffer 贴花作为可伸缩选项,后处理也能访问 GBuffer,Epic 自己的内容测下来与 subpass 模式持平或稍快。代价是额外约 15 MB 系统内存和更高的带宽,帧缓冲压缩可以缓解一部分。(Rendering Features for Mobile Games (5.4) + Unreal Fest 2025 mobile talk)

怎么切换着色路径(UE 5.8 官方文档):在 Engine.ini 中用控制台变量 r.Mobile.ShadingPath 设置,0 为移动前向着色,1 为移动延迟着色;也可以在 Project Settings 中把 Mobile Shading 下拉框设为 Deferred Shading 并重启编辑器。(Mobile Rendering and Shading Modes for Unreal Engine Using the Mobile Deferred Shading Mode in Unreal Engine)

移动前向移动延迟
官方推荐场景使用预计算光照的项目(强烈推荐)使用动态光照的项目、目标为 tile-based GPU
光照特性基础额外支持 Light Function、IES 光源配置、受光贴花,局部光源渲染更高效
预计算光照下的着色模型不受限只有 DefaultLit 和 Unlit
材质开销(官方示例)147 条指令、2 个采样器34 条指令、0 个采样器

(Mobile Rendering and Shading Modes for Unreal Engine Using the Mobile Deferred Shading Mode in Unreal Engine)移动延迟把 GBuffer 放在 GPU 的 tile 内存里,不写入系统内存;不支持 memoryless 渲染目标的设备会为 GBuffer 分配系统内存,占用略多。它不需要为每次绘制绑定阴影和反射纹理,图形状态管理更少,因此 CPU 性能更好。(Using the Mobile Deferred Shading Mode in Unreal Engine)

还有第三种选择:在高端设备上使用桌面渲染器。iOS 在 Platforms > iOS > Rendering 中开启 Metal Desktop Renderer(Beta);Android 在 Platforms > Android > Build 中开启 Support Vulkan Desktop(实验性),要求设备支持 SM5,资源开销远高于两种移动路径。(Using the Desktop Renderer on Mobile in Unreal Engine)

默认着色路径:逐版本核对

版本官方文档的说法其他来源
UE 5.5 / 5.6 / 5.7 / 5.8《Mobile Rendering and Shading Modes》四个版本的文本完全相同:前向着色「是移动端的默认着色模式」—
UE 5.6同上Epic 员工 Jack Porter 的 Unreal Fest 2025 幻灯片:「Deferred Renderer now default used on all mobile platforms」,旁边标注了「Used on Android Vulkan / Android GLES / iOS Metal」
UE 5.7 / 5.8发行说明全文中没有提到修改移动端默认着色路径(只提到 5.7 弃用 r.Mobile.UseClusteredDeferredShading、5.8 修复移动延迟路径的自发光问题)—

(Mobile Rendering and Shading Modes for Unreal Engine Mobile Rendering and Shading Modes for Unreal Engine)UE 5.6 发行说明页被拦截(403 或只返回目录),没能核对。

结论:按官方文档,引擎的 r.Mobile.ShadingPath 默认值在 5.5–5.8 中都是 0(前向)。演讲中的「default」更可能指 Epic 自己的项目(「Used on」)或新模板的配置,但这一点没有官方文字证实,因此仍保留为未解决的分歧。项目实际使用哪条路径,应以 DefaultEngine.ini 或 Project Settings 中 Mobile Shading 的值为准。

  1. Optimization and Development Best Practices for Mobile Projects in Unreal Engine UE 5.8 文档
  2. Rendering Features for Mobile Games (5.4) + Unreal Fest 2025 mobile talk UE 5.4 文档 + Unreal Fest 2025 Epic 演讲(UE 5.6)
  3. Mobile Rendering and Shading Modes for Unreal Engine UE 5.8 文档
  4. Using the Mobile Deferred Shading Mode in Unreal Engine UE 5.8 文档
  5. Using the Desktop Renderer on Mobile in Unreal Engine UE 5.8 文档
  6. Mobile Rendering and Shading Modes for Unreal Engine UE 5.5–5.7 文档

相关页面

图形学绘制调用与状态切换优化Draw Calls & State Change Optimization调用图形 API 的开销主要在 CPU 端的驱动里:状态切换昂贵,每次绘制调用有固定开销,大量小批次会让 GPU"饿死"。对策是:合理放置缓冲;按状态代价排序分组;共享纹理和着色器;合并网格和实例化以减少调用;并用一个整数排序键同时兼顾状态分组与前后排序。图形学像素与帧缓冲优化Pixel & Framebuffer Optimization需要着色的像素通常远多于顶点,所以像素处理优化往往最划算。核心手段:保证占用率以隐藏纹理延迟、按距离切换着色器 LOD、利用 early-z 并通过从前往后排序或 z-prepass 减少过度绘制、缩小帧缓冲每像素存储(色度子采样、YCoCg 棋盘),以及只在需要时开启混合、避免 GPU 回读。几何与光栅化阶段的常用优化也一并列出。图形学渲染瓶颈定位与性能度量Bottleneck Location & Performance Measurement渲染管线中最慢的阶段(瓶颈)决定整体吞吐量。优化就是"找到瓶颈 → 优化到瓶颈转移 → 重复",并让非瓶颈阶段做到与瓶颈同样多的工作以换取画质。定位靠逐阶段增减负载的实验和性能工具;度量要用毫秒帧时间而不是 FPS。两条箴言:了解你的架构 (KNOW YOUR ARCHITECTURE);测量、测量、再测量。游戏开发 · UE5UE5 性能分析UE5 ProfilingUE5 性能分析的基本流程是:先用 stat unit 判断瓶颈在游戏线程、渲染线程还是 GPU,再用对应的 stat 组、profilegpu/GPU 统计或 Unreal Insights 的 Timing/Memory 等视图向下钻取;渲染特性(RDG、VSM、TSR)各自提供作用域和可视化。测量时要避开会扭曲数据的设置(调试构建、异步计算、可视化模式)。游戏开发 · UE5光源类型与静态光照Light Types & Static LightingUE 有五种光源:定向光、天空光、点光、聚光和矩形光。每个光源有三种移动性 (Mobility):静态 (Static) 只烘焙进光照贴图;固定 (Stationary) 烘焙间接光,同时能为可移动物体投射动态阴影,但一个物体最多受 4 个固定光源影响;可移动 (Movable) 完全动态。烘焙由 Lightmass(CPU 版或基于 DXR 的 GPU 版)完成,Lightmass 重要性体积用来把光子集中到可玩区域。游戏开发 · UE5材质系统Material SystemUE 材质 (Material) 是用节点图描述「表面如何与光交互」的着色器生成器。它有三个正交维度:着色模型 (Shading Model) 决定光照模型(Default Lit、次表面、清漆、毛发等),混合模式 (Blend Mode) 决定与背景的合成公式(Opaque/Masked/Translucent…),参数 + 材质实例 (Material Instance) 让美术在不重编译着色器的前提下做变体。PBR 输入(Base Color/Roughness/Metallic/Specular)直接对应 RTR4 的金属度-粗糙度工作流;最大的工程坑是静态参数导致的着色器排列爆炸。图形学法线贴图与凹凸贴图Normal & Bump Mapping凹凸贴图是一类在像素着色中修改着色法线来表现中尺度细节的技术:几何法线不变,只改变光照计算使用的法线,从而在不增加几何的情况下显得更立体。最常用的形式是切线空间法线贴图,需要每顶点的切线框架;法线贴图的过滤是难点。游戏开发 · UE5像素流送Pixel Streaming像素流送 (Pixel Streaming) 让 UE 应用运行在桌面 PC 或云服务器上,把渲染好的画面和音频编码成媒体流,通过 WebRTC 点对点发送到浏览器和移动设备;用户可以在网页里用键盘、鼠标、触摸、手柄操作应用。系统由引擎内的 Pixel Streaming 插件和一个信令与 Web 服务器 (Signalling and Web Server) 组成,跨网络连接时需要 STUN/TURN。

输入关键词开始搜索

滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原