Unity 6.3
0 онлайн 104 гостей 3 в системе
Вход
Освещение Шаг 112 из 173

Оптимизация отображения теней в URP

На этой странице описаны методы оптимизации, которые помогут ускорить отображение теней в вашем проекте.

Факторы, влияющие на время отображения тени, включают:

В следующих разделах описано использование этих и других параметров для оптимизации производительности отображения теней.

Оптимизация основных светлых теней

Используйте один из следующих методов для оптимизации теней, отбрасываемых основным светом.

Использовать каскады теней

Используйте каскады теней функция для улучшения визуальной достоверности теней без увеличения разрешения карты теней.

Рассмотрим Влияние теневых каскадов на производительность при выборе Каскадный счет значение.

Экспериментирование со свойством Мягкие тени

Использование свойства Мягкие тени позволяет достичь более высокой визуальной точности при более низких значениях разрешения тени.

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

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

Например, на следующей иллюстрации изображение слева имеет разрешение тени 4096 пикселей, а изображение справа имеет разрешение тени 1024 пикселей при включенной опции Мягкие тени.

Используйте более низкое разрешение тени для достижения более мягкого взгляда тени
Низкое разрешение тени обеспечивает более мягкий вид тени, что может быть полезно для некоторых сцен. Слева: разрешение 4096 пикселей, справа: разрешение 1024 пикселей.

Выберите разрешение и максимальное расстояние основных светлых теней

Более подробную информацию об оптимизации разрешения и максимального расстояния теней от главного света см. в Настройка разрешения теней в URP.

Оптимизация дополнительных светлых теней

Используйте один из следующих методов для оптимизации теней, создаваемых дополнительными источниками света.

Оптимизация теней точечного света

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

Уменьшите количество теневых точечных светильников на мобильных платформах или полностью избежайте их.

Дополнительные сведения см. на следующих страницах:

Выключить и включить свет с помощью скрипта

Чтобы повысить производительность, вы можете использовать скрипт для отключения освещения в реальном времени, отражающего тени, в зависимости от расстояния до камеры или других условий. Для этого используйте свойство Light.enabled.

Чтобы избежать вспышек света, вы можете использовать свойство intensity света, чтобы вводить и удалять свет.

Для примера этого метода, обратитесь к скрипту DynamicLightController.cs, который прикреплен к точечным огням в наружных фонарях в сцене Сад в проекте Universal 3D образец.

Используйте легкие куки

В областях, где объекты в основном статичны, точечные и прожекторные источники света со световыми масками (cookies) могут заменить источники, отбрасывающие тени в реальном времени.

Чтобы настроить cookie light, используйте свойство Cookie компонента Light.

Дополнительную информацию см. в Введение в файлы cookie.

Использование Light Explorer

Окно Light Explorer предоставляет удобный обзор всех светильников, отражений и световых зондов, а также объектов с эмиссионными материалами в сцене. Используйте этот инструмент, чтобы быстро найти светильники с определенными свойствами в Scene.

Общие методы оптимизации

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

Уменьшение количества объектов, отбрасывающих тени в реальном времени

Количество объектов, отбрасывающих тени в реальном времени, оказывает значительное влияние на производительность отображения теней.

Чтобы полностью исключить объект из отбрасывания теней (как выпекаемых, так и теней реального времени), выполните следующие действия:

  1. На GameObject перейдите в Рендерер сетки > Освещение.

  2. Установить Тени свойство Выкл..

Чтобы настроить GameObject на отбрасывание только печеных теней, используйте режим освещения Теневая маска.

Использовать режим освещения Shadowmask

Режим освещения Теневая маска позволяет улучшить производительность отображения теней, комбинируя печеные и реалистичные тени во время выполнения.

Общую информацию о режиме освещения Shadowmask см. на странице Режим освещения: Shadowmask

Unity использует следующие условия для определения того, вносит ли свет или GameObject свой вклад в маску тени:

  • Режим освещения огня должен быть смешанным.

  • Светильник должен быть настроен на отбрасывание теней (свойство Shadow Type светильника не должно быть No Shadows).

  • GameObject должен быть статическим.

Чтобы просмотреть существующую маску тени в представлении Scene:

  1. Откройте раскрывающееся меню Режим рисования
  2. Выберите Запеченное глобальное освещение > Маска тени.

Максимум четыре света могут иметь перекрытие в Shadowmask, так как она использует четыре канала (r,g,b,a). Если область имеет более четырех перекрывающихся смешанных светов, Unity переключает дополнительные светы из смешанного в печеный режим.

Чтобы увидеть, сколько огней влияет на определенную область, используйте Сложность освещения вид в Отладчик рендеринга.

Материал > Фильтры материалов > Переопределение материалов > Сложность освещения
Материал > Фильтры материалов > Переопределение материалов > Сложность освещения

Для достижения наилучшего сочетания визуальной достоверности и производительности, используйте режим теневых масок в сочетании с светочувствительными зондами.

Выбрать между масками теней расстояния и теней

На мобильных платформах среднего и низкого уровня режим Теневая маска может быть хорошим выбором с точки зрения производительности.

На мобильных платформах более высокого уровня или PC и консольных платформах рассмотрите возможность использования режима Маска тени расстояния для достижения более высокой визуальной точности.

Более подробную информацию см. на странице Режим освещения: маска тени.

Настройка статических объектов для отбрасывания запечённых теней

При использовании режима освещения Теневая маска, вы можете настроить некоторые GameObjects так, чтобы они способствовали появлению печеных теней, а не теней реального времени. Выполните следующие действия:

  1. Перейдите в Project Настройки > Качество и установите свойство Режим маскировки теней на Маскировка теней.

    В этом режиме Unity использует запеченную тень для каждого GameObject, у которого включено свойство Глобальное освещение.

  2. На GameObject, в Рендерер сетки компонент, установить Тени свойства Он.

  3. В течение Рендерер сетки компонент, включить Глобальное освещение.

  4. Создайте освещение, чтобы изменения вступили в силу.

Теперь Unity отображает этот GameObject с печеной тенью во время выполнения независимо от расстояния до камеры.

Использовать отдельную упрощенную сетку для отображения тени

Чтобы отбросить простую тень от объекта со сложной сеткой, выполните следующие действия:

  1. Создайте упрощенную версию сетки с меньшим количеством многоугольников.

  2. Назначить любой материал на упрощенную сетку. Материал не имеет значения, потому что Unity не отображает упрощенную сетку.

  3. На исходной сетке установите свойство Тени на Выкл..

  4. Поместите упрощенную сетку в то же положение, что и первоначальную сетку.

  5. На упрощенной сетке установить Тени свойства Только тени.

В этой конфигурации Unity отображает оригинальную сетку, но использует упрощенную сетку для отображения тени.

Отображение тени профиля

Используйте следующие инструменты Unity для профилирования освещения и отображения теней:

Если требуются более подробные данные, используйте инструменты профилирования и отладки, доступные для вашей целевой платформы. Дополнительные сведения см. в Инструменты профилирования.

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