Jonny / TECHNICAL ART
UNIVERSAL RENDER PIPELINE

URP 一帧怎么画

顺序来自 Unity 6 的注入点文档。Forward 没有 GBuffer 那两步。这不是某个工程的 Frame Debugger 截图。

  1. 01
    帧开始

    Before Rendering。此时相机矩阵还没准备好,适合写这一帧后面要用的查找表。

  2. 02
    阴影

    主光和附加光的阴影图。注入点把阴影前后分开。

  3. 03
    预通道

    按需要生成深度,或深度加法线。不是每张图都会跑。

  4. 04
    不透明

    Forward 直接在 Draw Opaque 里算光照。Deferred 先写 GBuffer,再画 Deferred Lights,然后才到不透明物体的收尾。

  5. 05
    天空

    天空盒插在不透明之后、透明之前。全屏效果如果要盖住天空、又被透明物体挡住,就放在这里之后、透明之前。

  6. 06
    透明

    Draw Transparent。透明物体看得到已经画完的不透明颜色和天空。

  7. 07
    后处理

    颜色分级、抗锯齿和最终 blit。After Rendering Post Processing 仍在最终输出之前。

依据 Injection points reference for URP,Unity 6。自定义 Scriptable Render Pass 挂在这些点上,不改变上面的主顺序。