Jonny / TECHNICAL ART
UNREAL ENGINE 5

一帧怎么画

默认延迟路径下,不透明先写成 GBuffer,光照之后再算。项目可以关掉其中一些 pass。这不是某张关卡的 GPU 捕获。

  1. 01
    可见性

    先剔除。Nanite 网格走 visibility buffer,再把材质解析进 GBuffer;其余不透明和 masked 网格走 Base Pass。两条路在光照前汇合。

  2. 02
    Base Pass / GBuffer

    写出 base color、法线、粗糙度、金属度等。静态光照和 DBuffer 贴花也在这一段进入缓冲。前向模式则会在这里直接算动态光。

  3. 03
    直接光和阴影

    延迟光照读取 GBuffer。阴影来自这一帧已经准备好的阴影图,而不是在材质节点里现算。

  4. 04
    间接光和反射

    可以是 Lumen,也可以是光照贴图或屏幕空间。这一项由项目设置决定,不是每帧固定的同一种算法。

  5. 05
    半透明

    前向绘制。可照明的半透明通常从 Translucency Lighting Volume 取光,分辨率低于不透明。

  6. 06
    后处理

    曝光、泛光、色调映射,以及 TAA 或 TSR。半透明若走 Separate Translucency,可以不受景深影响。

依据 Epic 文档:Lit Translucency、Post Process Effects,文档版本 5.8。Nanite 的可见性缓冲是公开的网格路径,不代表每个项目都打开了它。