URP 是 Unity 的一个渲染管线,它使用以下组件和方法来渲染场景:
- Forward Renderer:URP 实现了一个渲染循环,这个循环告诉 Unity 如何渲染一个帧。Forward Renderer 就是这个循环中的一个关键部分。
- 着色器模型:URP 为其附带的着色器提供了着色模型。着色器是用于决定图像如何渲染到屏幕上的小程序。
- 相机:在 URP 中,相机是用来捕捉和渲染场景的视角的工具。
- UniversalRP Asset:这是一个 Unity 的资源,用于存储和配置与 URP 相关的设置和数据。
对于每一步的更多信息,你可以参考“Camera loop”部分。

回调功能
UniversalRP 还提供了回调功能,允许你在渲染循环的开始和结束,以及每个相机循环的开始和结束时执行特定的代码。这为开发者提供了更大的灵活性,以定制和优化渲染过程。
“Camera loop”是渲染过程中的一个关键部分,特别是在Unity等游戏开发引擎中。这个循环涉及一系列步骤,用于确定哪些对象应该被渲染到相机视图中,以及如何渲染它们。以下是每个步骤的详细解释:
- 设置剔除参数 (Setup Culling Parameters)
○ 在这一步中,配置用于剔除(Culling)的参数,这决定了哪些光和阴影将被剔除系统处理。剔除是一个优化过程,用于减少需要渲染的对象数量,从而提高性能。你可以使用自定义渲染器来覆盖渲染管道的这部分。
- 剔除 (Culling)
○ 使用上一步中的剔除参数,计算相机可见的渲染器、阴影投射器和光列表。剔除参数和相机层距离都会影响剔除和渲染性能。这一步的输出是一个剔除列表,其中包含了哪些对象将被渲染。
- 构建渲染数据 (Build Rendering Data)
○ 根据剔除输出、URP资源(Universal Render Pipeline Asset)中的质量设置、相机以及当前运行平台的信息,捕获信息以构建渲染数据(RenderingData)。渲染数据告诉渲染器相机和当前所选平台所需的渲染工作量和质量。
- 设置渲染器 (Setup Renderer)
○ 根据渲染数据,构建一个渲染传递(Render Pass)列表,并将它们排队等待执行。你可以使用自定义渲染器来覆盖渲染管道的这部分。渲染传递定义了如何渲染特定类型的对象或效果。
- 执行渲染器 (Execute Renderer)
○ 执行队列中的每个渲染传递。渲染器将相机的图像输出到帧缓冲区,这是最终显示在屏幕上的图像。这一步包括应用材质、光照和阴影等,以产生最终的渲染效果。
通过这个Camera loop,游戏引擎能够高效地处理场景中的渲染任务,只渲染对玩家可见且重要的部分,从而提高游戏性能和用户体验。