从多个摄像机渲染到同一个渲染目标
在通用渲染管线 (Universal Render Pipeline, URP) 中,多个基础摄像机或摄像机堆叠可以渲染到同一个渲染目标。这样做可以创建分屏渲染等效果。
如果多个基础摄像机或摄像机堆叠渲染到某个渲染目标的同一区域,则 Unity 会多次绘制重叠区域中的每个像素。Unity 最后绘制具有最高优先级的基础摄像机或摄像机堆叠,位于先前绘制的像素之上。如需了解过度绘制的更多信息,请参阅高级信息。
可使用基础摄像机的 Output Target 属性来定义渲染目标,并使用 Viewport Rect 属性来定义要渲染到的渲染目标区域。有关视口坐标的更多信息,请参阅 Unity 手册和 API 文档。
设置分屏渲染
- 在场景中创建一个摄像机。此摄像机的 Render Mode 默认为 Base,因此是一个基础摄像机。
- 选择该摄像机。在 Inspector 中,滚动到 Output 部分。确保 Output Target 设置为 Camera,并将 Viewport rect 的值更改为以下值:
- X:0
- Y:0
- W:0.5
- H:1
- 在场景中创建另一个摄像机。此摄像机的 Render Mode 默认为 Base,因此是一个基础摄像机。
- 选择该摄像机。在 Inspector 中,滚动到 Output 部分。确保 Output Target 设置为 Camera,并将 Viewport rect 的值更改为以下值:
- X:0.5
- Y:0
- W:0.5
- H:1
Unity 将第一个摄像机渲染到屏幕的左侧,将第二个摄像机渲染到屏幕的右侧。
可通过设置 rect
属性,在脚本中更改摄像机的 Viewport rect 值,如下所示:
myUniversalAdditionalCameraData.rect = new Rect(0.5f, 0f, 0.5f, 0f);