包含此页的版本:
不含此页的版本:
URP包含多个注入点,可让您将渲染通道注入到帧渲染循环中,并在不同的事件上执行它们。
注入点允许自定义渲染通道访问 URP 缓冲区。渲染通道具有对每个注入点上所有缓冲区的读取和写入访问权限。
Unity 在渲染循环中提供以下事件。您可以使用这些事件来注入自定义通道。
| 注射点 | 描述 |
|---|---|
| 渲染前 | 执行ScriptableRenderPass实例,然后再渲染管道中的任何其他通道,以进行当前相机在场景中创建特定视点图像的组件。输出被绘制到屏幕上或作为纹理捕获。更多信息请参阅术语表. 此时未设置摄像机矩阵和立体渲染。您可以使用此注入点绘制到管道稍后使用的自定义输入纹理,例如 LUT 纹理。 |
| 渲染阴影之前 | 执行ScriptableRenderPass实例,然后再渲染阴影贴图(MainLightShadow、AdditionalLightsShadow 通道)。此时尚未设置摄像机矩阵和立体渲染。 |
| 渲染后阴影(AfterRenderingShadows) | 执行ScriptableRenderPass实例(MainLightShadow、AdditionalLightsShadow 通道)之后。摄像机矩阵和立体渲染未设置这一点。 |
| 渲染前预传递 | 执行ScriptableRenderPass实例,然后再渲染预通道(DepthPrepass、DepthNormalPrepass通道)。此时已经设置了摄像机矩阵和立体渲染。 |
| 渲染后预传递 | 执行ScriptableRenderPass实例在渲染预通(DepthPrepass、DepthNormalPrepass)之后。此时设置了摄像机矩阵和立体渲染。 |
| 渲染前Gbuffer | 执行ScriptableRenderPass实例,然后再渲染 GBuffer 通道。 |
| 渲染后Gbuffer | 执行ScriptableRenderPass实例。 |
| 渲染前延迟光源 | 执行ScriptableRenderPass实例,然后再呈现延迟传递。 |
| 渲染后延迟光源 | 执行ScriptableRenderPass实例。 |
| 渲染之前不透明 | 执行ScriptableRenderPass实例,然后再呈现不透明对象(DrawOpaqueObjects 传递)。 |
| 渲染后不透明 | 执行ScriptableRenderPass实例在呈现不透明对象后(DrawOpaqueObjects 传递)。 |
| 渲染之前天空盒(BeforeRenderingSkybox) | 执行ScriptableRenderPass实例,然后再渲染天空盒一种特殊类型的材质,用于表示天空。通常是六面的。更多信息请参阅术语表 (Camera.RenderSkybox 通道)。 |
| 渲染后天空盒 | 执行ScriptableRenderPass实例。 |
| 渲染之前透明(BeforeRenderingTransparents) | 执行ScriptableRenderPass实例,然后再渲染透明对象(DrawTransparentObjects 传递)。 |
| 渲染后透明(AfterRenderingTransparents) | 执行ScriptableRenderPass实例在渲染透明对象后(DrawTransparentObjects 传递)。 |
| 渲染前后期处理(BeforeRenderingPostProcessing) | 执行ScriptableRenderPass渲染前的实例后期处理 在图像出现在屏幕上之前通过应用滤镜和效果来改善产品视觉效果的过程。您可以使用后期处理效果来模拟物理相机和胶片属性,例如泛光和景深。更多信息 后期处理、后处理、后处理请参阅术语表效果(渲染后处理效果通道)。 |
| 渲染后处理后处理(AfterRenderingPostProcessing) | 执行ScriptableRenderPass实例在渲染后期处理效果之后但在最终blit“位块传输”的简写术语。blit作是将数据块从内存中的一个位置传输到另一个位置的过程。请参阅术语表、后期处理抗锯齿效果和颜色分级。 |
| 渲染后 | 执行ScriptableRenderPass实例。 |
下图显示了 URP 帧中的通道和帧资源流: