Выравниваем uv развертку в блендере 2.49. Настраиваем UV-map для рендера в Cycles. UV-map - определение

Скачать на Телефон 06.04.2019
Скачать на Телефон

В данной статье рассматривается вопрос создания 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

Объекты 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).

Blender дает вам превосходный и удобный в использовании набор инструментов для разрезания и выравнивания меша модели, с тем чтобы сделать применение 2D текстур более точным и эффективным. Не следует путать: UV развертка не имеет ничего общего с "ультрафиолетом", общей расшифровкой аббревиатуры UV . Вместо этого, оно означает назначение 2D координат для всех вершин.

Но они же имеют трехмерные координаты? Да. Как вы знаете, каждая вершина из меша уже имеет X , Y и Z координаты. Но если вы сделаете копию меша, разрежете и развернете его на плоскости, каждая вершина также будет иметь другой набор координат, более подходящим для плоского рабочего пространства. Как правило, вы бы обозначали оси в 2D пространстве X и Y , но они уже заняты. Так, что это будут U и V . А где W ? Не спрашивайте.

Если Вы никогда раньше не имели дело с UV разверткой и проецированием, мы настойчиво рекомендуем изучить раздел туториал в этой главе. В Blender UV развертка является высоко интерактивной функцией, и чтобы понять её, лучший способ это использовать её.

Unwrapping

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

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

Клавиша U отображает Unwrap меню в 3D окне. Она работает только в режиме выбора граней.

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

Простейший из них являются Project from View (Проекция из вида) и тесно связан с Project from View (Bounds) (Проекция из вида [Границы]). Эти способы используют меш так, как он виден в текущем 3D окне, накладывают его на плоскость прамо в UV редакторе. (Технически это UV /Image Editor , но поскольку мы работаем сейчас только с UV , мы называем его UV редактор для краткости.)

Рисунок UVD.07: 3D изображение сферы, сплющенная с помощью "Project from View (Bounds)".

Рисунок UVD.08: 3D изображение Сюзанны, сплющенная с помощью "Project from View (Bounds)".

Project from View может быть хорошим выбором, если вам нужно быстро создать текстуру, которая близко соответствует форме меша.

Рисунок UVD.09: Текстура рыбы, развернутая с помощью "Project from View".

Единственное различие между этими двумя способами заключается в том, что Project from View создает UV приблизительно размером меша в 3D окне, в то время как Project from View (Bounds) заполняет все пространство UV плоскости.

Некоторые из других способов также хороши для быстрой развертки на объекты, которые появятся на фоне, или только на короткое время. Речь идет о способах Cylinder , Cube и Sphere . Каждый хорош для развертки объектов, которые приблизительно совпадают с примитивами по форме. Тут будут разделы, которые не совсем корректно наносятся на текстуру или вызывают искажения. Если вы не уверены, что они будут хорошо работать, сначала попробуйте. Вы никогда не поймете, пока не попробуете.

Другие способы, тем не менее, наиболее полезены для развертки и они называются просто Unwrap . В них используется процедура называемая "Angle Based Flattening" (Развертка на основе угла) в сочетании с пометкой швов в режиме редактирования и это дает прекрасные результаты при минимальных усилиях.

Швы

Для того, чтобы это могло правильно работать, вы должны сначала сказать инструменту "Angle Based Flattening" (Развертка на основе угла), где разрезать меш. Это достигается путем добавления швов на вашей модели.

В режиме редактирования меша модели, швы добавляются путем выделения ребер, нажатия Ctrl+E и выбора пункта Mark Seam (Отметить Швы) из появившегося меню Edge Specials . Выделенные швы появляются в виде толстых оранжевых ребер. Шов может быть снят путем выбора ребра, нажатия Ctrl+E и выбора пункта Clear Seam (Очистить Швы).

Рисунок UVD.02: Ctrl+E - меню "Edge Specials" для маркировки швов.

Хотя будет работать любой метод выделения, зачастую полезно при маркировки швов работать в режиме выделения ребер. Выберите и используйте Alt+ПКМ , чтобы выбрать все ребра меша по кругу, одновременно.

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

