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

Рабочий процесс с ключевыми словами шейдера

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

Ключевые слова можно использовать для выполнения следующих действий:

  • Настройка различных параметров для материала.
  • Заставить шейдер работать по-разному на разных устройствах.
  • Динамическое изменение поведения шейдера во время выполнения.

Используйте следующие действия:

  1. Объявление ключевого слова шейдера или набора ключевых слов шейдера.
  2. Используйте инструкцию if для ветвления кода шейдера в зависимости от состояния ключевого слова.
  3. Переключите ключевое слово shader, чтобы управлять тем, какой ответвление активен.

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

Объявите ключевое слово шейдера или набор ключевых слов шейдера с помощью команды #pragma. В следующем примере определен набор из двух ключевых слов, называемых RED и GREEN:

#pragma shader_feature RED GREEN

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

Разветвление кода шейдера

Используйте инструкцию if, чтобы выполнять те или иные части кода шейдера в зависимости от состояния ключевого слова. Например, используйте ключевые слова RED и GREEN для управления цветом, выводимым шейдером:

void frag() : SV_Target {

    if (RED)
    {
        // Output red
    }
    
    else if (GREEN)
    {
        // Output green
    }

}

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

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

Переключить ключевое слово shader

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

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