Создание файла шейдера
Ассет шейдера — это ассет в вашем проекте Unity, который определяет Объект шейдера. Это текстовый файл с .shader расширение. Он содержит код шейдера.
Выберите Активы > Создание > Шейдера из главного меню.
Создать шейдер.
Можно создать следующие типы шейдеров:
| Тип шейдера | Описание |
|---|---|
| Стандартный шейдер поверхностей | Шейдер, который позволяет вам писать упрощенный код шейдера, который взаимодействует с освещением. |
| Неосвещённый шейдер | Базовый шейдер, который отображает текстуру без какого-либо освещения. |
| Шейдер эффектов изображений | Файл шейдера, связанный с C# скрипт, который создает эффект изображения. |
| Вычислите шейдер | Шейдер, который выполняет вычисления на GPU, вне обычного графического конвейера. |
| Шейдер с лучевой трассировкой | Шейдер, выполняющий вычисления, связанные с трассированием лучей. |
Unity заполняет новый файл .shader в вашей папке Assets базовым кодом.
Создание файла шейдера вручную
Чтобы определить объект Shader в ShaderLab, используйте блок Shader. На этой странице содержится информация об использовании блоков Shader.
Информацию о том, как работает объект Shader, и о взаимоотношениях между объектами Shader, SubShaders и Passes, см. в Введение в объекты Shader.
Этот пример демонстрирует базовый синтаксис и структуру объекта 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"
}
Например, пользовательские шейдеры, которые совместимы с различными конвейерами рендеринга, см. Пример пользовательских шейдеров
Старые имена шейдеров
До появления Unity 5.0 некоторые функции шейдера определялись путем и именем. Так по-прежнему работают Unity Legacy Shaders. Изменение имени этих шейдеров может повлиять на их функциональные возможности.
Отключить автоматическое обновление
UNITY_SHADER_NO_UPGRADE позволяет отключить Unity от автоматического обновления или модификации файла шейдера.
Unity регулярно обновляет шейдеры для поддержания совместимости с изменениями в синтаксисе, APIs или конвейере рендеринга.