Blender как сделать развертку персонажа

BLENDER. Делаем UV карты (развертки) для модели March 13th, 2012

Что такое UV карта? Если Вы когда нибудь клеили модели бумажных самолетиков или корабликов – то вы знаете что такое UV карта!

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

UV нужны для того чтобы их можно было раскрасить и склеить не просто модель – а раскрашенную модель.

Загружаю модель в Blender. Выделяю верхнюю часть модели и переходу в режим редактирования (TAB).

Слева открываю окно с UV/Image Editor

Выбираю Image –> New image –> Create

В окне с моделью нажимаю U –> Unwrap All – получаю:

Blender попытался развернуть модель на плоскость… Как будто катком проехал. Не просто сделать из объемной модели плоскую раскладку. Чтобы этого добиться нужно в некоторых местах модель разрезать а потом уже разворачивать

Выделяю вершины по которым хочу наметить первый разрез:

CTRL + E = Mark Seam - помечаем для разреза (делаем шов).

Разрез выделился красным.

Попробуем снова развернуть модель. Выделяем все точки (А) U -> Unwrap

Обратите внимание на маленькую желтую точку в правом нижнем углу UV Image Editor. Это наша отрезанная голова!

Как понять где что находится на UV карте? Достаточно нажать кнопку “Keep UV and edit mode mesh selection in sync”

Теперь, выделив точку на модели, – эта точка подсветится и на UV карте. И наоборот.

Еще одна полезная фича – усреднение размеров частей полученной UV карты (Average Island Scale):

Island (острова) это независимые части UV модели, полученные после разрезания. В результате голова заметно укрупнилась.

Сделаю еще 2 шва на голове:

Снова делаю развертку. Можно вручную изменить масштаб и перенести части UV на развертке как нам удобно. Для этого отключаю “Keep UV and edit mode mesh selection in sync” и использую те же методы работы как и с мешем.

Отрежу руки.

Думаю, понятно почему у меня получились такие спилы вместо ювишек. Исправляю ситуацию.

Чтобы не рисовать на второй руке вручную шов – удаляю половину модели и использую модификатор Mirrow, как уже делал раньше.

Развертка без примененного модификатора Mirrow. Вижу только половину модели:

Намечаю еще 2 шва:

Применяю модификатор Mirrow.

В результате получаю вот такую развертку

Полезные функции при окончательном формировании развертки:

Ctrl +A = Average Islands Scale (Усреднение размеров островов)

Ctrl + P = Pack Islands (Уместить все острова в пределах развертки)

Еще можно выделить одну точку на острове и нажать L – выделится остров целиком.

В результате я перераспределил острова следующим образом:

Делаем Export UV Layout.

Объекты Blender используют трехмерные координаты XYZ для позиционирования в пределах сцены, но у них еще есть особая сетка координат, которая предназначена для работы с текстурами.

UV - это двухмерные координаты, которые используются программой для привязки каждой вершины к определенному месту на текстуре, соответственно,разверткой UV называется процесс распределения этих координат.

Blender предлагает два способа создания развертки UV: автоматический и ручной. В первом случае имеются несколько заготовок, которые более или менее могут правильно распределить структуру, зато второй вариант позволяет точно определить место для каждой вершины на текстуре.

Для управления разверткой программа предлагает использовать специальный редактор UV/Image Editor . Кроме того, уже имеется заготовка расположения окон, оптимально подходящая для работы с текстурами (рис. 4.83). Выбрать ее можно из менюScreen Layout на заголовке программы (пунктUV Editing ).

Как видите, в этом режиме имеется всего два окна: UV Editor и3D View . Такая конфигурация окон действительно самая удобная, но вы можете создать личную под свою задачу.

Рис. 4.83. Раскладка окон UV Editing

Работа с UV-координатами возможна только в режиме редактирования объекта. Причем можно изменять развертку как для всего объекта целиком, так и для выделенной части структуры.

Имеется основное меню UV Mapping для управления разверткой, вызываемое клавишей в окне3D View . Оно содержит 10 пунктов.

 Unwrap (Развертка). Наиболее быстрый способ создания развертки. При этом полученная сетка будет оптимально покрывать всю текстуру.

 Cube Projection (Кубическая проекция). Оптимально подходит для моделей кубической формы. Это могут быть модели: шкафа, телевизора, стола.

 Cylinder Projection (Цилиндровая проекция). Подходит для моделей цилиндрической формы: карандаши, стаканы.

 Sphere Projection (Сферическая проекция). Подходит для моделей сферической формы (рис. 4.84).

 Project from View (Экранная проекция). Полезный режим, когда развертка создается по принципу: "как есть при просмотре". Вы можете развернуть модель или сцену в нужном ракурсе, а программа выполнит своего рода снимок экрана.

Рис. 4.84. Пример раскладки сферы с помощьюSphere Projection

 Project form View (Bounds) (Экранная проекция с заполнением). То же самое, что и выше рассмотренная опция, но в этом случае развертка будет занимать всю текстуру.

 Reset (Сбос). Сброс координат.

 Smart UV Project (Умная развертка). Инструмент для разбиения развертки на несколько независимых зон.

 Lightmap Pack (Развертка для карт освещенности). Создание специальной развертки для использования с картамиLightmap (освещение).

 Follow Active Quads (Следовать за активными квадратами). Работает с выделенными гранями и старается выполнить развертку, пока цепочка полигонов не заканчивается. Работает не всегда оптимально.

Результат работы развертки объекта будет отображаться в окне UV Editor . Не беда, если она не подходит форме рабочей модели. Всегда можно выбрать в менюUV Mapping пунктReset и начать все сначала.

Теперь самое время загрузить текстуру и совместить развертку с картинкой. Для управления текстурами на заголовке окна UV Editor имеется стандартная область для выбора или создания новой текстуры (рис. 4.85).

Рис. 4.85. Управление текстурами

Попробуем поиграть с UV Editor на практике. Включите раскладку оконUV Editing . Выделите имеющийся куб и перейдите в режим редактирования. Нажмите клавишу и выберите пункт менюCube Projection .

Теперь создадим для работы новую текстуру. Нажмите кнопку New в заголовке окнаUV Editor . Появится окно с настройками текстуры (рис. 4.86):

 Name (Имя);

 Width (Ширина) - указывается в пикселах;

 Height (Высота);

 Color (Цвет) - область выбора цвета для заливки;

 опция Alpha (Альфа-канал) - если включено, то текстура будет содержать дополнительный канал прозрачности;

 UV Test Grid (Тестовая решетка) - генерируемая текстура;

 32 bit Float (Глубина 32 бит) - глубина цвета.

Рис. 4.86. Настройки новой текстуры

Выберите пункт UV Test Grid и нажмите кнопкуOK . Под имеющейся разверткой куба должна появиться текстура. Для удобства просмотра включите в окне3D View

режим Texture в менюViewport Shading (рис. 4.87).

Рис. 4.87. Развертка с текстурой и сам куб

UV Editor позволяет управлять размещением как всей сетки целиком, так и отдельных ее элементов. Здесь действуют стандартные возможности окна3D View по выделению, перемещению и масштабированию элементов.

Попробуем увеличить изображение текстуры на кубе. Выделите всю сетку в редакторе клавишей (по умолчанию, после создания развертки она уже выделена) и нажмите для включения масштабирования. Сожмите выделение (рис. 4.88). Как видите, ничего сложного в редактировании сетки нет.

