Команда UsePass вставляет именованный проход из другой Shaderпрограммы, работающей на графическом процессоре. Подробнее
См. в объекте Словарь. Вы можете использовать эту команду, чтобы уменьшить дублирование кода в исходных файлах шейдеров.
Информацию о добавлении имени к проходу в ShaderLabязыке Unity для определения структуры объектов Shader. Подробнее
См. в коде Словарь, см. ShaderLab: добавление имени к пропуску.
Совместимость конвейера рендеринга
Название функции | Встроенный конвейер рендеринга | Универсальный конвейер рендеринга (URP) | Конвейер рендеринга высокого разрешения (HDRP) | Пользовательский SRP |
---|---|---|---|---|
UsePass | Да | Да | Да | Да |
Usage
Подпись | Функции |
---|---|
UsePass "Shader object name/PASS NAME IN UPPERCASE" |
Вставляет именованный проход из именованного объекта Shader.
Если именованный объект Shader содержит более одного SubShader, Unity выполняет итерацию по SubShader, пока не найдет первый поддерживаемый SubShader, содержащий Pass с заданным именем. Для получения информации о том, как Unity определяет, поддерживается ли вспомогательный шейдер, см. введение в объекты шейдера. Если SubShader содержит более одного прохода с одинаковым именем, Unity возвращает последний найденный проход. Если Unity не находит соответствующий проход, отображается шейдер ошибок. |
Примеры
В этом примере кода создается объект Shader с именем NamedPass, который содержит Pass с именем ExampleNamedPass.
Shader "Examples/ContainsNamedPass"
{
SubShader
{
Pass
{
Name "ExampleNamedPass"
// The rest of the Pass contents go here.
}
}
}
В этом примере кода создается объект Shader с именем UseNamedPass, который использует именованный проход из приведенного выше примера кода.
Shader "Examples/UsesNamedPass"
{
SubShader
{
UsePass "Examples/ContainsNamedPass/EXAMPLENAMEDPASS"
}
}