Швы могут быть также размещены таким образом, чтобы целые части модели были отделены от других. Эти отдельные фрагменты модели называются "islands" (островами).

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

Выбор узлов в UV редакторе

Если конфигурация, достигнутая в команде Unwrap не совсем то, что вам нужно, можно скорректировать её. При рассмотрении выделения узла (узлы название для вершин в UV редакторе), применяются следующие правила и способы:

ПКМ , клавиша B для прямоугольного выделения и двойное нажатие клавиши B для кругового выделения, все эти функции, работают так же как и в режиме редактирования.

Нажатие клавиши C позволяет выбрать всю грань в UV редакторе с помощью нажатия ПКМ . Когда вы в этом Active Face Select режиме, который также доступен из меню Select на заголовке, небольшой лиловый квадрат отображается в нижнем левом углу UV редактора.

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

Здесь существует еще множество способов выделения, которые может быть немного трудно понять сначала, их можно найти в меню Select : Stick UVs to Mesh Vertex и Stick Local UVs to Mesh Vertex .

Опция Local установлена по умолчанию. Умная вещь, реализованная в UV редакторе, заключается в том, что одна вершина из 3D меша может иметь много копий в UV редакторе на разных гранях. Это демонстрирует рисунок:

Когда вы находитесь в режиме Local , ПКМ выделение одного из этих узлов выберет все копии вершины 3D меша, которые находятся в одной точке в UV пространстве. Это не будет отличаться от выделения и преобразования вершин и ребер меша в режиме редактирования.

Разница происходит при переходе в режим Stick UVs to Mesh Vertex (не Local ). Когда эта опция выбрана, маленькая иконка с двумя желтыми вершинами появляется в нижнем левом углу UV редактора. Выбор теперь работает следующим образом: ПКМ выделение любого узла, также будет выделять все другие узлы, которые разделяют вершину 3D меша, независимо от их местонахождения в UV пространстве.

Это особенно полезно, когда ваш меш состоит из многих "островов", и вам необходимо найти, какие части одного острова соответствуют каким частям другого.

Закрепление развертки

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

Закрепление и живая трансформация развертки

Области развертки, которыми вы довольны, могут быть заморожены с помощью "закрепления". Нажатие клавиши P закрепляет отдельные узлы. Установка частей развертки, которыми вы недовольны, так же просто, как и закрепление нескольких ключевых узлов в пределах плохой области и перемещения их в лучшую конфигурацию. Затем, после закрепления хороших областей, Blender может повторно развернуть меш, для получения более эффективных результатов. Это использует все закрепленные узлы в качестве отправной точки для следующей попытки.

Повторную развертку можно сделать из 3D окна с помощью меню клавиши U как и раньше, или непосредственно в UV редакторе с помощью Ctrl+E .

Одна великая вещь Blender, которую можно сделать для того, чтобы сделать этот процесс более интуитивным, называется Live Unwrap Transform , и может быть доступна только через меню UVs на заголовке UV редактора.

Когда Live Unwrap Transform включен, нет необходимости повторно разворачивать ваш меш после закрепления и корректировки. Развертка настраивается в режиме реального времени, когда вы растягиваете и сжимаете закрепленные узлы, давая вам больше визуальной обратной связи, которая позволяет быстро оптимизировать развертку.

Когда вы получите развертку, которую вы хотите, то не забудьте отключить Live Unwrap в UVs меню, чтобы вы случайно не cдвинули закрепленный узел и не разрушили вашу работу.

Инструменты Раскрашивания

Blender инструменты раскрашивания могут быть использованы для раскрашивания существующих изображений или для создания новых, и могут быть использованы либо в UV/Image редакторе или непосредственно в 3D окне. Для того чтобы иметь возможность раскрашивать текстуру модели в 3D окне, у вас должны быть установлены UV координаты для граней меша с помощью развертки.

Режим Texture Painting (Раскрашивание текстуры) доступен через меню Image на заголовке UV редактора заголовка или путем изменения объектного режима на заголовке 3D окна на режим Texture Paint .

