通用渲染管线中的渲染
通用渲染管线 (URP) 使用以下组件来渲染场景:
下图显示了 URP 通用渲染器的帧渲染循环。
当渲染管线在 Graphics Settings 中处于激活状态时,Unity 使用 URP 来渲染项目中的所有摄像机,包括游戏和 Scene 视图摄像机、反射探针以及 Inspector 中的预览窗口。
URP 渲染器为每个摄像机执行一个摄像机循环,其中执行以下步骤:
- 剔除场景中渲染的对象。
- 为渲染器构建数据。
- 执行将图像输出到帧缓冲区的渲染器。
有关每个步骤的更多信息,请参阅摄像机循环。
在 RenderPipelineManager 类中,URP 提供了可用于在渲染帧之前和之后以及在渲染每个摄像机循环之前和之后执行代码的事件。这些事件包括:
有关如何使用 beginCameraRendering 事件的示例,请参阅使用 beginCameraRendering 事件页面。
摄像机循环
摄像机循环执行以下步骤:
步骤 | 描述 |
---|---|
设置剔除参数 | 配置决定剔除系统如何剔除光源和阴影的参数。可使用自定义渲染器覆盖渲染管线的这一部分。 |
剔除 | 使用上一步中的剔除参数来计算一组可见的渲染器、阴影投射物以及对摄像机可见的光源。剔除参数和摄像机层距离会影响剔除和渲染性能。 |
Build Rendering Data | 根据剔除输出、URP 资源、摄像机和当前运行平台的质量设置来捕获信息,以便构建 RenderingData 。渲染数据告诉渲染器相关摄像机和当前选定平台所需的渲染工作量和质量。 |
设置渲染器 | 构建一组渲染通道,并根据渲染数据将它们排队以供执行。可使用自定义渲染器覆盖渲染管线的这一部分。 |
执行渲染器 | 执行队列中的每个渲染通道。渲染器会将摄像机图像输出到帧缓冲区。 |