1. Lumen - Introduction

1 Summary

本系列是作者基于对 UE5 Lumen 源码以及网上资料的学习,而形成对 Lumen 实现原理的介绍。Lumen 是UE5的实时全局光照解决方案,其中包含了众多技术的工程化,本文先总体介绍 UE5 Lumen 的组成部分,之后再对各组成部分详细描述。

2 Global Illumination

老生常谈,全局光照在实时渲染性能的限制下,最多只能达到 1/2 spp的光线开销,而高质量的间接光需要成百上千的光线数量。对此,一方面提出了各种 spatial-temporal 技术来变相提高采样率;另一方面有基于probe 的 DDGI 或者 VXGI 等,来离散化采样场景,从而得到场景间接光的低分辨率表示。

仅仅这些技术还无法是的全局光照在大场景下开启,还需要考虑实际的工程实现问题。例如,在计算光线radiance时,即着色光线交点,需要考虑:

  • 材质数量庞大,需要非常多的材质pass,开销异常高
  • 大场景世界范围很大,需要的world probe数量也会很高,实时更新全部 world probe 是不现实的
  • 光源数量同样可能会很多,需要应用many-lights技术
  • 等等

Lumen 作为一个庞大的实时全局光照系统,不仅杂糅了很多技术,而且工程实现上有很多实时性能上的权衡,主要包含以下组成部分:

  • surface cache:直接光照只需要关注相机看到的部分,而间接光照需要处理次级光线及之后的光照信息,也就是不依赖于相机的全局信息。surface cache 是基于mesh card构建的参数化空间(可近似理解为有误差的texture space),缓存物体表面上用于间接光照的数据,包括材质、表面的直接光照计算、表面的radiosity。surface cache由于定义在物体表面上,不随相机而改变,因此在多帧之间具有一致性。
  • radiance cache probe:
  • screen probe:
  • reflection:
  • 光追:

1. Lumen - Introduction
http://example.com/2025/03/04/Render Engine/UE5/Lumen/1. Introdution/
Author
John Doe
Posted on
March 4, 2025
Licensed under