1.4 前向 vs 延迟:移动端渲染管线的真实成本

两条管线

前向渲染 移动延迟渲染
光照成本 随光源数线性增长 与光数量解耦
透明物体 天然支持 需单独前向通道
MSAA 原生支持 麻烦
GBuffer 带宽 无 高(移动端带宽敏感)
动态光源多 慢 优势

移动端默认前向渲染;移动延迟渲染见官方「移动延迟着色模式」(https://www.wanxiangyundang.top/read/unreal-engine-5-8-docs/using-the-mobile-deferred-shad-ebf5),整体管线概念见「渲染和着色模式」(https://www.wanxiangyundang.top/read/unreal-engine-5-8-docs/mobile-rendering-and-shading-m-e8c2)。

经验判断

  • 光照少且稳定(4 盏以内动态光) → 前向,简单又快
  • 多动态光源场景(多支手电筒/技能光球) → 移动延迟值得评估
  • 透明粒子多 → 前向(延迟的透明通道是额外开销)
  • 带宽敏感的低档机型 → 前向

结论:不做「多光」就别上延迟。多数手游是「白天静态光 + 少量动态光」——前向是正解。

前向渲染的光照优化

前向管线的成本模型是「像素数 × 光源数」,所以:

  1. 光的逐像素影响范围(衰减半径)越精准越好——重叠范围意味着像素被多次计算
  2. 用静态光 + Lightmap 代替动态光(环境光、室内光全部烘焙)
  3. 移动端烘焙光照质量远便宜于实时 GI——善用「静态光 + 少量动态高光」组合
  4. 阴影只给「必须看的物体」(主角、BOSS、关键交互物)

透明与粒子

  • 移动端半透明叠加是高开销项,粒子材质能不透明就不透明(用 SoftMask/AlphaTest 近似)
  • 粒子的 DrawCall 在移动端比 GPU 时间更扎眼——合并材质、用 GPU 粒子(需功能级别支持)

移动端渲染功能自检表

「移动端渲染功能」(https://www.wanxiangyundang.top/read/unreal-engine-5-8-docs/mobile-rendering-features-in-u-7019)是官方完整清单。我的逐项确认模板:

  • [ ] 移动端 HDR 开/关与目标设备带宽匹配
  • [ ] 阴影:CSM 级数 ≤2、距离 ≤20m,或只对角色投影
  • [ ] SSAO 按档位关/低
  • [ ] 后处理:柔和景深只在高效档开(2.3 节)
  • [ ] 雾效:逐顶点雾化(移动端最省)
  • [ ] LOD:基础密度与距离正确(3.3 节)

心得:管线选型我早年犯过一个错——被「延迟渲染更先进」带偏,折腾一圈移动延迟,最后重回前向。管线没有先进落后,只有「成本模型匹配你内容」与否。多动态光源才值得换延迟的账,别为了技术先进换。