Материалы и текстуры с UV-разверткой

Ключевые слова: Shading, UV-развертка, Unwrap, UV-editing, Image Texture, Mark Seam

Материалы и текстуры с UV-разверткой

Теперь, когда мы создали наши объекты, давайте добавим на них материалы и текстуры. Делается это с помощью вкладки Material Properties (материалы) в нижнем правом углу (Рис.1).

Рис. 1 ​Material Properties

И вкладке Shading в верхнем меню (Рис.2). ​

Рис. 2 Вкладка Shading

Сделаем деревянный стол, металлическую вазу и цветной стул. У некоторых объектов могут быть заданы материалы по умолчанию. Если материалов нет, то во вкладке материалов у вас будет пусто. Здесь же находится меню с выпадающим списком. На нем отображаются все имеющиеся у нас материалы (Рис.3).

Рис 3. Количество материалов

Обратите внимание, что если вы назначите один материал на два объекта, он будет изменяться на обоих объектов сразу. Слоты для материалов и материалы работают отдельно. Именно потому, что слоты можно заполнять уже существующими материалами. Если у нас пустой слот и материала нет, то необходимо нажать на кнопку New. Новый материал назовем Table. Проделаем тоже самое для вазы и стула. Нажимаем на каждый объект и создаем новый слот с материалом.

Выберем вазу и перейдем во вкладку Shading. Появилось новое меню, а вокруг нашего объекта находится интересный фон, отдаленно похожий на реальный мир и плавное освещение. На панели слева расположен файловый менеджер.

Под работу с текстурами и материалами выделено нижнее окно, которое содержит Node (ноды), так называемые узлы, которые можно соединять между собой и в которых можно менять какие-то параметры для материалов. Давайте посмотрим, что предлагает нам поменять блендер. Первое, на что мы видим - это базовый цвет. Базовый цвет отвечает за то, какой цвет будет на нашем объекте. Когда мы открываем эту настройку, у нас появляется цветовой круг и ползунок для редактирования яркости. Также все параметры можно изменять ползунками снизу с помощью разных шкал или задавать уже заранее приготовленный вами цвет (Рис.4).

Рис 4. Работа с цветом

Выбрав нужный цвет, он тут же отобразится на нашем объекте, если мы находимся в режиме предпросмотра материала. Наш объект также имеет ветви, соединяющие узлы. Точки обозначают, что каждый из этих параметров может быть приемником, то есть в него может поступать какая-то информация. Значит, мы можем взять изображение текстуры и подключить его сюда. Чем мы впоследствии и займемся (Рис.5).

Рис. 5 Узлы

Давайте посмотрим свойства самого материала. У нас имеется интересующий нас параметр металлик. При переключении на единицу, наш объект становится металлическим. Металлы и неметаллы - это разные объекты на физическом и химическом уровне, поэтому, они значительно отличаются. Ползунок принимает значения от нуля до единицы, где ноль и единица - это металл/неметалл. Таким образом, значительно изменяя внешний вид нашего объекта, постараемся не задавать значения, не существующие в реальной жизни. Следующее, что нас интересует, это Roughness (шероховатость). Это параметр, который отвечает за то, насколько шероховатым будет наш объект, насколько он будет гладким или наоборот. По умолчанию параметр стоит на значении 0.5, это промежуточное значение, когда мы поднимаем его вверх, то видим, что наш объект становится более матовым. Если же мы наоборот уменьшаем это значение вниз, то мы видим, как наш объект становится все более и более гладким. Когда мы добавим значение металлик в единицу, то эти два параметра создают очень интересную картину. Теперь наша ваза совсем не похожа на соседние с ней стул и стол (Рис.6).

Рис. 6 Работа с параметрами

Что нас интересует еще, так это нормали (Normal). Они находятся внизу. Фиолетовые точки нормали позволяют нам отображать больше деталей, чем есть на нашем объекте. Это очень популярные текстуры, мы будем активно ими пользоваться. Для того, чтобы добавить текстуры в наш материал, нам необходимо добавить новый объект. Находим выпадающий список Add->Texture->Image Texture (Рис.7).

