一帧怎么画
默认延迟路径下,不透明先写成 GBuffer,光照之后再算。项目可以关掉其中一些 pass。这不是某张关卡的 GPU 捕获。
- 01可见性
先剔除。Nanite 网格走 visibility buffer,再把材质解析进 GBuffer;其余不透明和 masked 网格走 Base Pass。两条路在光照前汇合。
- 02Base Pass / GBuffer
写出 base color、法线、粗糙度、金属度等。静态光照和 DBuffer 贴花也在这一段进入缓冲。前向模式则会在这里直接算动态光。
- 03直接光和阴影
延迟光照读取 GBuffer。阴影来自这一帧已经准备好的阴影图,而不是在材质节点里现算。
- 04间接光和反射
可以是 Lumen,也可以是光照贴图或屏幕空间。这一项由项目设置决定,不是每帧固定的同一种算法。
- 05半透明
前向绘制。可照明的半透明通常从 Translucency Lighting Volume 取光,分辨率低于不透明。
- 06后处理
曝光、泛光、色调映射,以及 TAA 或 TSR。半透明若走 Separate Translucency,可以不受景深影响。
依据 Epic 文档:Lit Translucency、Post Process Effects,文档版本 5.8。Nanite 的可见性缓冲是公开的网格路径,不代表每个项目都打开了它。