4. Материалы и текстуры

4. Материалы и текстуры

4.1.     Материалы

По умолчанию все объекты имеют серый цвет. Можно изменить цвет любого объекта с помощью материала.


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

Используй пункт главного меню Assets → Create → Material или контекстное меню окна Проект, для создания нового материала. После создания, ты можешь применить его к объекту и настроить все его свойства в Инспекторе. Для применения материала к объекту, просто перетащи его из окна Проект на любой объект в Сцене или Иерархии. Чтобы изменить материал у всех объектов одного prefab’а, необходимо изменить материал у сохраненного prefab’а в окне Проект. Попробуем сделать материалы для моста. Нам понадобятся два цвета: коричневый и темно-коричневый (для столбов). Создадим два материала для этого.

Выбери один из них и в Инспекторе измени цвет (в самом верху, рядом со словом Albedo). Повтори тоже самое с другим материалом.

Теперь необходимо заменить материалы в prefab’е моста. Разверни prefab в окне Проект, нажав на стрелочку:

Выбери несколько объектов, которые должны быть одного цвета. А теперь посмотри на окно Инспектор и найди там компонент Mesh Renderer. Именно он отвечает за то, какого наш объект будет цвета и как он будет отражать свет. Найди свойство Material и разверни его нажав на стрелочку. Ты увидишь число, которому соответствует количество материалов необходимых для этой 3D модели (Size) и, собственно, сами материалы. В нашем случае один материал — Default-Material. Его и нужно заменить, нажав на соседний кружочек.

 Теперь ты можешь добавить материалы к остальным элементам prefab’а. Обрати внимание, что изменяя prefab в окне Проект, ты меняешь сразу все его копии на Сцене. Вот, что получилось у нас:

Материалы не только отвечают за свет, как мы уже говорили, но и за другие свойства, например:

Albed — цвет и текстура.

Metallic — определяет металлическая (значение 1) ли поверхность или нет (значение 0).

Smoothness — определяет насколько поверхность глянцевая (значение 1) или шероховатая (значение 0).

4.2.     Текстура

Использование текстур позволяет воспроизвести малые объекты поверхности, создание которых полигонами оказалось бы чрезмерно ресурсоемким. Например: шрамы на коже, складки на одежде, мелкие камни и предметы на поверхности стен и почвы.

Текстура — это растровое изображение, накладываемое на поверхность трехмерной модели для придания ей цвета, окраски или иллюзии рельефа.

Unity поддерживает все самые популярные форматы изображений: jpeg, png, tiff, tga, psd. Текстура должна быть квадратной и иметь следующие размеры: 32х32, 64х64, 128х128, 256х256, 512х512, 1024х1024, 2048х2048, 4096х4096, 8192х8192. Если не следовать этим правилам — Unity попытается сам преобразовать изображение в нужный размер.


Текстура — это параметр материала. А материал может содержать в себе несколько текстур. Например, одна текстура отвечает за отображение цвета, вторая — за рельеф поверхности.

4.3.     Импорт текстуры

Создай папку в окне Проект, где будут храниться все текстуры. Предлагаем назвать папку Texture. Нажми на эту папку правой кнопкой мыши и выбери «Import New Asset…». Выбери картинку.

Выбери нужный материал. В окне Инспектор нажми кружочек рядом с параметром Albedo и выбери текстуру.

Для простых объектов (куб, сфера, плоскость) можно изменить количество повторений текстуры на объекте. По умолчанию, текстура не повторяется. Выбери материал, в окне Инспектор параметр Tiling отвечает за повторение текстуры по осям x, y.

4.4.     Normal Map

Normal map — это техника симуляции неровностей на плоской поверхности без больших вычислительных затрат и изменения геометрии.

Есть простой сервис http://cpetry.github.io/NormalMap-Online/, где из картинки можно настроить и скачать себе Normal map.

 

Импорт Normal map

Создай папку в окне Проект, где будут храниться все текстуры. Предлагаем назвать папку Normal map.

Нажми на эту папку правой кнопкой мыши и выбери «Import New Asset…». Выбери картинку.

Выдели в окне проекта, добавленную картинку. В свойстве Texture Type выбери Normal Map.

Чтобы добавить материалу неровность, выбери его, в окне Инспектор нажми кружочек рядом с параметром Normal map и выбери нужную.

 

4.5.     Unity: Создание материала ‘Стекло’

Для создания стекла можно использовать стандартный шейдер и выставить для него Rendering Mode = Transparent и в настройках цвета для Albedo выставить прозрачность (Alpha = 0).

Но можно его сделать более реалистичным. Для этого нужно рядом со стеклом добавить GameObject ▶ Light ▶ Reflection Probe. В ее настройках можно указать уровень детализации побольше Resolution = 512 (будет красиво, но скажется на производительности), а для того, чтобы отображались не только статические объекты, нужно выставить Baking Type в Realtime.

Если для Reflection Probe установить чекбокс в разделе его свойств Runtime Settings ▶ Box Projection, то отражения на стекле будут еще более реалистичными.

По умолчанию для Reflection Probe выставлено значение Refresh Mode = On Awake. Это значит, что динамические объекты (типа персонажа или врагов и т.п.) стекло не будет отражать. Если не жалко ресурсов, но хочется красоты и «реальности», то можно выставить режим обновления на каждый кадр.


Скриптинг >>>

Комментарии

Популярные сообщения из этого блога

Лабораторные работы

О курсе...