Чтобы определить ShaderПрограмму, работающую на графическом процессоре. Подробнее
См. в объекте Словарь в ShaderLab, используйте Блок Шейдер
. На этой странице содержится информация об использовании блоков Shader
.
Информацию о том, как работает объект Shader, а также о взаимосвязи между объектами Shader, вложенными шейдерами и проходами, см. в введении к объектам шейдера.
Обзор
Объект Shader — это концепция, специфичная для Unity; это оболочка для шейдерных программ и другой информации. Он позволяет вам определять несколько шейдерных программ в одном файле и указывать Unity, как их использовать.
Объект Shader имеет вложенную структуру; он организует информацию в структуры, называемые вложенными шейдерами и проходами.
Совместимость конвейера рендеринга
Название функции | Встроенный конвейер рендеринга | Универсальный конвейер рендеринга (URP) | Конвейер рендеринга высокого разрешения (HDRP) | Пользовательская SRP |
---|---|---|---|---|
ShaderLab: Shader block | Да | Да | Да | Да |
Использование блока Shader
Внутри блока Shader
вы можете:
- Определите свойства материала с помощью блока
Properties
. См. раздел ShaderLab: определение свойств материала. - Определите один или несколько подшейдеров с помощью блока
SubShader
. См. раздел ShaderLab: определение вспомогательного шейдера. - Назначьте пользовательский редактор, который определяет, как ресурс шейдера отображается в редакторе Unity. При желании вы можете назначить разные пользовательские редакторы для разных конвейеров рендеринга. См. раздел ShaderLab: назначение пользовательских редакторов.
- Назначьте резервный объект Shader с помощью блока
Fallback
. См. раздел ShaderLab: назначение резервного варианта.
Подпись | Функции |
---|---|
Shader " {
}
|
Определяет объект Shader с заданным именем. |
Устаревшие имена шейдеров
До Unity 5.0 некоторые функции шейдера определялись его путем и именем. Таким же образом работают устаревшие шейдеры Unity. Изменение имени этих шейдеров может повлиять на их функциональность.
Примеры
В этом примере кода демонстрируется основной синтаксис и структура объекта Shader. Пример объекта Shader имеет один SubShader, который содержит один проход. Он определяет свойства материала, CustomEditor и Fallback.
Shader "Examples/ShaderSyntax"
{
CustomEditor = "ExampleCustomEditor"
Properties
{
// Material property declarations go here
}
SubShader
{
// The code that defines the rest of the SubShader goes here
Pass
{
// The code that defines the Pass goes here
}
}
Fallback "ExampleFallbackShader"
}
Примеры пользовательских шейдеров, совместимых с различными конвейерами рендеринга, см. в разделе Примеры пользовательских шейдеров