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

Варианты шейдера полосы в URP

По умолчанию Universal Render Pipeline (URP) компилирует как варианты шейдера, где функция включена, так и варианты шейдера, где функция отключена. Это может экспоненциально увеличить количество вариантов шейдера в вашей сборке, в зависимости от того, сколько функций вы используете.

Чтобы удалить элемент и его варианты шейдера, выполните одно из следующих действий.

  • Отключите функцию в настройках Редактора.
  • Отключите ключевые слова шейдера, используя Настройки сборки шейдера в Настройки графики.

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

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

Удалить неиспользуемые варианты шейдеров

Чтобы убедиться, что Unity удаляет неиспользуемые варианты шейдеров из вашей сборки, выполните следующие действия:

  1. В главном меню перейдите в Изменить > Project Настройки.
  2. Выберите вкладку Графика.
  3. В разделе Дополнительные настройки удаления шейдеров включите Удаление неиспользуемых вариантов.

Если вы отключите параметр Remove Unused Variants, URP не сможет удалять варианты, где эта функция отключена. Это может увеличить количество вариантов.

Отключение функции в настройках

Чтобы удалить варианты шейдера для элемента, отключите этот элемент во всех ресурсах URP или ресурсах универсального рендерера в вашем проекте или в других местах в настройках Редактора.

Список настроек см. в Настройки и ссылка на ключевые слова для удаления ключевых слов в URP.

Если настройка находится в ресурсе URP, убедитесь, что вы отключили эту функцию во всех ресурсах URP, включенных в сборку. Unity включает в сборку следующие ресурсы URP:

  • Ассет URP, установленный в качестве ассета конвейера рендеринга по умолчанию в Настройки графики.
  • Любой URP ассет, который вы установили как Render Pipeline Активы в Уровень настроек качества включенное для текущей цели сборки.

Примечание: Не включать URP ассеты в вашей сборки, которые используют различные пути отображения. Это может вызвать Unity создать два набора вариантов для каждого ключевого слова.

Отключить ключевые слова шейдера

Список ключевых слов в предустановленных шейдерах в URP см. в Настройки и ссылка на ключевые слова для удаления ключевых слов в URP.

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

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

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

Варианты шейдеров для постпроцессорной обработки

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

  1. В главном меню перейдите в Изменить > Project Настройки.
  2. Выберите вкладку Графика.
  3. Включить Удаление неиспользуемых вариантов пост-обработки. Unity теперь сохраняет только варианты шейдеров для переопределения объема, которые вы используете в вашем проекте.
  4. Включить Варианты переопределения координат полосы экрана, если только вы не переопределите экранные координаты для поддержки постобработки на большом числе дисплеев — так называемых кластерных дисплеях.

Чтобы отключить ключевые слова для шейдера для эффекта пост-обработки, см. Настройки и ссылка на ключевые слова для удаления ключевых слов в URP.

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

Варианты шейдеров XR и VR

Если вы не используете XR или VR, отключить модули XR и VR. Это позволяет URP удалить XR и VR-связанные варианты шейдеров из своих стандартных шейдеров.

Откройте URP стриптинг код

Чтобы изучить код, который удаляет шейдеры в URP, проверьте файл Editor/ShaderPreprocessor.cs. Файл использует IPreprocessShaders API.

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