Иногда бывает нужно определить расположение конкретного элемента структуры Mesh -объекта на текстуре. В этом случае достаточно выделить нужный элемент в окне3D View .UV Editor после этого покажет только те вершины сетки, которые относятся к данному элементу.

По такому же принципу происходит создание развертки для выделенных полигонов объекта. Попробуйте выделить две смежные грани и выбрать пункт Unwrap в менюUV Mapping . С этого мгновения эта сетка становится отдельным элементом развертки куба. Вы можете свободно манипулировать ее, как заблагорассудится. Такой элемент еще называется "островком". Чтобы увидеть полностью всю сетку, достаточно выделить весь объект.

UV Editor имеет свой собственный набор кнопок, переключающий режим выделения, наподобие такого же, как в окне3D View (рис. 4.89).

Если рассматривать их слева направо, то первая кнопка отвечает за вершины, вторая за ребра, а третья выделяет грани. Особенно полезна последняя четвертая кноп-

Рис. 4.88. Результат изменения масштаба развертки

Рис. 4.89. Кнопки управления выделением

ка. Ее назначение - в выделении островков. С этим набором переключателей можно не бояться заблудиться в дебрях развертки.

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

Seam (Шов) - инструмент, позволяющий с легкостью "разрезать" модель на куски, пригодные для создания развертки. Естественно, никакого реального разделения объекта не происходит, просто таким образом указываются границы, по которым Blender сможет выполнить развертку.

Работа эта выполняется в окне 3D View . Принцип действия заключается в следующем:

1. Выбор области. Выделять лучше всего ребра, т. к. именно по ним будет проходить шов. Выделение должно представлять собой замкнутую область. Удобно использовать инструментEdge Loop , который старается выделить замкнутые ребра (используйте мышь совместно с нажатой клавишей ).

2. Создание шва. Для этого используйте меню:Mesh | Edges | Mark Seem . Отмеченные ребра окрасятся в красный цвет (рис. 4.90).

В данной статье рассматривается вопрос создания 3D модели с оптимизированной uv разверткой (с созданием вспомогательных швов на uv развертке 3D модели, а также без них, в частности, без деления uv развертки на острова) с целью снижения количества используемых текстур в игровых движках, уменьшения размеров текстур и uv развертки 3D моделей на примере 3D редактора Blender и игрового движка Unity 3D.

Размер, количество и качество текстур, а также размер uv развертки и количество островов на ней для 3D моделей, используемых в игровых движках, остаются актуальными всегда из-за оказываемой нагрузки на видеокарту и процессор. Однако чем выше разрешение текстуры и чем больше размер островов uv развертки, занимающих площадь текстуры при одном и том же её размере, тем качественнее будет выглядеть в игре текстура, “натянутая“ на 3D модель. Следовательно, необходимо оптимизировать uv развертку за счет повторного использования имеющейся текстуры, например, путем наложения одинаковых или схожих элементов uv развертки (uv островов) 3D модели друг на друга и/или на одни и те же области текстуры. Таким способом можно либо уменьшить общую площадь, занимаемую uv разверткой, а размеры каждого uv острова увеличить с целью повышения качества рендера игровых объектов, либо уменьшить размер текстуры, например, с 2048×2028 пикселей до 1024×1024, сделав ставку на производительность. Освободившиеся ресурсы можно использовать, например, для добавления ресурсоемких эффектов, фильтров и т.д., например, для пост-процессинга.

На рисунке показаны созданные традиционным способом 3D модель ангара и uv развертка для него (слева), справа — 3D модель ангара и его uv развертка, созданные описанным в данной статье способом.

Представленная на рисунке выше uv развертка не является оптимальной, поскольку не занимает максимально отведенное ей пространство, но для облегчения понимания изложенного в данной статье материала подходит отлично. С другой стороны, посмотрите, сколько места на uv развертке осталось свободным. На этом освободившемся месте можно разместить развертки других дополнительных элементов ангара, например, дверей, элементов вытяжной системы, лестниц и так далее.

Здесь я забегу немного вперед, чтобы не возникло недоразумений и вопросов, почему у ангара нет двери.

В данном варианте 3D модели ангара дверей не предусмотрено, как и ранее — с целью облегчения понимания описываемого в статье материала, однако заготовка под дверной проем оставлена, так что проделать проем под дверь в ангаре вы с легкостью сможете, если удалите всего лишь одну вершину ангара, как только ангар будет готов. Либо вы можете сделать это на данном этапе, удалив указанную на рисунке вершину. Я продолжу использовать ангар без проема, и к концу статьи вы поймете, почему.


На рисунке показаны 3D модели ангаров: слева показана отзеркалированная, но без применения модификатора, четвертая часть ангара с удаленной вершиной (на развертке вершина также удалилась), что привело к образованию дверное проема (даже двух – по обоим торцам ангара из-за зеркалирования по оси y); по центру рисунка показана 3D модель целикового ангара с выделенной вершиной меша, удаление которой приводит к образованию дверного проема; справа — показан ангар снаружи и изнутри с дверным проемом и массивной распашной дверью.

Не забывайте сохранять файл со своей 3D моделью, желательно в файл под другим именем (например, добавляя цифру в конце имени файла и увеличивая её на единицу при каждом последующем сохранении через Ctrl+Shift+S, тем более что, находясь в меню сохранения, можно нажать клавишу плюс/»+» на дополнительной цифровой клавиатуре, чтобы Blender проделал этот фокус за вас). Так вы получите более гибкую систему резервных копий файлов своей модели и/или сцены, чтобы иметь про запас 3D модель не нескольких стадиях ее создания, если захотите «вернуться в прошлое» и изменить свою 3D модель. Всегда лучше вернуться на десяток шагов назад, чем начинать создавать 3D-модель заново. Вопросы бекапов, откатов до одной из сохранённых версий (включая автоматически сохранённые Blender’ом), копирование моделей с переносом их на отдельные слои и восстановление частей модели из предыдущих версий будет рассмотрено в отдельной статье///, как только она будет дописана.

Не секрет, что во многих случаях лучше сразу создавать оптимизированную 3D модель, чем оптимизировать её после окончания процесса моделирования, особенно это касается низкополигональных (low poly) 3D моделей. Рассмотрим пример такого оптимизированного создания 3D модели на примере sci-fi ангара. Создадим четвертую часть ангара. Почему только четвертую часть, а не ангар целиком? А потому что позднее мы отразим (отзеркалируем) ее по двум осям, так чтобы получился целиковый ангар (но об этом чуть неиже). Вы можете сами создать данный кусок 3D модели ангара или «четвертинку» модели любого другого строения, либо использовать созданный мной в Blender’е кусок модели.

Приступим к созданию 3D модели ангара. Давайте отметим швами ребра созданной модели, как показано на рисунке ниже, и создадим для имеющейся части ангара развертку.


Чтобы отметить ребра 3D модели в качестве швов, выберите Правой Кнопкой Мыши модель ангара и нажмите клавишу ‘Tab’, чтобы перейти в режим редактирования меша. Находясь в режиме редактирования меша измените режим выбора элементов меша на режим редактирования ребер, для чего нажмите сочетание клавиш Ctrl+Tab и в открывшемся меню режима выбора меша (Mesh Select Mode) выберите “Edge”.
Не выходя из режима редактирования меша, выберите ребра, как на картинке выше, по которым будут созданы швы на uv развертки. Выбор ребра осуществляется при помощи Правой Кнопки Мыши, а добавить к выбранному ребру еще одно поможет клавиша ‘Shift’. Здесь стоит отметить, что горячие клавиши в Blender работают только для того окна, в котором в настоящий момент находится курсор мыши. После того как выберете все ребра, необходимые для создания по ним швов, нажмите сочетание клавиш Ctrl+E, чтобы открыть меню “Edges”. В данном меню выберите пункт «Mark Seam», чтобы пометить выбранные ребра как швы. В одном из окон 3D вида откройте окно Редактора изображений/uv развертки.



