Unity предоставляет ряд продвинутых функций графического процессора, которые используют инстансинг и окклюзию для значительного сокращения вызовов отрисовки и устранения необходимости рендеринга скрытых объектов. Эти функции работают вместе, чтобы максимально повысить эффективность графического процессора в сложных сценах.
Резидентный ящик графического процессора
Функция GPU Resident Drawer автоматически использует GPU Instancing для сокращения количества вызовов отрисовки и освобождения процессорного времени. Эта функция наиболее эффективна для больших сцен с множеством объектов, использующих одну и ту же сетку.
Включить эту функцию
- В главном меню Unity выберите Правка > Настройки проекта > Графика .
- В разделе Shader Stripping установите для параметра Batch Renderer Group Variants значение Keep All .
- Найдите ваш ресурс конвейера рендеринга по умолчанию , который также является вашим ресурсом URP.
- Найдите этот актив в своем проекте.
- Щелкните правой кнопкой мыши по активу и выберите Свойства .
- В списке рендереров щелкните правой кнопкой мыши по универсальному рендереру и выберите Свойства .
- Установите для параметра Путь рендеринга значение Вперед+ .
- Вернитесь к своему активу URP, выберите его, затем нажмите на три точки и выберите Отладка .
- Установите для параметра GPU Resident Drawer Mode значение Instance Drawing (Экземплярное рисование) .
Отбраковка окклюзии графическим процессором
Функция Occlusion Culling использует графический процессор вместо центрального процессора для исключения объектов, скрытых за другими объектами. Эта функция наиболее эффективна в сценах со значительным перекрытием, например, в помещениях или в густо застроенных пространствах.
Включить эту функцию
- В главном меню Unity выберите Правка > Настройки проекта > Графика .
- Включить отбраковку окклюзии графического процессора .
- Выберите вкладку URP .
- В разделе Render Graph отключите режим совместимости (Render Graph Disabled) .
Оптимизация сброса буфера
Такая оптимизация повышает производительность за счет отбрасывания ненужных данных буфера глубины и эффективной обработки цветовых буферов MSAA, что сокращает операции с памятью.
Преимущества
- Устраняет ненужное копирование и перемещение графических данных.
- Ускоряет рендеринг GPU во всех случаях.
Включить эту функцию
- В главном меню Unity выберите Правка > Настройки проекта .
- Разверните раздел Управление подключаемыми модулями XR , а затем щелкните OpenXR .
- Выберите вкладку Android .
- Выберите группу функций Android XR .
- Нажмите на значок шестеренки рядом с надписью «Поддержка Android XR» .
Включить оптимизацию сброса буфера (Vulkan) .
Отключить рендеринг спереди назад
Рендеринг «спереди назад» — это эксперимент с порядком рендеринга, который вы можете попробовать в своей сцене. В сочетании с оптимизацией, такой как Low-Resolution-Z (LRZ), он может повысить производительность в сценах со значительным перекрытием, где фоновые объекты используют ресурсоёмкие фрагментные шейдеры.
Однако включение этого параметра может также снизить производительность. Поэтому рекомендуется оставить его значение по умолчанию (отключено).