Unity 6.3
0 онлайн 54 гостей 3 в системе
Вход

Camera выполнить заказ в URP

На этой странице описывается, когда камера Universal Render Pipeline (URP) выполняет следующие операции:

Очистка буферов цвета и глубины

В Universal Render Pipeline (URP), поведение очистки Camera зависит от Тип отображенияCamera.

База Camera

Цветовой буфер

В начале цикла рендеринга a Camera с Тип базового рендеринга может очистить свой цветовой буфер до Skybox, очистить цветовой буфер до сплошного цвета или использовать неинициализированный цветовой буфер. Вы можете определить это поведение с помощью Тип фона свойства в Camera Inspector когда Тип отображения установлен на Базовая.

Обратите внимание, что содержимое неинициализованного цветового буфера варьируется в зависимости от платформы. На некоторых платформах неинициализованный цветовой буфер будет содержать данные из предыдущего кадра. На других платформах неинициализованный цветовой буфер будет содержать неинициализованную память. Вы должны выбрать использование неинициализованного цветового буфера только в том случае, если ваш Camera рисует каждый пиксель в цветовом буфере, и вы не хотите нести расходы на ненужную операцию очистки.

Глубинный буфер

База Camera всегда очищает свой буфер глубины в начале каждого цикла рендеринга.

Оверлей Camera

Цветовой буфер

В начале цикла рендеринга, Оверлей Camera получает цветовой буфер, содержащий цветовые данные от предыдущих Камер в стеке Camera. Он не очищает содержимое цветового буфера.

Глубинный буфер

В начале цикла рендеринга, Overlay Camera получает буфер глубины, содержащий данные глубины от предыдущих Камер в стеке Camera. Вы можете определить это поведение, используя свойство Ясная глубина в свойстве Camera Inspector, когда Тип отображения установлено на Оверлей.

Когда параметр Ясная глубина установлен в true, Overlay Camera очищает буфер глубины и переносит свой вид в цветовой буфер над любыми существующими цветовыми данными. Когда параметр Ясная глубина установлен в false, Overlay Camera проверяет свой вид на соответствие буферу глубины, прежде чем перенести его в цветовой буфер.

Уничтожение и переработка

Если ваша сцена URP содержит несколько Камер, Unity выполняет их операции выделения и рендеринга в предсказуемом порядке.

Один раз в кадре Unity выполняет следующие операции:

  1. Unity получает список всех активных базовых камер в сцене.
  2. Unity организует активные базовые камеры в 2 группы: камеры, которые рендируют свой вид на текстуры рендеринга, и камеры, которые рендируют свой вид на экран.
  3. Unity сортирует базовые камеры, которые рендируют текстуры, в порядке Приоритет, так что камеры с более высоким Приоритет рисуются последними.
  4. Для каждой Базы Camera, рендирующей текстуру, Unity выполняет следующие действия:
    1. Уничтожить базу Camera
    2. Рендирование базы Camera в текстуру рендеринга
    3. Для каждого Оверлей Camera которая является частью базы Camera Camera Столбик, в порядке, определенном в стеке Camera:
      1. Удалить накладку Camera
      2. Рендирование накладки Camera на текстуру рендеринга
  5. Unity сортирует базовые камеры, которые рендируют на экран, в порядке Приоритет, так что камеры с более высоким значением Приоритет рисуются последними.
  6. Для каждой базы Camera, которая отображается на экране, Unity выполняет следующие действия:
    1. Уничтожить базу Camera
    2. Отображение базы Camera на экране
    3. Для каждого наложения Camera входящего в состав Базы Camera’s Camera стек в порядке, указанном в пункте 1.1.1. Camera Сток:
      1. Удалить накладку Camera
      2. Отображение на экране перекрытия Camera

Unity может рендировать вид Оверлей Camera несколько раз в течение кадра — либо потому, что Оверлей Camera появляется в более чем одном стеке Camera, либо потому, что Оверлей Camera появляется в одном и том же стеке Camera более чем один раз. Когда это происходит, Unity не повторно использует ни один элемент операции выделения или рендеринга. Операции повторяются полностью, в порядке, описанном выше.

Примечание: В этой версии URP, Накладные камеры и Camera Стакаж поддерживаются только при использовании универсального рендера. Накладные камеры не будут выполнять ни одну часть цикла рендеринга, если использовать 2D рендер.

Оптимизация порядка отображения

URP выполняет несколько оптимизаций внутри Camera, включая оптимизацию порядка рендеринга для уменьшения перерисовки. Однако, когда вы используете стек Camera, вы фактически определяете порядок, в котором рендируются эти камеры. Поэтому вы должны быть осторожны, чтобы не упорядочивать камеры таким образом, что это вызывает чрезмерную перерисовку.

Когда несколько Камер в Стоге Camera рендируют на одну и ту же цель рендеринга, Unity рисует каждый пиксель в цели рендеринга для каждого Camera в Стоге Camera. Кроме того, если более одного Базового Стога Camera или Camera рендируют на одну и ту же область одной и той же цели рендеринга, Unity рисует любые пиксели в перекрывающейся области снова, столько раз, сколько требуется для каждого Базового Стога Camera или Camera.

Чтобы определить участки сцены с чрезмерной повторной отрисовкой, используйте Frame Debugger в Unity либо платформенные средства захвата и отладки кадров. Затем соответствующим образом оптимизируйте Camera Stack.

Дополнительные ресурсы