В окне редактора развертки отображается только развертка выбранных в 3D окне полигонов, если не выбран режим синхронного редактирования uv развертки (Keep UV and edit mode mesh selection in sync), иконка которого отмечена синим прямоугольником на рисунке выше.

Если у вас получилась не такая ровная развертка, как на рисунке, не переживайте, я выровнял ее. Если вы считаете, что руками выравнивать разваертку слишком долго, то вы всегда можете воспользоваться add-on’ом для Blendera UV Tool или UV Squares , или вы найдете что-то свое на этом замечательном сайте.

Чтобы воспользоваться функционалом ручного выравнивания uv развертки, для начала, необходимо установить 2D курсор в качестве пивота/центра для вращения и масштабирования (Rotation/Scaling Pivot). Иконка меню Pivot, в котором расположена вкладка 2D Cursor за упомянутую функцию, отмечена на рисунке выше синим прямоугольником. Теперь вы можете выбрать одну из вершин uv развертки Правой Кнопкой Мыши и нажать сочетание клавиш Shift+S (поместив курсор мыши поверх окна редактирования развертки, поскольку горячие клавиши действуют для того окна, в котором находится курсор мыши, т.е. активном окне), после чего в меню шага (Snap) выбрать вкладку “Cursor to Selected”, чтобы установить 2D курсор в выбранную вершину uv развертки. Теперь выберите вершины на uv развертке, которые хотите переместить на один уровень с 2D курсором и нажмите клавишу ‘S’, после чего нажмите клавишу ‘Y’ (для выравнивания по оси y) или клавишу X (для выравнивания по оси x) и затем клавишу 0 (ноль), после чего подтвердите перемещение вершин, нажав клавишу ‘Enter’. Используя данную технику, вы можете придать развертке приемлемый вид без наслоения частей развертки (uv островов) друг на друга. Более простой способ выравнивания выбранных вершин uv развертки доступен через меню Сваривания/Выравнивания вершин развертки (Weld/Align), которое открывается по нажатию клавиши ‘W’. В данном меню выберите пункт выравнивания по оси Y (Align Y) или по оси X (Align X), чтобы выровнять выбранные вершины по оси y или x (y – вертикальная ось в uv пространстве, а x — горизонтальная). Кстати, u и u в названии uv развертки, не больше, чем обозначения осей x и y для исключения путаницы с осями, u соответствует координате x, а u – координате y. Более подробно о uv пространстве вы можете почитать в статье .

Посмотреть процесс выравнивания uv развертки вы можете все в том же видео по созданию и анимированию водопада в Blender и Unity3D .


Чтобы форма и позиция uv развертки не изменилась при повторном ее создании (преднамеренном или непреднамеренном), закрепите вершины uv развертки, для чего выберите в окне редактирования изображения/uv все вершины развёртки, поместив курсор мыши поверх развёртки и нажмите клавишу ‘A’, после чего нажмите клавишу ‘P’. Не забывайте о том, что, как было сказано выше, горячие клавиши действуют для того окна, в котором в настоящее время находится курсор мыши. Вместо использования горячей клавиши вы можете выбрать пункт горизонтального меню “UVs” под окном редактирования развертки, в котором выбрать подпункт Pin.



На рисунке заметно, как “поплыла” текстура на персонаже, причем так, что текстура языка оказалась на пятке 3D модели персонажа. Чтобы такого не произошло, используется “фиксация” вершин развертки в uv пространстве/на uv плоскости.

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


На рисунке показаны выделенные желтым ребра модели ангара, которые не были отмечены в качестве швов. Оси симметрии, о которых упоминалось чуть выше, в данном случае совпадают с осями x (красная линия на рисунке) и y (зеленая линия). Центр симметрии объекта по двум осям (x и y) располагается в координатах Origin 3D модели (жирная желтая точка на углу модели, обведена синим кружком). Окно Свойств/Properties обведено фиолетовым. Вкладка Добавить модификатор/Add Modifier обведена ярко желтой линией. Модификатор «Mirror» выделен аквамариновым цветом в списке модификаторов в Blender.

Давайте теперь отразим часть нашей модели по оси икс и игрек, чтобы превратить ее в полноценный ангар. Модификатор Отражение/Mirror, который вы можете найти в панели Свойств/Properties во вкладке «Modifiers» (обведена зеленой рамкой на рисунке выше), если нажмете на кнопку Добавить модификатор позволяет создавать зеркальные копии выбранного объекта относительно центра (Origin) этого объекта (не путать с опорной точкой для вращения и масштабирования/Pivot point for rotating/scaling).
Поскольку я создавал модель, точно зная, что буду с ней делать дальше, то я заранее «плясал» от Origin, выставленного в крайнюю точку модели (кстати, не случайно совпадающей с началом координат, но об этом чуть ниже), относительно которой (точки) я буду зеркалировать имеющуюся в моем распоряжении часть 3D модели, не опасаясь наложения частей модели друг на друга. Установите флажки напротив опций отражения по оси X и оси Y (на рисунке ниже отмечены зеленым цветом ).


