Учебники

Unity — материалы и шейдеры

В этой главе мы кратко познакомимся с материалами и шейдерами. Чтобы лучше понять, мы создадим новый 3D-проект вместо нашего текущего 2D- проекта . Это поможет нам увидеть различные изменения.

Создав новый проект, перейдите в иерархию и щелкните правой кнопкой мыши и выберите « 3D-объект» → «Куб» . Это создаст новый куб в середине сцены. Вы можете посмотреть вокруг куба, удерживая правую кнопку мыши и перетаскивая мышь в виде сцены. Вы также можете увеличивать и уменьшать масштаб с помощью колеса прокрутки.

Теперь нажмите на куб и посмотрите на его свойства.

Создание 3D куба

Похоже, что у самого нижнего свойства есть материал по умолчанию и стандартный шейдер.

Что такое материал?

В Unity (и во многих аспектах трехмерного моделирования) Материал — это файл, который содержит информацию об освещении объекта этим материалом. Обратите внимание, как серая сфера обозначает материал, с небольшим количеством света, поступающего сверху.

Теперь не путайте с именем; Материал не имеет ничего общего с массой, столкновениями или даже физикой в ​​целом. Материал используется для определения того, как освещение влияет на объект с этим материалом.

Давайте попробуем создать наш собственный материал. Щелкните правой кнопкой мыши в области «Активы», перейдите в « Создать» → «Материал» и дайте ему имя, например «Мой материал».

Создать материал

Эти свойства не похожи на то, что мы изучали до сих пор. Это потому, что это свойства, которые запрограммированы в шейдере , а не материал.

Материалы — это то, что делает ваши объекты видимыми в первую очередь. На самом деле, даже в 2D мы используем специальный материал, который также не требует освещения. Конечно, Unity генерирует и применяет это ко всему для нас, поэтому мы даже не замечаем, что это там.

Что такое шейдер?

Шейдер — это программа, которая определяет, как каждый пиксель отображается на экране. Шейдеры вообще не программируются на C # или даже на языке OOPS. Они запрограммированы на C-подобном языке, называемом GLSL, который может давать прямые инструкции GPU для быстрой обработки.