Устранение неполадок пути отображения Forward+ в URP
Сокращение времени сборки
Из-за широкого разнообразия сценариев использования, целевых платформ, рендеров и функций, используемых в проектах, некоторые конфигурации URP могут привести к большому количеству вариантов шейдеров. Это может привести к длительным времени компиляции.
Длительное время компиляции шейдера влияет как на время сборки игрока, так и на время рендеринга сцены в Редакторе.
Предельное значение видимого света для каждой камеры влияет на время компиляции для каждого варианта шейдера Лит и Complex Lit. В пути рендеринга Forward+ на настольных платформах этот предел равен 256.
В этом разделе описывается, как сократить время компиляции шейдера путем изменения максимального количества видимого света по умолчанию для каждой камеры.
Изменение максимального числа видимых огней
Примечание: В этой инструкции описывается обход ограничения в конструкции URP. Это ограничение будет уменьшено в одной из будущих версий Unity.
Пакет конфигурации Universal Render Pipeline содержит настройки, определяющие количество максимального видимого света. В следующих инструкциях описано, как изменить эти настройки.
Примечание: Если вы обновляете версию Unity вашего проекта, повторите эту процедуру.
В папке проекта скопируйте папку URP Config Package из
/Library/PackageCache/com.unity.render-pipelines.universal-configв/Packages/com.unity.render-pipelines.universal-config.-
Откройте файл
/com.unity.render-pipelines.universal-config/Runtime/ShaderConfig.cs.hlsl.Файл содержит множество определений, начинающихся с
MAX_VISIBLE_LIGHT_COUNTи заканчивающихся именем целевой платформы. Измените значение в скобках на соответствующее максимальное количество световых лучей на камеру для вашего проекта, например,MAX_VISIBLE_LIGHT_COUNT_DESKTOP (32).Для Пути отображения Вперед+ значение включает Главный Свет. Для Пути отображения Вперед значение не включает Главный Свет.
-
Откройте файл
/com.unity.render-pipelines.universal-config/Runtime/ShaderConfig.cs.Файл содержит несколько определений, начинающихся с
k_MaxVisibleLightCountи заканчивающихся именем платформы. Измените значение, чтобы оно соответствовало значению, установленному в файлеShaderConfig.cs.hlsl, напримерk_MaxVisibleLightCountDesktop = 32;. Сохраните отредактированные файлы и перезапустите Unity Editor. Unity автоматически настроит ваш проект и шейдеры для использования новой конфигурации.
Теперь время сборки Player должно быть короче из-за сокращения времени компиляции для каждого варианта шейдера.
Примечание: После того, как вы скопируете исходный код пакета в папку Packages, этот код пакета становится встроенным в ваш проект и больше не является частью установки Unity. Если вы обновите версию Unity позже, Unity не обновляет встроенный исходный код пакета автоматически. Вам нужно применить изменения к исходному коду вручную. Для получения дополнительной информации о встроенных пакетах, см. Встроенные зависимости.