Если вы раскрашиваете в 3D окне или в UV/Image редакторе, вы должны выбрать изображение в UV/Image редакторе (который мы называем редактор изображений с того момента, как мы работаем с функциями UV ). Если у вас есть загруженное изображение по какой-либо другой причине (текстуры, фон и т.д.), вы можете выбрать его по выпадающему селектору Imageblock на заголовке Image редактора.

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

Нажатие клавиши C в режиме Texture Painting в редакторе изображений отображает панель Image Paint . Почти идентичная вкладка под названием Paint , доступна в панели Editing (F9) для использования в 3D окне.

Раскрашивание осуществляется путем перетаскивания ЛКМ через изображение или модели в 3D окне. Главные средства управления кисти:

Color (Цвет): Выбирается нажатием ЛКМ на иконке выбора цвета. Это основной цвет, используемый для раскрашивания.

Opacity (Непрозрачность): Насколько сильно раскрашивание смешивается с текущим изображением. Значение Opacity 1,0 окрашивает в цвет, полностью перекрывающий существующее изображение. 0.50 использует цвет, который будет применяться лишь на 50%.

Size (Размер): Настраивает размер раскрашивающей кисти.

Falloff (Спад): жесткость кисти. Настройка Falloff на 1.0 создает кисть с жесткими краями. Уменьшение его на 0,0 создает кисть с очень мягкими краями.

Spacing (Интервал): Как часто кисть "отпечатывает" свой цвет, когда вы её перетаскиваете. Раскрашивание в Blender в действительности не является постоянным, как если бы вы рисовали масляными красками в реальном мире. Редактор изображений имитирует непрерывное раскрашивание отпечатывая цвет каждые несколько пикселей, в виде кисти. Величина Spacing это доля значения Size и определяет, насколько далеко друг от друга происходят эти отпечатки. Если Size установлен в 45 и Spacing установлен в 10, кисть будет раскрашивать новый отпечаток цвета каждые 4,5 пикселей (10% от 45).

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

Airbrush (Аэрограф): Включение этой опции заставляет краску поступать до тех пор, пока у вас нажата LMB , даже если кисть находится на месте. Как правило, раскрашивание происходит только при перемещении кисти.

В дополнение к раскрашиванию цветом, можно также раскрашивать Blender текстурой, предоставляя еще больше деталей вашему раскрашиваемому изображению. Все текстуры, которые могут быть созданы в панели Texture (F6 ) могут быть выбраны в выпадающем меню в нижней части палитры Image Paint . Эта текстура будет использоваться наряду с цветовой палитрой, когда вы раскрашиваете.

Режимы рисования

Верхняя часть панели Image Paint и вкладки Paint управляет режимом кисти.

Draw (Рисовать): Это обычная кисть раскрашивания, которую вы уже использовали.

Soften (Смягчать): Эта кисть размывает изображение, когда вы используете её.

Smear (Мазок): Перетаскивание с этой кистью тянет и мажет изображения.

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

Когда выбрана кисть Clone , текстура из выпадающего меню на нижней части панели Image Paint заменяется селектором изображений. Вы можете выбрать любое другое изображение, которое уже был загружено в Blender. Когда вы это сделаете, изображение появится на заднем фоне с 50% прозрачности. Раскрашивание кистью Clone копирует часть изображения под кистью в активное изображение. Фоновое изображение может быть перемещено с помощью нажатия ПКМ , с тем чтобы выровнять часть с различными разделами вашего главного изображения.

Рисунок UVD.20: Индикатор несохраненного изображения.

Один последний забавный кусочек

Для заключительного крутого приема, попробуйте щелкнуть по иконке Lock (Замок) на заголовке редактора изображений. Если объект виден в 3D окне, и выполняется раскрашивание в редакторе изображений, то, нажатие Lock, покажет вам раскрашивание в 3D окне в реальном времени. Чтобы увидеть его, либо включите режим Texture Paint в 3D окне или установите режим отображения объектов на Textured .

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.

UV-map - определение

Под UV-map подразумевают т.н. карту вершин объекта созданного мэш-сеткой, на которую переносится двухмерное растровое изображение.

UV-развертка - процесс переноса 3D координат на 2D-изображение.

Создание UV-развертки

Выбираем объект ПКМ и переходим в "Режим правки " (TAB ). Выделяем грани для реза (Shift-ПКМ - выделение рёбер поштучно; Shift-Alt-ПКМ - выделение всех точек в грани).

Выделение граней реза для uv-развертки

Жмём Ctrl-E и выбираем появившемся списке пункт "Пометить шов ".

Пометка шва реза для uv-развертки

Меняем набор окон в списке преесетов на "UV-Editing ". Выделяем все узлы выбранного объекта объекта - A . Жмем U и выбираем из списка меню "Развернуть ".

Создание uv-развертки

Полученые сетки развертки в окне "Редактор UV/изображений " компануем на листе так, чтобы было удобно в последствии их разукрашивать в Blender или в стороннем редакторе (GIMP, Adobe Photoshop и т.п.). Для этого можем использовать следующие горячие клавиши: L - выбор отдельного элемента; G - перемещение элемента; R - вращение элемента; S - изменение размера элемента.

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

Создаем изображение текстуры нашего объекта выбрав пункт меню "Изображение > Создать изображение ". Настраиваем параметры по необходимости или оставляем по умолчанию, жмем клавишу "ДА ". Размер изображения в пикселях рекомендуется выбирать кратным числу 2 с целью оптимизации работы с памятью (пример: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048). Другие размеры допустимы, но могут оказаться не рациональными, конечный выбор можно произвести исходя из производительности в каждом конкретном случае, предворительно проведя ряд эксперементов.

Теперь можно перейти к раскрашиванию текстуры. Для это можно воспользоваться инструментами Blender. Выбираем режим "Кисть ". Выводим панель инструментов - T . Приступаем к разукрашиванию.

Режим создания текстуры для uv-развертки

ВАЖНО! После создания изображения текстуры, его необходимо сохранить во внешний файл. Выбираем пункт меню "Изображение > Сохранить изображение как ".

Настраиваем UV-map для стандартного движка рендера в Blender

Перейдя в стандартный набор окон по умолчанию ("Default "). Выбирает закладку "Текстура " в окне "Свойства " (предварительно создав материал в закладке "Материал "). Создаем новую текстуру. Выбираем тип текстуры "Изображение или фильм ". В пункте "Изображение " выбираем файл сохраненной текстуры нажав кнопку "Открыть ".

Выбираем тип текстуры для uv-развертки

Чтобы привязать сетку координат к текстуре, выбираем в пункте "Отображение " в значениях "Координаты " > "UV ".

Привязка текстуры к uv-координатам

Теперь, нажав F12 для рендера полученой сцены, мы увидим результат - привязка текстуры к uv-координатам нашего объекта.

Настраиваем UV-map для рендера в Cycles

Если мы хотим рендерить сцену в Cycles, нам придётся задавать координаты в окне "Редактор узлов " при помощи узлов (нодов). Для этого мы можем выбрать из набора окон "Compositing ". Затем в окне "Редактор узлов " активировать пункт "Использовать узлы ".

Выставляем узлы добавляя их при помощи горячей клавиши Shift-A или при помощи пункта меню "Добавить ".

Нам потребуются следующие узлы: "Текстура " > "Изображение-текстура " и "Ввод " > "Текстурные координаты ". В узле "Изображение-текстура " кнопкой "Открыть " выбираем необходимую текстуру из файлов. Из узла "Текстурные координаты " соединяем UV с Вектор в узле "Изображение-текстура ". После чего можем рендерить сцену.

Выравниваем UV-map

Если нас не устраевает результат полученной автоматически UV-развертки, есть возможность быстро выравнить узлы, при условии, что форма сетки представляет из себя правильный прямоугольник. Для этого выбираем рёбра одного из полигонов и выравниваем их угол строго 0 или 90 градусов. Удобно воспозоваться горячими клавишами S > X > 0 и S > Y > 0 .

Выделяем выровненный полигон, нажимаем клавишу "Пробел " и вводим команду "Follow Active Quads ".



Рекомендуем почитать

Наверх