Рис. 7 Image Texture

Здесь выбираем, какое изображение будем добавлять. Можно либо создать новое изображение, либо открыть уже существующее. В материалах курса есть две папки. Папка с деревом и папка с металлом, в которой есть соответствующие для этих материалов текстуры. Откроем папку с металлом и увидим пять текстур. Эти текстуры отвечают за те части, которые мы уже упомянули. "Albedo.tif" - это базовый цвет, он напрямую влияет на будущий цвет объекта. Давайте нажмем Открыть изображение и соединим, протянув от цвета узла текстуры в базовый цвет. Теперь базовый цвет вазы сменился на тот, который мы с вами добавили из текстуры. Нажмем "Ctrl" + "пробел", чтобы открыть вазу на весь экран. Вблизи мы можем рассмотреть получившиеся растяжки, полосы. Дело в том, что наша текстура накладывается с помощью UV-развертки. И мы ее с вами сейчас сделаем. Но прежде, чем делать UV-развертку, давайте соединим все детали нашего материала, чтобы создать полноценный материал, который уже будем накладывать с помощью развертки. После того, как мы добавили "Albedo.tif" добавим еще одну текстуру. Для того, чтобы каждый раз не указывать путь к текстурам, который находится где-то далеко, вы можете копировать ее с помощью сочетания клавиш "Shift" + "D". Тогда, нажимая на папку Открыть, изображение будет находиться в той же самой папке, в которой находилась наша предыдущая текстура. Нас интересует "Metallic.tif". Соединяем ее с узлом Metallic. Проделаем тоже самое для следующей текстуры "Roughness.tif". Обратите внимание что за цвет у нас ответственный только "Albedo.tif". Поэтому в других текстурах поменяйте цветовое пространство color space на non-color (Рис. 8).

Рис. 8 Смена цветового пространства

Нажмем "Ctrl" + "пробел", чтобы выйти из полноэкранного режима. Если вы видите, что ваша ваза потеряла цвет, то скорее всего в этот момент Blender просчитывает наш материал. Посмотрим на вазу, она приобрела интересную текстуру. Не будем на этом останавливаться, снова скопируем текстуру. Для экономии места можем свернуть старые ноды или перенести их с помощью клавиши "G".

Теперь откроем карты высот и шероховатости. "Heihgt.tif" ответственна за то, какие части нашего объекта будут выглядеть выпуклыми, а какие вогнутыми. Они идут парой вместе с картой нормалей, поэтому давайте сразу же сделаем "Shift" + "D" и откроем "Normal.tif". Карта нормалей имеет очень интересный оттенок. Она работает очень интересно. Каждое из направлений, верх-низ, право-лево, имеет свой собственный уникальный цвет. В зависимости от того, в какую сторону направлены микродетали на этой текстуре, в такой цвет они будут окрашены. Это позволяет имитировать освещение прямо на самой карте.

Мы видим, что узел Normal принимает фиолетовое значение, значит, мы не можем подключить туда наши желтые входы. Заходим в меню Add -> Vector -> Bump. Это как раз то, что преобразует нашу карту высот и нормалей в один большой поток информации. Добавляем еще один вектор Add -> Vector -> Normal Map. Соединяем все подобным образом (Рис.9).

Рис. 9 Подключение текстур

Не забываем поменять цветовое пространство color space на non-color. После того, как мы это сделали, наш объект стал очень очень необычно выглядеть. Однако, мы видим еще больше растяжек и углов. Дело в том, что когда мы работаем с объектом, мы должны знать, как он выглядит в 2D формате.

Представление нашего объекта в 2D формате будет выглядеть следующим образом. Представьте, что у нас есть куб, который нам надо заложить на плоскость. Если мы начнем смотреть, как этот куб разложить, то окажется, что мы можем представить его подобным образом (Рис.10).

