Оптимизация рендеринга GPU

Unity предоставляет ряд продвинутых функций графического процессора, которые используют инстансинг и окклюзию для значительного сокращения вызовов отрисовки и устранения необходимости рендеринга скрытых объектов. Эти функции работают вместе, чтобы максимально повысить эффективность графического процессора в сложных сценах.

Резидентный ящик графического процессора

Функция GPU Resident Drawer автоматически использует GPU Instancing для сокращения количества вызовов отрисовки и освобождения процессорного времени. Эта функция наиболее эффективна для больших сцен с множеством объектов, использующих одну и ту же сетку.

Включить эту функцию

  1. В главном меню Unity выберите Правка > Настройки проекта > Графика .
  2. В разделе Shader Stripping установите для параметра Batch Renderer Group Variants значение Keep All .
  3. Найдите ваш ресурс конвейера рендеринга по умолчанию , который также является вашим ресурсом URP.
  4. Найдите этот актив в своем проекте.
  5. Щелкните правой кнопкой мыши по активу и выберите Свойства .
  6. В списке рендереров щелкните правой кнопкой мыши по универсальному рендереру и выберите Свойства .
  7. Установите для параметра Путь рендеринга значение Вперед+ .
  8. Вернитесь к своему активу URP, выберите его, затем нажмите на три точки и выберите Отладка .
  9. Установите для параметра GPU Resident Drawer Mode значение Instance Drawing (Экземплярное рисование) .

Отбраковка окклюзии графическим процессором

Функция Occlusion Culling использует графический процессор вместо центрального процессора для исключения объектов, скрытых за другими объектами. Эта функция наиболее эффективна в сценах со значительным перекрытием, например, в помещениях или в густо застроенных пространствах.

Включить эту функцию

  1. В главном меню Unity выберите Правка > Настройки проекта > Графика .
  2. Включить отбраковку окклюзии графического процессора .
  3. Выберите вкладку URP .
  4. В разделе Render Graph отключите режим совместимости (Render Graph Disabled) .

Оптимизация сброса буфера

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

Преимущества

  • Устраняет ненужное копирование и перемещение графических данных.
  • Ускоряет рендеринг GPU во всех случаях.

Включить эту функцию

  1. В главном меню Unity выберите Правка > Настройки проекта .
  2. Разверните раздел Управление подключаемыми модулями XR , а затем щелкните OpenXR .
  3. Выберите вкладку Android .
  4. Выберите группу функций Android XR .
  5. Нажмите на значок шестеренки рядом с надписью «Поддержка Android XR» .
  6. Включить оптимизацию сброса буфера (Vulkan) .

    Настройки Unity, оптимизирующие сброс буфера.

Отключить рендеринг спереди назад

Рендеринг «спереди назад» — это эксперимент с порядком рендеринга, который вы можете попробовать в своей сцене. В сочетании с оптимизацией, такой как Low-Resolution-Z (LRZ), он может повысить производительность в сценах со значительным перекрытием, где фоновые объекты используют ресурсоёмкие фрагментные шейдеры.

Однако включение этого параметра может также снизить производительность. Поэтому рекомендуется оставить его значение по умолчанию (отключено).