Рабочий процесс с ключевыми словами шейдера
Чтобы контролировать поведение шейдеров в различных ситуациях, используйте ключевые слова для шейдеров. Каждое ключевое слово действует как переключатель для изменения поведения шейдера.
Ключевые слова можно использовать для выполнения следующих действий:
- Настройка различных параметров для материала.
- Заставить шейдер работать по-разному на разных устройствах.
- Динамическое изменение поведения шейдера во время выполнения.
Используйте следующие действия:
- Объявление ключевого слова шейдера или набора ключевых слов шейдера.
- Используйте инструкцию
ifдля ветвления кода шейдера в зависимости от состояния ключевого слова. - Переключите ключевое слово 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
Чтобы управлять шейдером из Редактора или во время выполнения, см. следующее: