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

Устранение неполадок пути отображения Forward+ в URP

Сокращение времени сборки

Из-за широкого разнообразия сценариев использования, целевых платформ, рендеров и функций, используемых в проектах, некоторые конфигурации URP могут привести к большому количеству вариантов шейдеров. Это может привести к длительным времени компиляции.

Длительное время компиляции шейдера влияет как на время сборки игрока, так и на время рендеринга сцены в Редакторе.

Предельное значение видимого света для каждой камеры влияет на время компиляции для каждого варианта шейдера Лит и Complex Lit. В пути рендеринга Forward+ на настольных платформах этот предел равен 256.

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

Изменение максимального числа видимых огней

Примечание: В этой инструкции описывается обход ограничения в конструкции URP. Это ограничение будет уменьшено в одной из будущих версий Unity.

Пакет конфигурации Universal Render Pipeline содержит настройки, определяющие количество максимального видимого света. В следующих инструкциях описано, как изменить эти настройки.

Примечание: Если вы обновляете версию Unity вашего проекта, повторите эту процедуру.

  1. В папке проекта скопируйте папку URP Config Package из /Library/PackageCache/com.unity.render-pipelines.universal-config в /Packages/com.unity.render-pipelines.universal-config.

  2. Откройте файл /com.unity.render-pipelines.universal-config/Runtime/ShaderConfig.cs.hlsl.

    Файл содержит множество определений, начинающихся с MAX_VISIBLE_LIGHT_COUNT и заканчивающихся именем целевой платформы. Измените значение в скобках на соответствующее максимальное количество световых лучей на камеру для вашего проекта, например, MAX_VISIBLE_LIGHT_COUNT_DESKTOP (32).

    Для Пути отображения Вперед+ значение включает Главный Свет. Для Пути отображения Вперед значение не включает Главный Свет.

  3. Откройте файл /com.unity.render-pipelines.universal-config/Runtime/ShaderConfig.cs.

    Файл содержит несколько определений, начинающихся с k_MaxVisibleLightCount и заканчивающихся именем платформы. Измените значение, чтобы оно соответствовало значению, установленному в файле ShaderConfig.cs.hlsl, например k_MaxVisibleLightCountDesktop = 32;.

  4. Сохраните отредактированные файлы и перезапустите Unity Editor. Unity автоматически настроит ваш проект и шейдеры для использования новой конфигурации.

Теперь время сборки Player должно быть короче из-за сокращения времени компиляции для каждого варианта шейдера.

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