Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Вы можете запретить варианты шейдераверсию шейдерной программы, которая Unity генерирует в соответствии с определенной комбинацией ключевых слов шейдера и их статусом. Объект Shader может содержать несколько вариантов шейдера. Подробнее
См. в Словарь
в процессе компиляции. Это называется зачисткой. Удаление ненужных вариантов может значительно сократить время сборки, размер файла, шейдерпрограмму, работающую на графическом процессоре. Подробнее
См. в Словарь
время загрузки и использование памяти во время выполнения. В больших проектах или проектах со сложными шейдерами это очень важное соображение.

Ограничение вариантов шейдера при объявлении ключевых слов шейдера

Способ объявления ключевых слов шейдера может ограничить количество создаваемых ими вариантов:

  • По возможности используйте shader_feature вместо multi_compile.
  • Убедитесь, что вы не определяете неиспользуемые ключевые слова с помощью multi_compile.
  • Укажите, когда ключевые слова шейдера влияют только на данный этап шейдера.

Информацию о том, как сделать это в написанных вручную шейдерах, см. в разделе Объявление и использование ключевых слов шейдера в HLSL. Для получения информации о том, как сделать это в Shader Graph, см. Shader Graph. : Доска.

Отключение вариантов шейдеров в пользовательском интерфейсе редактора

В редакторе Unity есть несколько мест. UI(пользовательский интерфейс) Позволяет пользователю взаимодействовать с вашим приложением. Подробнее
См. в Словарь
, где можно настроить удаление шейдеров:

  • В окне настроек графики настройте параметры в разделе Отсечение шейдеров:
  • Убедитесь, что в параметре Всегда включать шейдеры нет ненужных шейдеров.
  • Удалите варианты, связанные с созданием экземпляров графического процессора, картой освещения и туманом.
  • Во встроенном конвейере рендеринга, если не важно, что ваши настройки уровня отличаются, убедитесь, что они идентичны друг другу. Дополнительную информацию см. в разделе Уровни графики.
  • В универсальном конвейере рендеринга (URP) отключите неиспользуемые функции в объекте URP. Дополнительные сведения см. в разделе Шейдер.Stripping.

Удаление вариантов шейдера с помощью сценариев редактора

Для вариантов шейдеров, которые нельзя удалить другими способами, можно использовать следующие API в сценарии редактора для выполнения удаления во время сборки:

  • IPreprocessShaders.OnProcessShader: получение обратного вызова до того, как Unity скомпилирует графический шейдер. Передать в сборку.
  • IPreprocessComputeShaders.OnProcessComputeShader: получение обратного вызова до того, как Unity скомпилирует вычислительный шейдер в сборку.

Дополнительную информацию по этому вопросу см. в записи блога Unity Удаление вариантов скриптовых шейдеров

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3