Одной из полезных опций в меню зеркалирования является возможность фиксировать вершины модели на осях симметрии, не давая зеркалируемым вершинам пересекать оси симметрии. Отметьте флажком опцию Clipping (отмечена красным ), отвечающую за данный функционал, и попробуйте переместить вершины 3D модели по направлению к оси симметрии или от нее и вы поймёте в чем заключается особенность данной опции.
Помимо Clipping’а в меню зеркалирования можно увидеть опцию Merge (синяя рамка на рисунке ), сливающую расположенные на краях модели вершины зеркального отображения меша и оригинала, создавая единый меш после применения модификатора (что-то вроде инструмента Remove doubles, описанного в статье . Поставьте галочку напротив данного пункта, в противном случае ваша модель будет представлена разрозненными мешами (в данном случае модель ангара будет представлена четырьмя кусками, которые можно будет выделить по отдельности в режиме редактирования меша), что может привести к артефактам на поверхности модели, например, в виде ошибок в расчете затенения в месте стыков ребер 3D модели в игровых движках, и вам придется совершать дополнительную работу по удалению продублированных вершин, прибегнув, например, все к тому же инструменту Remove doubles. Расстояние, на котором вершины считаются совпадающими, определяется значением, выставляемом во вкладке Merge Limit.

Более подробно про эти и другие артефакты, связанные с геометрией 3D моделей, нормалями, материалами, текстурами и шейдерами в игровых движках и 3D редакторах на примере Unity3D и Blender, вы можете прочитать в статьях:

Еще одна опция в меню зеркалирования объектов относится к текстуре и развертке — Textures с параметрами U и V – отвечающая за зеркалирование развертки относительно центра uv плоскости/uv пространства. На представленном выше рисунке слева внизу показана uv развертка ангара после применения модификатора зеркалирования со снятыми флажками напротив параметров U и V, а справа внизу – с проставленными флажками. В рамках данной статьи нам не нужно подобное зеркалирование uv развертки, так что данные флажки проставлять не нужно.

Вернемся к модели ангара. Если у вас получилось не то, на что вы рассчитывали (и ваша модель отличается от показанного на рисунке выше), а что-то наподобие того, что показано на рисунке ниже, то есть зеркалирование части 3D-модели произошло не по тем осям, что вы указали, то попробуйте выставить другие оси для отражения, поскольку отражение работает относительно локальных осей 3D-модели.


Подобное может произойти в том случае, если вы начали моделировать объект, а потом решили развернуть его в режиме объекта, предварительно выбрав его. Такое может произойти если вы повернете объект в режиме меша (т.е. перейдете в режим редактирования меша, выберете все вершины/ребра/плоскости меша через клавишу ‘A’ и повернете его), после чего повернете свою модель, но уже в режиме объекта.

Хотя направление локальных осей и может быть исправлено перед экспортом модели или в его процессе, лучше не прибегать к подобному решению, поскольку, если забыть про необходимость дополнительной подготовки 3D модели перед экспортом (о чем описано в статье ), такой подход вызовет неправильную ориентацию модели после ее импорта в игровые движки, например, Unity3D или Unreal Engine, как описано в статье . Также для того чтобы исключить путаницу с осями в процессе моделирования и экспорта, лучше совершить дополнительные манипуляции сейчас, чем потом. Чтобы выставить локальные оси модели согласно глобальным, выберите модель Правой Кнопкой Мыши и нажмите сочетание клавиш Ctr+A. Эта комбинация клавиш открывает меню «Apply», в котором необходимо выбрать пункт «Rotation & Scale», чтобы использовать существующий масштаб и ориентацию модели в пространстве в качестве параметров для масштаба и ориентации 3D модели по умолчанию, т.е. угол поворота вокруг всех трёх осей установить равным нулю (тем самым совместив направление локальных осей с направлением глобальных, а масштаб 3D модели — равным единице по трём осям.


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


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

Для того чтобы точно выставить Origin объекта в позицию описанную выше, выберите Правой Кнопкой Мыши вершину «B» и переместите в неё 3D курсор (Shift+S и затем выберите «Cursor to selected» в выпадающем меню «Snap») . Теперь выберите вершину A, нажмите клавишу ‘E’, чтобы выдавить ее (получившуюся эструдированную/выдавленную вершину назовем вершиной A1), и затем нажмите клавишу ‘ESC’, чтобы оставить вершину A1 неперемещенной (т.е. оставить ей координаты вершины A из которой она была выдавлена). Теперь, чтобы переместить вершину A1 на линию, проходящую через вершину B (т.е. в позицию 3D курсора, выставленного чуть ранее в позицию вершины B, но только по осям зед и икс), не снимая выделения с вершины A1, нажмите клавишу ‘S’, затем клавишу ‘Z’ и клавишу ‘X’ в нашем случае, после чего нажмите ‘0’ (ноль). Теперь вершина A1 имеет координаты крайней точки вашей 3D модели, т.е. координаты пересечении линий, которым принадлежат точки A и B. Таким образом точка A1 теперь имеет координаты будущей точки симметрии модели ангара, причем сразу по трем осям: X, Y и Z.


Чтобы зеркалирование выполнялось относительно этой точки (вершины A1), необходимо в ее координаты переместить Origin 3D модели. Чтобы это сделать, переместите 3D курсор в координаты вершины A1, как было описано выше (выделите вершину A1, нажмите комбинацию клавиш Shift+S и выберите “Cursot to Selected”). Теперь выйдите из режима редактирования вершин в режим объекта (клавиша ‘Tab’). Выберите ангар Правой Кнопкой Мыши и под одним из окон 3D вида выберите вкладку Object, которая открывает меню объекта. В этом меню выберите вкладку Transform, а в ней Origin to 3D Cursor, чтобы установить Origin в координаты 3D курсора.


Если у вас все еще включен модификатор Mirror/Зеркалирование, то в режиме объекта вы увидите верно отзеркалированную 3D модель относительно новых координат Origin’а. Если модификатор Mirror не включен, то включите его и выставьте его параметры, как было показано выше.
Когда мы выставляли Origin, мы создали вспомогательную точку A1 и, соответственно, ребро AA1, которые нам больше не нужны. Выберите в режиме редактирования объекта вершину A1и удалите ее, нажав клавишу ‘X’ или ‘Delete’ (не на цифровой клавиатуре) в открывшемся меню удаления “Delete” выберите «Vertices»).

Посмотрите на uv развертку в окне редактора развертки и изображения (UV/Image Editor). Развёртка не изменилась, поскольку новые отзеркалированные вершины ангара появятся только после применения модификатора отражения. Забежав вперед, скажу, что uv развертки всех четырех частей наложатся друг на друга после применения модификатора, т.е. результирующая uv развертка сложится по осевым линиям u и v (по сути x и y для uv пространства/плоскости заменены на u и v для того, чтобы избежать путаницы), как если бы вы свернули лист бумаги в четыре раза, превратив, например, лист формата А4 в лист формата A6. Вот такая особенность зеркалирования существует в Blender’е.

Выберите все вершины на uv развертке (клавиша ‘A’) и закрепите их, нажав клавишу ‘P’, чтобы они не расползлись после повторного создания uv развертки модели или её части, если такое потребуется. В результате данной операции «запиненные» (закрепленные) вершины развёртки будут выделены красным.
Не забывайте, что горячие клавиши в Blender’е работают только для области, в которой находится курсор мыши, т.е. если вы хотите сделать какие-либо действия с uv разверткой, то курсор мыши должен находится в пределах окна Редактора UV/Изображения. Если же вы хотите использовать горячие клавиши для каких-либо операций с 3D моделью (переместить ее, перейти в режим редактирования вершин, сделать или обновить uv развертку и т.д.), то курсор мыши должен находиться в окне 3D вида).

Давайте перед применением модификатора зеркалирования создадим копию ангара. Выберите в режиме объекта Правой Кнопкой Мыши модель ангара и нажмите сочетание клавиш Shift+D. Теперь нажмите и удерживайте клавишу ‘Ctrl’ и переместите мышь влево или вправо, чтобы переместить созданную копию ангара в соответствующее направление, после чего подтвердите новую позицию копии ангара щелчком Левой Кнопки Мыши или нажатием клавиши ‘Enter’.
Стоит отметить, что зажатая клавиша Ctrl во время перемещения объекта (клавиша ‘G’) позволяет перемещать его с заданным шагом сетки, а однократное нажатие клавиши ‘X’, ‘Y’или ‘Z’, ограничит перемещение объекта по одной из соответствующих осей. Нажатие ещё одной клавиши, символизирующей другую ось, добавит соответствующую ось к уже выбранной (или выбранным). Добавление третьей оси для перемещения вернет вас к режиму перемещения объекта по умолчанию, т.е. по трем осям (икс, игрек и зэд).

Помимо добавления осей, по которым может производиться перемещение объекта или его составных частей, в Blender’е существует возможность исключать оси из списка активных. Удерживая клавишу Shift и нажав одну из клавиш, символизирующих ось (X,Y или Z) позволит вам исключить соответствующую нажатой клавиши ось из списка осей, доступных для перемещения по ним вашего 3D модели или ее части.


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