Рис. 10 Развертка куба

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

Чтобы сделать это автоматически, давайте откроем объект в layout, зайдем в режим редактирования, и выделив весь объект, нажав клавишу "А", нажмём на клавишу "U". Выберем Smart UV Project. После того, как мы это выберем, нам предложат небольшое меню, в котором обязательно поставьте Island Margin (расстояние между островками) в ненулевое значение. После того, как вы нажмете OK, ваша текстура на объекте изменится (Рис.11).

Рис. 11 Ваза после применения Smart UV Project

Зайдем в режим UV-editing. Эта вкладка отвечает за редактирование развертки нашего 3d-объекта на 2d-плоскости. В этом режиме мы видим следующую картину. Есть наш объект и есть боковое меню, на котором находятся разные изображения. Если мы выберем все полигоны нашего объекта, то увидим, что сбоку есть кусочки полигонов, которые называются островками. Они отдельно разложены по нашему изображению. Это и называется UV-разверткой (Рис.12).

Рис. 12 Автоматическая UV-развертка вазы

Все, что мы сделали, это визуально разрезали наш объект на несколько разных частей, и на каждую из этих частей попал кусочек нашей текстуры. Все, что находится под этим кусочком, будет нанесено на него в виде текстуры. Этот метод очень прост, но имеет свои недостатки. А именно то, что не всегда те части текстуры, которые мы хотели, будут нанесены на наш объект (Рис. 13).

Рис. 13 Недостатки автоматической развертки

Видим, что наша текстура разъединяется, не стыкуется. Части, где прослеживаются разные куски текстуры, называются швами. Именно по ним "разрезается" текстура и накладывается на объект. Когда мы делаем это автоматически, мы видим, что результат не всегда является таким, как мы ожидали. Поэтому, зачастую нам приходится делать развертку вручную.

Чтобы создать развертку вручную, необходимо обозначить швы самостоятельно. Снова перейдем в layout, в редактирование объекта, и, чтобы нас не отвлекала текстура, нажмем на solid режим. В этом режиме мы будем разрезать наши ребра. Выбираем режим редактирования ребер. Нажимаем инструмент select box, и, зажав "Alt", выбираем все горлышко вазы. Нажимаем на клавишу "U" и выбираем Mark Seam (обозначить шов). Как только мы это сделаем, все ребра, которые были выделены, окрасятся в красный цвет. Это значит, что здесь будет проведён разрез. Давайте посмотрим на вазу снизу. Скроем стол, если это необходимо. Зайдем в правое верхнее меню, найдем объект стола и нажмем на иконку глаза. Выделим нижний полигон вазы, нажмем "U" -> Mark Seam. Далее сделаем "разрез" вдоль нашего объекта. Обозначим шов. Не забудем и про внутреннее дно вазы. "U" -> Mark Seam (Рис.14).

Рис. 14 Швы

После того, как мы "разрезали" вазу и посчитали, что швы на подходят, выделяем весь объект и нажимаем "U" -> Unwrap. Обратим внимание, что на развертку очень сильно влияют параметры объекта. Мы меняли значение х и у значения в Scale. Оно влияет на то, как будет вести себя наш объект. Значения Location и Rotation не влияют. Если значение Scale отлично от единицы, то их необходимо привести к стандартному виду. Для этого нажимаем сочетание клавиш "Ctrl" + "A" и выбираем параметр Scale. Как только мы это делаем, значения Scale становятся равной единице. Если ваша развертка вышла некачественной, вы можете выделить объект и снова нажать "U"-> Unwrap.

Посмотрим как выглядит наш объект сейчас. Зайдем в Shaiding и насладимся отсутствием явных швов и шумов (Рис.15).

Рис. 15 Результат ручной развертки

Однако, кажется, что текстура для нас крупновата. Это можно изменить, отмасштабировав наш объект. Зайдем в режим UV-editing и выделим развертку в левой части нашего рабочего экрана. Выделим все объекты клавишей "A" и начнем их масштабировать. Не забудем перейти в предпросмотр материалов. При перемещении заметно, как меняется текстура на объекте (Рис.16).

