Настройка для лучшей производительности в URP
Вы можете отключить или изменить Universal Render Pipeline (URP) настройки и функции, которые имеют большое влияние на производительность. Это помогает вам получить лучшую производительность для вашего проекта, особенно на низкоуровневых платформах.
В зависимости от вашего проекта или платформ, на которые вы ориентируетесь, один или все из следующих вариантов может иметь наибольший эффект:
- Какой путь отображения вы выбираете
- Сколько памяти использует URP
- Время обработки на CPU
- Время обработки на GPU
Вы можете использовать Unity Profiler или GPU profiler, например RenderDoc или Xcode, чтобы измерить влияние каждой настройки на производительность вашего проекта.
Возможно, вам не удастся отключить некоторые функции, если они нужны вашему проекту.
Выберите путь отображения
См. Universal Renderer для получения дополнительной информации о трех путях рендеринга в URP, а также об эффектах производительности и ограничениях каждого из них.
Уменьшить количество памяти, используемой URP
В активе URPможно выполнять следующие действия:
- Отключите Глубина Текстура, если она вам не нужна (например, если вы используете шейдер, который семплирует глубину сцены), так что URP не будет хранить текстуру глубины, если она не нужна.
- Отключить Непрозрачная Текстура, так что URP не хранит моментальный снимок непрозрачных текстур в сцене, если это не нужно.
- Если вы используете Путь отложенного отображения, отключите Использовать слои отображения, чтобы URP не создавал дополнительное назначение отображения.
- Отключите Расширенный динамический диапазон (HDR), если вам это не нужно, чтобы URP не делал расчетов HDR. Если вам нужно HDR, установите HDR Точность на 32 Bit.
- Уменьшить Главный свет > Разрешение тени, чтобы уменьшить разрешение карты тени для главного света.
- Если вы используете дополнительные фонари, уменьшите Дополнительные фонари > Разрешение Атласа Теней, чтобы уменьшить разрешение карты теней для дополнительных фонарей.
- Отключите Легкие печенья, если они вам не нужны, или уменьшите Cookie Atlas Разрешение и Формат атласа файлов cookie.
- На мобильных платформах более низкого уровня установите Store Actions на Авто или Discard, чтобы URP не использовал пропускную способность памяти для копирования целей рендеринга от каждого прохождения в память и из нее.
В активе Universal Rendererвы можете установить Промежуточная текстура на Авто, так что Unity будет рендировать с использованием промежуточной текстуры только в случае необходимости. Это также может сократить количество пропускной способности памяти GPU, используемой URP. Используйте Frame Debugger, чтобы проверить, удаляет ли URP промежуточную текстуру при изменении этой настройки.
Также можно выполнить следующие действия:
- Минимизируйте использование функции Decal Renderer, так как URP создает дополнительный проход рендеринга для рендеринга наклейок. Это также снижает время обработки на CPU и GPU. См. Наклейки Рендерер Функция для дополнительной информации.
- Варианты шейдеров в URP для функций, которые вы не используете.
Сокращение времени обработки на CPU
В ресурсе URP можно выполнять следующие действия:
- Установите Volume Update Mode на через Scripting, так что URP не обновляет тома каждый кадр. Вы должны обновить тома вручную с помощью API, таких как UpdateVolumeStack.
- На мобильных платформах низкого уровня, если вы используете Отражательные зонды, отключите Пробное смешивание и Проекция коробки.
- В разделе Тени уменьшите Максимальное расстояние, чтобы URP обрабатывал меньше объектов в теневом проходе. Это также уменьшает время обработки на GPU.
- В разделе Тени уменьшите Каскадное Количество, чтобы уменьшить количество проходов рендеринга. Это также уменьшает время обработки на GPU.
- В разделе Дополнительное освещение отключите Тени. Это также уменьшит время обработки на GPU и количество памяти, используемой URP.
Каждая камера в Scene требует ресурсов для URP отбора и рендеринга. Чтобы оптимизировать URP для лучшей производительности, минимизируйте количество используемых камер. Это также снижает время обработки на GPU.
Сокращение времени обработки на GPU
В ресурсе URP можно выполнять следующие действия:
- Уменьшить или отключить Анти-алиасинг (MSAA), так что URP не использует пропускную способность памяти для копирования вложений кадрового буфера в память и из нее. Это также уменьшает количество памяти, используемой URP.
- Отключить Отверстия в местности.
- Включите SRP Batcher, поэтому URP сокращает настройку GPU между вызовами отрисовки и держит данные материалов постоянно в памяти GPU. Проверьте, что ваши шейдеры совместимы с SRP Batcher. Это также уменьшает время обработки на CPU.
- На мобильных платформах низкого уровня отключите LOD Крестовое выцветание, чтобы URP не использовал альфа-тестирование для выравнивания мешей уровня детализации (LOD).
- Установите Дополнительные огни на Отключено, или На вершину, если вы используете путь рендеринга Продвижение. Это уменьшает работу URP по вычислению освещения. Это также уменьшает время обработки на CPU, если вы установите Отключено.
- Отключите Мягкие тени, или включите Мягкие тени, но уменьшите Качество.
В ассете универсального отображателя можно выполнять следующие действия:
- Включите Нативный RenderPass если вы используете Vulkan, Metal или DirectX 12 графику APIs, так что URP автоматически уменьшает частоту копирования текстур рендеринга в память и из нее. Это также уменьшает количество памяти, используемой URP.
- Если вы используете путь рендеринга Forward или Forward+, установите Mode Depth Priming на Авто или Forced для PC и консольных платформ, или Инвалиды для мобильных платформ. На PC и консольных платформах это заставляет URP создавать и использовать текстуры глубины, чтобы избежать запуска пиксельных шейдеров на затуманенных пикселях.
- Установите Режим текстуры глубины на после прозрачности, чтобы URP не переключал цели рендеринга между непрозрачным и прозрачным проходами.
Также можно выполнить следующие действия:
- Избегайте использования Шейдер Complex Lit, который имеет сложные расчеты освещения. Если вы используете Complex Lit shader, отключите Clear Coat.
- На мобильных платформах низкого уровня используйте Бакед-лит для статических объектов и Простой светодиодный шейдер для динамических объектов.
- Если вы используете Screen Space Ambient Occlusion (SSAO), см. Окклюзия окружающей среды дополнительные сведения о параметрах, оказывающих значительное влияние на производительность.
Дополнительные ресурсы
- Понимание производительности в URP
- Оптимизировать для лучшей производительности
- Введение в Universal Render Pipeline для продвинутых Unity создателей
- Оптимизация производительности для высококачественной графики на PC и консоли
- Создание Alba: Как создать эффективную игру с открытым миром
- Последующая обработка в URP для мобильных устройств.
- Оптимизация освещения для здоровой частоты кадров
Дополнительные сведения о параметрах см. в следующих разделах: