Передавать метки в ссылке ShaderLab
Эта страница содержит информацию об использовании блока Tags в коде ShaderLab для назначения тегов Pass. Она также содержит информацию об использовании тега LightMode, который определяет, когда Unity запускает Pass во время рендеринга.
Для получения информации о том, как работает объект Shader, и о взаимосвязи между объектами Shader, SubShaders и проходы, см. Основы объекта шейдера.
Совместимость конвейера отображения
| Название особенности | Universal Render Pipeline (URP) | High Definition Render Pipeline (HDRP) | Изготовленный на заказ SRP | Built-in Render Pipeline |
|---|---|---|---|---|
| ShaderLab: Блок пропуска теги | Да | Да | Да | Да |
| ShaderLab: LightMode Пропускной знак | Да | Да | Да | Да |
Синтаксис
| Подпись | Функция |
|---|---|
Tags {"<name1>" = "<value1>" "<name2>" = "<value2>"} |
Применяет данные теги к Пропуску. Вы можете определить столько тегов, сколько хотите. |
LightMode метка
| Подпись | Функция |
|---|---|
| " LightMode " = [значение] | Устанавливает значение LightMode для этого Пропуска. |
Тег LightMode определяет, когда Unity выполняет проход.
Допустимые значения этого тега зависят от конвейера отображения. Дополнительные сведения см. в:
LightModeзначения тегов в Universal Render Pipeline- Значения тегов
LightModeво Встроенном Render Pipeline
PassFlags метка
В Built-in Render Pipeline используйте тег PassFlags Pass, чтобы указать, какие данные Unity предоставляет в Pass.
| Значение | Функция |
|---|---|
| OnlyDirectional | Действительно только в Built-in Render Pipeline, когда путь отображения установлен на Продолжение, в проходе с LightMode значение тега ForwardBase.Unity предоставляет только основные данные датчика направленного света и окружающего/света для этого пропуска. Это означает, что данные неважных светов не передаются в вертикальный свет или сферические гармонические изменения шейдера. См. Путь прямого отображения для деталей. |
Пример
Shader "Examples/ExamplePassFlag"
{
SubShader
{
Pass
{
Tags { "LightMode" = "ForwardBase" "PassFlags" = "OnlyDirectional" }
// The rest of the code that defines the Pass goes here.
}
}
}
RequireOptions метка
В Built-in Render Pipeline тег RequireOptions Pass включает или отключает Pass в зависимости от настроек проекта.
| Значение | Функция |
|---|---|
SoftVegetation |
Отображать этот Пропуск только если включено QualitySettings-softVegetation. |