Давайте на время забудем про созданную копию ангара и вернемся к его оригиналу, с которого она была снята.
После создания копии ангара примените модификатор зеркалирования на оригинальной модели, для чего, находясь в режиме объекта, нажмите кнопку «Apply» во вкладке модификатора зеркалирования. Если в верхней части Blender’а и/или в позиции мыши появилась надпись “Modifiers cannot be applied in edit mode”, выйдите из режима редактирования вершин/ребер/поверхностей (клавиша ‘Tab’) и примените модификатор зеркалирования еще раз. Все дело в том, что применение модификаторов к 3D модели возможно лишь в режиме объекта, но не в режиме редактирования меша.

На самом деле, перед экспортом модели необязательно применять модификатор зеркалирования, а можно поставить флажок напротив опции “Apply Modifiers” в меню экспорта (в Бета версии Blender 2.76 данная опция недоступна, поскольку применение модификаторов выполняется автоматически).


Как можно заметить на рисунке, после применения модификатора зеркалирования у 3D модели остались ребра, расположенные вдоль и поперек осей симметрии, если их удалить (на самом деле, растворив, использовав Dissolve Edges в меню удаления), то количество треугольников можно было бы снизить с 252 до 200 штук, но тогда бы потерялся бы весь смысл того, что мы здесь делали за исключением использования модификатора зеркалирования, поскольку uv развертку пришлось бы обновлять, что превратило бы ее в ту, что была показана для 3D модели, созданной обычным способом. Видите, в каком плачевном состоянии uv развертка (справа внизу) после растворения ребер? Есть возможность снизить количество треугольников, о которых пекутся многие производители игр, особенно для мобильных платформ, и о нем мы расскажем дальше в этой статье.

На этом этапе вы уже можете удалить вершину, которая отвечает за возможность создания дверного проема, что, кстати, снизит на 12 количество треугольников, из которых состоит 3D модель ангара.
Теперь пришло время назначить нашей модели материал, для чего выберите ее Правой Кнопкой Мыши и во вкладке Material/Материал (круг, разделенный на четыре части) в окне Свойств/Properties щелкните на кнопке “New”. Если материал не будет создан, то после импорта модели в Unity для нее будет материал по умолчанию.

Ну вот, ваша модель ангара готова и теперь вы можете экспортировать ее для последующего импорта в игровые движки, например, Unreal Engine 4 , Amazon lumberyard , CryEngine , Unigine , Delta Engine , Unity3D , NeoAxis 3D Engine и других.



На рисунке показан процесс импорта 3D модели в формате FBX в Unity3D, а также уже импортированный ангар и помещенный на сцену. Также на рисунке в меню Ассетов показана 3D модель ангара с перепутанными осями.

Импортируйте в Unity3D какую-нибудь текстуру, желательно бесшовную (более подробно про бесшовные текстуры описано в статье про замощение текстурой, атласы и переодевание персонажей ), например, текстуру бетона . Назначьте материалу модели текстуру в редакторе Unity3D.


На рисунке показана затекстурированная 3D модель ангара. Зелеными стрелками показаны два варианта назначения текстуры: верхняя стрелка с созданием нового материала, нижняя стрелка – назначение текстуры уже созданному материалу. На этом рисунке оси 3D модели уже исправить.

Посмотрите на крышу ангара, его боковые и торцевые стороны, а точнее на текстуру по одну и другую стороны осей симметрии нашей модели. Как вы можете заметить, текстура зеркально отобразилась относительно этих осей. Это является одновременно и плюсом, и минусом. Минус заключается как раз в нечитабельности надписей, нанесенных на 3D модели с подобной разверткой. А вот к плюсам можно отнести отсутствие повторяемости текстуры, как если бы текстура была бы затайлена на поверхности 3D модели.Более подробно о замощении текстуры/тайлинге текстуры можно прочитать в статье .
Отсутствие резких переходов на осях симметрии 3D модели (в отличие от описанных выше искажений текстуры на швах модели) обусловлено тем, что острова развертки симметрично отраженных частей нашей 3D модели в точности повторяют друг друга: координаты вершины uv островов совпадают. Если бы они были разнесены по uv плоскости, то проявились бы несоответствия на краях uv развёртки. Подобного результата добиться другим способом без создания швов по осевым линиям можно, разве что, совмещением uv островов вручную или если позаботиться написанием скрипта на python’е, создав соответствующий add-on. Ну и, конечно, если доводить текстуры на швах модели вручную, как было описано ранее.

Описанный выше способ создания симметричных моделей через предварительное создание uv развертки с последующим зеркалированием отлично подходит для небольших моделей, моделей, использующихся в мобильных играх, а также для LOD’ов (англ. Levels Of Detail - уровни детализации), имеющих много меньше треугольников, по сравнению с основной моделью здания или персонажа. 3D модели с низким уровнем детализации модели служат заменой основной хорошо проработанной 3D модели для отображения на больших расстояниях от камеры в игровых сценах с целью снижения нагрузки на GPU и/или CPU. В онлайн генераторе персонажей Character Generator от Autodesk LOD’ом можно назвать уровень детализации Crowd, генерируемый по желанию вместе с lowpoly моделью. С другой стороны, для AAA проекта, LOD’ами могут являться и Crowd, и Low, и, в некоторых случаях, даже Medium poly персонажи.


Посмотрите на рисунке ниже, сколько места освободилось на uv развертке, а значит, размеры островов развертки можно увеличить, что поднимет разрешение текстуры на каждой отдельной частью 3D модели персонажа или здания, следовательно, увеличит разрешение текстуры 3D модели вцелом.


Зеркалирования позволяет не только снизить занимаемое разверткой место на uv плоскости или увеличить качество текстуры модели, но и позволяет создавать, например, братьев, ведь не обязательно при скульптинге включать зеркальное отражение. Также такой подход может использоваться для создания двух различных карт нормалей, на одной из которых может быть продемонстрирован персонаж до попадания в “мясорубку” боя или лапы монстров, а на другой — после.

Альтернативная uv развертка 3D модели ангара в Blender. Избавляемся от бросающейся в глаза повторяемости текстуры.

Однако всем и всегда хочется сократить затраченное на моделирование и текстурирование 3D модели время не только для LOD’ов и примитивных моделей, но и для основной модели. Что же делать в этом случае? На помощь приходит смекалка, наблюдательность и жизненный/игровой опыт. Как мы все знаем из жизни, нельзя одновременно увидеть противоположные стороны объекта (конечно, без использования подручных средств, таких как зеркало или система зеркал, или, например, шейдеров, если говорить о компьютерных технологиях). Следовательно, если разделить uv развертку на две части, например, вдоль продольной или поперечной оси симметрии, то можно вторую часть uv развертки зеркально отразить относительно выбранной оси симметрии, так что не особо придирчивый игрок не заметит того, что текстура модели повторяется.

Выделите Правой Кнопкой Мыши ангар перейдите в режим редактирования меша (клавиша ‘Tab’). Если у вас выбран режим редактирования вершин меша, то для удобства смените его на режим редактирования ребер. Чтобы выбрать режим редактирования ребер меша, нажмите сочетание клавиш Alt+Tab и в открывшемся меню режима выделения выберите ‘Edge’.
Выделите осевые поперечные ребра при помощи Правой Кнопки Мыши в сочетании с клавишей Shift, разделяющее ангар на две части и пометьте их в качестве шва uv развертки (Shift+E > «Mark Seam»).
Ребра меша также можно выбирать и в режиме вершин: нажмите и удерживайте клавишу Alt и кликните Правой Кнопкой Мыши на одном из ребер, проходящих по поперечной оси симметрии, чтобы активировать инструмент loop select, позволяющий выделить сразу ребра, являющиеся продолжением друг друга (образующие или потенциально образующие петлю).


