Учимся самостоятельно редактировать шейдеры в Unity. Шаг 1
В Unity3D используют Shader Lab - надстройку над шейдерными языками HLSL и CG. Она сама создает целые блоки и позволяет не писать новые шейдеры под каждое API,экономя много времени. Но внутри мы всё равно пишем на одном из этих языков и исторически так сложилось что почти все пишут на CG.
Surface Shader — это такой функционал который абстрагирует нас от пиксельных и вертексных шейдеров и мы работаем с поверхностью. То-есть просто говорим цвет, силу отражения и нормаль. Это всё дело с компилируется в вертексные и пиксельные функции. Очень мощный инструмент который позволяет писать шейдеры легко и просто.
Создадим несложную сцену. Через меню Game Object (Игровой объект) -> Create Other (Создать другое) добавим плоскость (Plane), которая будет играть роль земли, сферу (Sphere) и куб (Cube)к которым мы будем применять шейдер, и направленный источник света (Directional Light), чтобы осветить сцену. Расположим все перед игровой камерой (Main Camera) по вкусу, чтоб все было видно и хорошо освещалось. Используйте предыдущие статьи:
Навигация в Окне Scene
Создаем простейшую сцену в Unity для наших экспериментов
Манипуляция игровыми объектами в окне Scene
Практика манипулирования игровыми объектами в окне Scene
Выравнивание игровых объектов в окне Scene с Vertex привязкой и без привязки
- В окне Project (Проект) нажмите правой кнопкой по папке Assets (Ресурсы) и выберите Create (Создать) ->Folder (Папку).
- Переименуйте папку, которую вы создали, в Shaders.
- Нажмите правой кнопкой мыши по папке Shaders и выберите Create (Создать) -> Shader (Шейдер).
- Переименуйте шейдер, который вы создали в MyShader
- В окне Project (Проект) нажмите правой кнопкой по папке Assets (Ресурсы) и выберите Create (Создать) ->Folder (Папку).
- Переименуйте папку, которую вы создали, в Materials.
- Нажмите правой кнопкой мыши по папке Materials и выберите Create (Создать) ->Material (Материал).
- Переименуйте созданный материал в MyMaterial.
- Запустите шейдер MyShader в редакторе скриптов Unity, сделав двойной щелчок мышкой по нему.
- Unity по умолчанию создаёт самый простой diffuse-шейдер с одной текстурой.
Первая строка:
Shader "Custom/MyMaterial"
Первым ключевым словом идет Shader. После него в кавычках указывается имя шейдера MyMaterial. Причем можно указать через ‘/’ путь, где будет лежать шейдер в выпадающем меню при настройке материала в редакторе.
Заменим эту строчку на:
Shader "MyShaders/MyShader"
Cохраните созданный код. Зайдем в редактор Unity, выберем материал MyMaterial и в окне Inspector из ниспадающего списка Shader (Шейдер) выберите MyShaders -> MyShader.
Как видим, замена строчки кода изменила название шейдера на MyShader и создала новое поле MyShaders.
Кликнете мышью чтобы применить данный шейдер к материалу.
|