Рис. 16 Корректировка текстуры

Если вы считаете, что вмятины слишком сильные, то тогда можно вернуться в Shaiding, и в значениях Strength карт нормалей поменяем силу. Там, где мы оставили вертикальный разрез хорошо видно шов. Однако, мы решили, что оставим его со стороны, где зритель на него смотреть не будет. Дело в том, что создать текстуру без швов невозможно.

Для стола добавим автоматическую UV-развертку. Вернем стол, отжав иконку глаза. Так как у стола много резких углов, все швы будут менее заметны. Перед тем, как начать что-то делать, не забудьте посмотреть и, если нужно, отредактировать масштаб. "Ctrl" + "A" -> Scale. Перейдем в режим редактирования и нажмем "U" -> Smart UV Project. Не забудем, что отступы между островками должны быть не нулевыми (Рис.17).

Рис. 17 UV-развертка стола

Убедившись, что выделен именно стол, перейдем в Shaiding. Добавим текстуру Add->Texture->Image Texture. Откроем папку с нашими текстурами и найдем деревянные планки. Соединим Color с Base Color.

Скопируем текстуру "Shift" + "D" выберем и подсоединим параметр, отвечающий за шероховатость (Roughness). Также добавляем карту нормали. Не забываем добавить для нее Add -> Vector -> Bump и Add -> Vector -> Normal Map. Поставим значение non-color для color space везде, кроме базового цвета (Рис.18).

Рис. 18 Подключение текстур стола

Займемся стулом в режиме Shading. Давайте просто поменяем ему значения (Рис.19).

Рис. 19 Параметры стула

Теперь, когда вся эта часть задания готова, давайте подготовим ее к экспорту. Убедимся, что все параметры трансформации объектов равны нулю, в том числе и параметры размещения (локация). Дело в том, что при сохранении локации такой, какой она есть сейчас, наши объекты будут находиться в части, поднятой над землей. Если мы хотим, чтобы наша ваза вместе со столом и стулом представляли собой единый комплект, необходимо обнулить значения объектов."Ctrl" + "A" -> Location. Если же мы хотим, чтобы наши объекты были не одним целым, то тогда location мы не обнуляем и экспортируем объекты отдельно. Чтобы экспортировать всю нашу сцену, не выделяйте те объекты, которые экспортировать вы не хотите. Их можно скрыть (иконка глаза) или удалить. Выделим три наших объекта и пойдем в file -> export -> нужный формат. Выберем формат fbx. В открывшемся окне зададим свои параметры (Рис. 20).

Рис. 20 Настройки экспорта

Нажимаем экспорт. Теперь мы не только можем создавать объекты в блендере, но экспортировать их в другое место. Не забывайте, что когда мы экспортируем файл в каком-то формате отличном от gltf, текстуры не сохраняются. Подгружать их нужно будет отдельно.

Теперь давайте попробуем развернуть еще один объект. В файлах курса найдите панду ("cutie for painting"). У этой панды есть три объекта: глаза, веки и тело. Именно тело панды мы с вами будем разукрашивать и развертывать. Для того, чтобы ее развернуть, давайте перейдём в режим редактирования и зайдем в режим ребер. Чтобы развернуть какую-то более комплексную форму, нежели вазу и стол, мы можем создавать швы там, где наши части тела стыкуются друг с другом. В живых существах это сочленение конечностей. Мы можем делать отдельным объектом голову, руки, ноги и все другие части, где есть резкие переходы. Например, хвост.

Создаем швы по нашим рукам. Нажимаю "Shift" + "Alt" и выделяю левой клавишей мышки, чтобы выделить всю петлю в подмышечной области. Добавляем петли на стыках ног, обратите внимание, что мы нажимаем на одно ребро, чтобы выделить конкретную петлю. Также выделим петлю на шее (Рис. 21). Чтобы сделать разрез нажмем "U" -> Mark Seam.