Поместите курсор поверх одной из вершин/ребер 3D модели в одном из окон 3D вида и нажмите клавишу ‘L’, чтобы выбрать часть модели, лежащей в пределах одного из uv островов. Такой режим выбора элементов 3D модели установлен по умолчанию для режима выбора связанных элементов (Select Linked, отмечено фиолетовым на рисунке ниже), но вы можете сменить его, если захотите выбрать подобным способом элементы одной модели; вершины/полигоны, имеющие одинаковый материал; принадлежащие одной развертке; ограниченные крутыми/острыми ребрами; или как в нашем случае, ограниченные швом, и, соответственно, принадлежащие одному острову uv развертки.


Теперь откройте меню развертки, выбрав соответствующую иконку под окном редактирования развертки (на рисунке выше обведен голубым прямоугольником), и выберите пункт Отражения/Mirror, в котором выберите ось, по которой хотите зеркально отразить выбранные вершины uv развертки (можете по желанию выбрать X или Y). Осталось лишь уменьшить масштаб uv развертки. Выберите все вершины, например, нажав клавишу ‘A’ или использовав для этого инструмент прямоугольного выделения (клавиша ‘B’) или инструмент выделения окружностью (клавиша ‘C’). Теперь нажмите клавишу ‘S’, чтобы активировать масштабирование и переместите мышь так, чтобы uv развертка уместилась в выделенном под нее uv пространстве, отмеченном сеткой (или черным фоном, если вы уже успели создать изображение в меню Image). Вы также можете задать коэффициент масштабирования с клавиатуры, если после клавиши ‘S’ введете с клавиатуры “2”, “3”, “4” и т.д. для увеличения масштаба uv развертки или если введете последовательно “0”, “.”, “5”, “0”, “.”, “1” и т.д. для уменьшения масштаба uv развертки. Задание параметров работает не только для масштабирования (причем не только uv развертки, но иобъектов на сцене), но и для других модификаторов!


Операцию зеркалирования uv развертки можно проводить не только вдоль шва. Если перед созданием шва вы выполните зеркалирование выбранных вершин развертки (только теперь их придется выбирать вручную, например, при помощи прямоугольного выделения в окне 3D вида, активируемого клавишей ‘B’), то получите тот же результат.

Также, если вас не устроили параметры масштабирования, вы можете сразу после завершения операции над объектом нажать клавишу ‘F6’, чтобы открыть меню установки параметров последнего действия и изменить их. Клавиша F6 работает не только для модификатора масштабирования, но и для перемещения, выдавливания, вращения и многих других операций, выполняемых в Blender’е.


Вы также можете создать поперечный шов на 3D модели и разнести uv острова в пространстве и совместить противолежащие части ангара (лежащие по диагонали друг относительно друга, и которые не могут быть видны наблюдателю одновременно, за исключением случаев, когда камера – изометрическая, так что в текстуре крыши при пристальном внимании можно и рассмотреть повторение текстуры)


Вы можете попробовать “удалить” (снять маркировку швов с ребер) созданные поперечный и продольный шов и посмотреть, что получится. Однако не стоит проводить такие эксперименты после того, как вы разнесли острова развертки по uv плоскости.


Создаём контейнер из ангара.

Если вы строго выполняли все то, что было написано в данной статье до этого, и сдерживали своё любопытство в том, что будет, если к уже выбранным двум осям, выбранным для зеркалирования модели, добавить третью ось z, то ваш час настал. Те, кто уже попробовал самостоятельно поставить флажок напротив оси z в настройках модификатора отражения/зеркалирования, я надеюсь, также смогут узнать что-нибудь полезное из этой завершающей части статьи.
Полагаю, что вы уже поняли, что для того, чтобы превратить ангар в контейнер, необходимо добавить в модификаторы зеркалирования ось z. Чтобы это сделать, выберите копию ангара, которую мы создали чуть выше, тот самый ангар, на котором был использован модификатор зеркалирования, но не был применен. Откройте панель модификаторов и добавьте ось z к уже отмеченным флажками осям x и y. Теперь отражение четвертушки ангара осуществляется относительно трёх осей, что превращает бывший ангар в контейнер.

Статье про экспорт 3D моделей из Blender’а в Unity3D . Расположение модели на сцене роли не играет, важно только расположение Origin’а относительно центра 3D модели. Origin определяет «точку отсчёта» для модели, т.е., например, в Unity 3D он определяет «нулевые координаты» 3D модели/ориентацию и является точкой, относительно которой производится вращение объекта (через скрипт), т.е. является аналогом pivot point в Blender’е. Сейчас Origin контейнера находится в его центре, так что если перенести контейнер в Unity (применив модификатор зеркалирования до или во время экспорта модели) и перенести его на сцену, выставив ему нулевые координаты в пространстве Unity, то половина контейнера окажется под полом, а половина — над ним, так что мы получим все тот же ангар.


Конечно, можно вручную в Unity3D выставить необходимое смещение по оси y и затем создать префаб объекта с уже установленными координатами (можно еще создать пустышку и сделать ее родителем для 3D модели контейнера, так чтобы потом вращать эту самую пустышку с целью повернуть контейнер вокруг нее, а не вокруг центра контейнера, можно создавать множество лишних костылей), чтобы ящик стоял на полу, а можно уже в Blender’е выставить Origin контейнера в центр его дна. Стоит отметить, что расположение Origin зависит от типа 3D модели и цели, с которой она была создана, а также от дизайнерской задумки. Также Origin играет немаловажную роль при использовании RigidBody в Unity3D, например, при установке центра масс относительно Origin Rigidbody.centerOfMass .
Прежде чем установить Origin в точку с новыми координатами в Blender’е, необходимо применить модификатор зеркалирования, поскольку, как мы заметили раньше в статье, зеркалирование частей модели происходит относительно этого самого Origin. Кстати, перемещение вершин в режиме редактирования меша с включенным Clipping’ом является отличным способом изменить размер своей модели без использования модификатора масштабирования (конечно). Без включенного clipping’а – отличным способом создать сразу четыре одинаковых 3D модели без создания копий модели.

Чтобы изменить взаимное расположение меша и Origin’а перейдите в режим редактирования объекта (‘Tab’), выберите все вершины/ребра/полигоны меша (‘A’) и переместите их (‘G’), используя клавишу ‘Ctrl’ для перемещения с шагом.

Еще одним способом установки Origin’а является использование 3D курсора. Посе применения модификатора зеркалирования выберите в режиме редактирования меша все нижние вершины контейнера (‘B’) и нажмите сочетание клавиш Shift+S, чтобы открыть меню шага “Snap”, и выберите в нём пункт «Cursor to Selected», чтобы установить 3D курсор в геометрический центр выбранных вершин (более подробно про выставление 3D курсора вы можете прочитать в упомянутой статье про экспорт объектов в Blender 3D). Теперь выйдите из режима редактирования меша (вернитесь в режим объекта) и в панели, расположенной под окном 3D вида, выберите вкладку объекта “Object”, после чего в выпадающем меню выберите «Transform», в котором, в свою очередь, выберите «Origin to 3D Cursor”, чтобы установить Origin контейнера в координаты 3D курсора.
Вместо заключения.

