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
Есть простой сервис 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. Это значит, что динамические
объекты (типа персонажа или врагов и т.п.) стекло не будет отражать. Если не
жалко ресурсов, но хочется красоты и «реальности», то можно выставить режим
обновления на каждый кадр.
Комментарии
Отправить комментарий