Рис. 21 Отделение частей

После чего нажимаем "А" и "U"-> Unwrap. Теперь мы можем перейти во вкладку UV-editing. По умолчанию в этих файлах развертка показана полупрозрачной. Здесь у нас включена опция display stretch. Эта опция позволяет нам понять, насколько правильную развертку мы сделали. В идеале и UV-развертка является тёмно-синей. Если развертка является желтой или красной, значит, развертка очень плохая. В данном случае, мы видим, что наша развертка не совсем верна. Не хватает еще одного шва на отделенных частях тела.

Например, руки и ноги очень похожи на цилиндры и у нас необходимо сделать какой-то продольный разрез. Делаем его там, где мы меньше всего его видим, а именно, снизу. Так же не забудем поработать с туловищем, ушами и хвостом (Рис. 22).

Рис. 22 UV-развертка панды

Перейдем в меню Texture Paint (текстурное рисование). Первое, что мы должны посмотреть, это убедиться, что параметры трансформаций Location и Rotation равны нулю, а Scale единицам.

Texture Paint и UV-editing очень похожи, за исключением того, что наша вкладка "active tool and workspace settings" в правом нижнем меню, поменялась на кисточку. Первое, что мы видим, это то, что мы не можем красить по объекту, потому что у нас нет текстуры. Давайте создадим ее. В этой же вкладке инструмента создадим слот. В текстурах нажмем на плюс, выберем базовый цвет. После чего, можно назвать это файл каким-либо образом и задать его значение. Я оставлю их по умолчанию. Вы можете задавать другие значения, но не забудьте, что они должны быть кратны двум. Параметр Alpha нам не нужен, можем его выключить. Нажимаем OK. Теперь наша панда окрашена в белый цвет. У нас есть ряд инструментов: кисть, размытие, палец, клонирование и заливка. В кисти есть радиус и сила, которые определяют какого радиуса будет наша кисточка и с какой силой она будет нажимать.

Радиус можно менять с помощью клавиши "F". Мы можем рисовать непосредственно на нашей панде (из-за uv-развертки, представленной на плоскости). Также можно изменять цвет кисти. Более сложные настройки кистей, мы проходить не будем. В наших работах достаточно будет базового функционала. Единственное, что мы с вами еще затронем, это симметрия. Сейчас она включена по умолчанию. Если случится так, что вы хотите симметрию выключить, долистайте в инструменте до параметра симметрия и выключите ее, отжав нужную вам ось. Если так случилось, что у вас эта часть инструментов отсутствует, эти инструменты дублируются в N-панели. Разрисуем нашу панду, не забывая использовать все доступные нам инструменты (Рис.23).

Рис. 23 Рисование на текстуре

После того, как мы разрисовали модель, необходимо сохранить нашу текстуру. Дело в том, что сейчас она существует только внутри блендера. Поэтому, как только мы выйдем из приложения, текстура исчезнет. Если вы видите возле изображения маленькую звёздочку, это значит, что изображение не сохранено (Рис. 24).

Рис. 24 Сохранение текстуры

Выберем в какой директории будет сохранён файл. Все настройки можно оставить по умолчанию. После сохранения изображение будет связано с вашим объектом.

Теперь мы с вами научились не только создавать простые объекты, но и комплексные, накладывать на них материалы и текстуры, делать развертку.

Список использованных источников и литературы

  1. Get Started with Blender [Электронный ресурс] // Официальная страница Blender. – URL:Tutorials — blender.org.

  2. Официальная страница Blender (https://www.blender.org/)

  3. Кожар Д. Blender | Уроки на русском [Электронный ресурс] // YouTube страница "Denis Kozhar" – URL:Blender | Уроки на русском - YouTube.

  4. Гром. А 172+ уроков в Blender с нуля: обучение 3d (на примерах и бесплатно) [Электронный ресурс] // Сайт videoinfographica. – URL: https://videoinfographica.com/blender-tutorials/

Last updated