Используя подобную технику создания 3D моделей при одном и том же размере текстуры можно добиться более качественного отображения текстуры на 3D модели. Данный подход отличается отсутствием необходимости создания дополнительных швов развертки, увеличивающих количество вершин 3D модели при экспорте ее в игровые движки. В статье более подробно описана зависимость количества вершин 3D модели от количества швов uv развертки и режима сглаживания 3D модели. Однако такой подход приводит к повторяемости текстуры на сложенных друг на друга участках развертки, что, как описано в статье, решаемо.
Описанный в статье способ оптимизации 3D модели можно использовать не только для более качественной визуализации 3D модели в игровых движках, таких как NeoAxis 3D Engine 15 948

Продолжаем работу над дизайном скрипки. Эта статья является по своей сути очень подробной инструкцией по тому, как делать UV мапинг и тому, как использовать модуль Render To Texture

Этапы, которые мы рассмотрим:

1. UV -мапинг;

UV

1. UV мапинг

Итак, с моделированием покончено. Теперь переходим к более художественным процессам. Текстуры, которые нам предстоит подобрать и нанести на модель могут много больше, чем полагает большинство начинающих дизайнеров.

Хорошие текстуры способны формировать отличную визуальную составляющую, вытягивая тем самым порой кривую модель и, наоборот, плохие текстуры, плохо подобранные могут испортить даже очень качественную сетку. В основе качественного текстурирования лежит корректный UV -мапинг (uv mapping). Именно правильно созданные UV развертки являются верным залогом качественных текстур. Это базис!

С него и начнем:

При работе со скрипкой я решил не обращаться к сторонним приложениям типа UV Layout или Unfold 3 d . Мне захотелось обойтись лишь силами Unwrap UVW среды 3 ds max 2015. У модификатора этой версии множество инструментов, делающих uv -мапинг достаточно комфортным, чего не скажешь о более ранних версиях. Также я не стал вопреки своей профессиональной привычки пользоваться сторонними пакетами для 3 d -текстурирования. Лишь Photoshop и Render To Texture . Ведь швы никуда не исчезают…

Начинаем с основы. Добавляем к ней модификатор Unwrap UVW :

Далее заходим в UV Editor и выбираем команду Flatten Mapping :

Настройки Flatten оставляем по умолчанию, жмем Ok :

Начинаем сортировать UV карту. Как правило, если я использую Flatten Mapping в качестве стартовой токи для раскладки, то стараюсь выделить все мелкие кусочки (UV зерна) и выкинуть их за пределы квадратного поля текстуры. В начале работы фокусируемся на самых больших элементах, а мелочь после:

Результат сортировки:

Теперь я выделяю основные части, так удобнее отслеживать полигоны:

И перехожу во вьюпорт макса, чтобы отследить выделение на самой модели. Как видите попадаются полигоны, которые не выделились. Это те полигоны, которые оторваны от основной части и находятся в «зернах», которые мы выкидывали из текстурного поля несколько ранее:

Выделяем эти полигоны отдельно:

Теперь все элементы собираем вместе и выделяем. Снова переходим в Mapping и выбираем Normal Mapping . Здесь следует подобрать экспериментальным путем направление проецирования. Правильное направление даст вам форму основу деки максимально похожей на истину:

Теперь самое время применить к нашей модели материал с картой Checker (шахматка). Сейчас я решил использовать в качестве проецируемой текстуры не банальную черно-белую шахматку, а цветовую карту с цифрами. Ей удобнее пользоваться:

Регулируем тайлинг, чтобы квадратиков стало больше. В 3 ds max Design за тайлинг отвечает показатель Size :

Судя по тому, что квадратики выглядят как прямоугольники, очевидно UV карта сильно сжата. Д авайте растянем ее вертикальным масштабированием:

Примерно такой результат должен получиться. Контролировать процесс можно по квадратикам. Как только они станут максимально квадратными, процесс можно закончить:

Я еще немного регулирую размер основных фрагментов и ориентирую их в квадратном поле наиболее оптимальным образом; так, чтобы потом удобнее было работать на стадии текстурирования:

Пришло время заняться мелкими фрагментами. Это внутренние грани вырезов деки – эфов:

Очевидно, здесь придется немного попотеть – вручную осуществить сшивку швов (Stich Selected ). Но прежде чем мы займемся этим советую назначить команду stich selected на какую-нибудь горячую клавишу, иначе замучаетесь, ведь применять эту команду предстоит с частотой пулеметной очереди. Переходим к меню Customize-Customize User Interface :

Проводим сшивку. Выделяем во вьюпорте ребра, обозначенные зеленым (не соединенный шов), переходим в редактор UV и видим два красных ребра. Это и есть два кусочка, которые нужно сшить:

Далее снимаем выделение с ребер и выделяем только одно какое-то ребро в редакторе UV . Выделенное ребро примет красный цвет, а ребро, соответствующее ему станет синим. Тем самым 3ds max указывает нам на нужные ребра, которые нужно сшить:

Жмем клавишу, которую назначили на команду Stich (в моем случае это клавиша S ). Когда этот процесс будет полностью закончен, мы получим примерно такой результат:

Применяем команду Tools Relax (Распустить), чтобы снять напряжения с фрагмента и разровнять UV :

Роспуск осуществляем по полигонам:

Следует несколько фрагментов разделить, чтобы разместить в квадратном поле:

Теперь стоит выровнять ребра по горизонтали и по вертикали, т.к. если присмотреться во вьюпорте, легко можно понять, что эти ребра абсолютно ровные как по горизонтали, так и по вертикали:

Выделяем полностью все точки ребра (только одного ребра) и жмем кнопку выравнивания по горизонтали:

Также поступаем с вертикальными ребрами:

В результате мы должны получить примерно такой результат:

Далее нам следует упаковать UV карту. Обратите внимание, что полоски, которые являются внутренними гранями вырезов – эфов значительно меньше оснований, поэтому их следует уменьшить (опять – таки ориентируйтесь по цветовой карте во вьюпорте, квадратики должны быть везде одного размера, тогда разрешение текстуры на все поверхности будет одинаковым). Результат упаковки:

В заключение я всегда запекаю шаблон, для последующего применения в фотошопе. Для этого заходим в Tools – Render UV Template.

Читай эксклюзивные статьи первыми

Здесь всего лишь выбираем разрешение. Я выставляю разрешение 4 k (4096 x 4096). Как можете понять текстура будет квадратной. Сохраняем готовый шаблон в формате png с альфа-каналом (в этом вся суть, он должен быть прозрачным):

После обязательно сворачиваем стек, чтобы сохранить UV координаты в геометрии модели:

У меня получился такой результат:

Аналогично проводим работу с остальными элементами. Это, например, кант деки:

Гриф скрипки:

Однако с головкой скрипки мы поработаем несколько иначе. Она имеет более сложную форму, не имеющую прямых поверхностей. Можно удалить половину головки и размапить в UV только половину, а затем создать зеркально симметричную половину с помощью модификатора Symmetry . Так меньше работы:

Далее снова выделяем весь объект и применяем Flatten Mapping для начальной раскладки:

Получаем такой результат:

Далее я начинаю делить отдельные фрагменты (Break ), такие как спираль на рисунке ниже. Если этого не сделать, то распускание подобных элементов будет более проблематичным, еще я сшиваю отдельные фрагменты в одно целое:

