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

Включить динамическое ветвление в шейдерах в URP

Чтобы уменьшить количество вариантов шейдера в Universal Render Pipeline (URP), включите Unity, используя динамическое ветвление в шейдерах вместо ключевых слов и вариантов шейдера.

Дополнительные сведения о ключевых словах см. в Изменение работы шейдеров с помощью ключевых слов

Примечание: Если вы нацелены на более старое мобильное устройство, динамическое ветвление может вызвать проблемы с производительностью. Проверьте на вашем конечном устройстве.

Выполните следующие действия:

  1. В главном меню перейдите в Изменить > Project Настройки.
  2. Выберите вкладку Графика.
  3. В разделе Настройки сборки шейдера выберите кнопку Добавить (+).
  4. Введите набор ключевых слов, включая один подчеркивающий знак (_) или несколько подчеркивающих знаков (__), если они являются частью набора. Например, _ FOG_LINEAR FOG_EXP FOG_EXP2.
  5. Установить Тип Переопределить на dynamic_branch.
  6. Выберите Применить. Unity перекомпилирует шейдеры.

Совместимые наборы ключевых слов в предварительно встроенных шейдерах

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

Набор ключевых слов Динамическое ветвление функции включено для
_ FOG_LINEAR FOG_EXP FOG_EXP2 Туман
_REFLECTION_PROBE_BLENDING Для получения дополнительной информации о зондах отражения см. Зонды отражения в URP.
_REFLECTION_PROBE_BOX_PROJECTION Проекция коробки зонда отражения. Дополнительные сведения о проекции коробки см. в Устранение неисправностей отражения.

Другие наборы ключевых слов в предустановленных шейдерах не совместимы с динамическим ветвлением.

Проверка совместимости пользовательских шейдеров

Чтобы включить динамическое ветвление для ключевого слова, набранного в пользовательский шейдер, использование HLSL if для веток, а не директивы препроцессора, такие как #if.

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