К отделенному кусочку мы применим планарное проецирование и выбираем соответствующую ось. Вы поймете, что ось выбрана правильно, когда плоскость проецирования модификатора Unwrap UVW будет параллельна обрабатываемой поверхности:

Результат:

Обратите внимание, что фрагмент расположился в квадратном поле текстуры, заняв его практически полностью – верное свидетельство того, что направление проецирования (ось проецирования) выбрано правильно.

Результат:

В случая, когда не получается сразу распустить с привязкой на ребра, повторите процесс с привязкой на полигоны (варьируйте способы в зависимости от ситуации).

Обратите внимание на разницу в размерах квадратов текстуры:

Повторите процедуры с остальными фрагментами, которые описаны в этом способе и чуть ранее:

После чего упакуйте текстуру в квадратное поле:

Не устану повторять важные моменты: сверните стек модификаторов, чтобы прописать UV координаты в меш. Только после этого можно считать создание uv развертки законченным. Далее следует добавить Symmetry и свернуть стек еще раз:

После обработки всех элементов мы получим примерно такой результат:

2. Подбор текстур, перепекание на UV

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

Для канта деки скрипки я подобрал немного другую текстуру, чтобы выделить фактуру дерева на нем немного больше:

Обратите внимание на мост скрипки, который натягивает струны:

Чем-то напоминает текстуру пробки. Я сумел подобрать что-то подобное:

Не совсем то. Поэтому я подобрал более древесную текстуру (на стадии композитинга совместим эти текстуру и постараемся приблизиться к оригиналу):

К темным деталям скрипки типа грифа и струнодержателя я подошел немного оригинально. Я не стал «закрашивать» эти элементы в сплошной черный. Вместо этого я подобрал готовый материал VRay , имитирующий карбоновый пластик. Из него я выделил базовую текстуру, которую и применил дальше к темным деталям:

Базовые текстуры мы подобрали!

Как видите, не густо.

С этим мы и будем работать.

Теперь переходим к запеканию текстур. Рассмотрим этот процесс также на основе деки. Прежде всего к ней снова нужно применить модификатор Unwrap UVW , зайти в UV редактор и сохранить UV пресет.

Его мы используем, чтобы перепечь текстуру и чтобы вернуть UV координаты, ведь в процессе перепекания базовых текстур на UV , изображенных выше, координаты будут сбиты.

Сохраняем:

Теперь настраиваем материал и применяем его к нашей основе:

В канал Diffuse закидываем первую текстуру для основы деки и грифа:

Добавляем модификатор UVW Map , чтобы настроить проецирование (вот с этого момента как раз UV координаты сбиваются, для этого мы их и сохраняли немного ранее):

Получаем вот такой результат:

Я немного меняю показатели Size , чтобы подкорректировать тайлинг, также можно поиграться со значениями сдвига Offset :

После всех настроек сворачиваем стек:

Теперь жмем клавишу «0», чтобы вызвать диалоговое окно Render To Texture . Как только вы выделите свой объект, он тут же загрузится в список Object To Bake :

В том окне мы и будем проводить т.н. texture baking. Для дальнейшей работы нам потребуется визуализатор Vray. Благодаря ему мы сможем отрендерить текстуры без запекания освещения (позже я покажу вам разницу):

Теперь переходим к разделу Output , чтобы настроить выводные данные. Здесь мы жмем кнопку Add (Добавить), появляется список добавляемых элементов:

В этом списке мы выбираем для рендеринга элемент VRayDiffuseFilterMap :

Далее настраиваем разрешение запекаемой текстуры 4096 x 4096 пикселей (наподобие того как мы рендерили шаблоны), на всякий случай включите замочек, чтобы сохранились пропорции:

Текстуру также как и шаблоны сохраняем в формате png с альфа-каналом:

В Target Map Slot выбираем Diffuse Color , чтобы указать программе, что в канале карты должна находиться цветовая карт (Diffuse Color ):

Теперь жмем кнопку в самом низу Unwrap Only , в стеке модификаторов появляется Automatic Flatten UVs . Эта штуковина проецирует имеющуюся UV карту и запекает по ней текстуру:

Он работает аналогично модификатору Unwrap UVW , в нем даже кнопки такие же, выбираем его и открываем редактор UV :

Как видите uv карта не та, что мы создавали. Кстати только что исходные UV координаты сбились еще раз. Вот почему важно было их сохранить. В редакторе жмем File Load UV :

И загружаем сохраненную UV карту:

Результат:

И жмем кнопку Render , начинается запекание текстуры, открывается два фрейм буфера: Windows Frame Bufer , который нам не нужен, вслед за ним открывается VRay Frame Bufer . В нем для наглядности я переключаюсь с RGB Color на VRayDiffuseFilterMap , та самая карта, которую мы и запекаем:

Обратите внимание на эффект запекания свето-теней на текстуре:

VrayDiffuseFilterMap исключает подобные недоразумения .

Теперь применяем к нашей основе созданную UV текстуру:

Однако нужно вернуть сбитые многократно UV координаты на свое место. Для этого добавляем в стек модификатор Unwrap UVW :

Открываем редактор UV и загружаем ту же самую карту, которую сохраняли:

Результат:

В итоге текстура ложится так как надо.

Так мы и подготовили необходимые текстуры для работы в 3ds max.

Теперь разберем еще один важный момент связанный с проецированием UVW Map . Итак кант деки:

Я также применил к нему модификатор UVW Map , но проецирование в отличие от предыдущего режима Planar назначил режим Cylindrical . И обратите внимание, как распределяется текстура:

Возникает радиальное растяжение на нижней части канта. Это исправляется совмещением разных текстур в Photoshop . Т.е. сначала мы перепекаем на текстуру такой вариант как на картинке. Затем я меняю направление проецирования и повторяю процесс перепекания.

В результате у нас получается две или более версий текстуры, которые предстоит композить в фотошопе.

.

UV-развёртка представляет собой самый гибкий метод представления двумерных текстур на объекте трехмерного формата. Такой технический процесс поможет правильно разместить 3Д модель на плоскости, создать UV-развертку. Это помогает сделать модели максимально реалистичными и подробными. Такими же преимуществами не могут похвастать никакие процедурные текстуры.

Поближе познакомиться с особенностями реализации такого процесса можно на примере картонной коробки. По своей природе она является параллелепипедом. Однако её легко превратить в плоскую развертку, если разрезать объект по линиям изгиба. Так и будет создана UV-развёртка. Вы сможете быстро понять, какая грань отвечает за верх или низ коробки, так как именно вы занимались её разрезанием.

Программа Блендер существенно расширяет возможности пользователя, так позволяет не только вращать развертку в любом направлении, но также менять масштабирование, параметры и размещение.

Не менее интересным примером UV-развёртки станет картографическая проекция. Специально обученные люди или программные средства превращают сферическую поверхность Земли в плоскость. Метод имеет ряд недостатков, так как отображает страны у полюсов меньшими, а у экватора большими, чем на самом деле.

Картинка выше наглядно показывает отличия между отображением текстур в трехмерном варианте и с помощью развертки. При этом на развертке у объекта есть не только данные о координатах X,Y,Z , но и U,V .

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

Для работы с большинством обычных трехмерных моделей приложение Блендер использует стандартный автоматический набор алгоритмов, но при необходимости их можно изменить. Если же нужно сформировать развертку сложных трехмерных моделей, стоит воспользоваться специальными швами. Их можно назвать ножницами, которые по указанию программного компонента задают направления разрезов трехмерной модели.