Uv развертка в blender сложных моделей. Создание развертки для текстурирования с помощью Unwrap UVW. Ссылки для скачивания

Uv развертка в blender сложных моделей. Создание развертки для текстурирования с помощью Unwrap UVW. Ссылки для скачивания

20.03.2019

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 ".

Продолжаем работу над дизайном скрипки. Эта статья является по своей сути очень подробной инструкцией по тому, как делать 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 . Т.е. сначала мы перепекаем на текстуру такой вариант как на картинке. Затем я меняю направление проецирования и повторяю процесс перепекания.

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

.

Давайте немного углубимся в отображение текстур и посмотрим, как точно накладывать текстуры на объекты. Мы рассмотрели основные проекции, но 3D программа будет включать в себя и так называемые UV развёртки. UV развёртки отображают плоское, 2D изображение на 3D объект. И большая часть программного обеспечения будет иметь то, что называется UV-редактором. Вот здесь у нас есть простой куб с шестью гранями. Если я выбираю одну из этих граней, то в UV редакторе мы увидим, какое изображение соответствует это области. Теперь мы можем взять его и перемещать в редакторе, чтобы скорректировать отображение, или мы можем спуститься на UV уровень и фактически управлять им на детальной основе. Таким образом, это дает нам полный контроль над тем, как это изображение совмещается с объектом.

Помните, что изображение - развернутая версия объекта. И если мы возьмём его часть, мы сможем изменять отображение карты на объекте. Это очень простой пример, но редактирование UV развёртки является самым мощным инструментом в работе со сложными объектами. Здесь у нас есть простой персонаж, и у меня есть развертка для него. Это - карта изображения, которую мы используем для персонажа. И Вы можете заметить, что это выглядит уже сложнее. Поэтому давайте посмотрим на то, как она отображается. Если я посмотрю на персонажа в UV редакторе, Вы увидите, как он развернут.

Теперь, вероятно, лучший способ мысленно представить это состоит в том, чтобы подставить на его место выкройку мягкой игрушки. Как бы Вы сложили детали из ткани, чтобы получилась такая игрушка? Ну, у нас есть много частей. Мы можем начать с чего-то простого, например, с его руки, и если я выделяю эту область, то мы увидим, что его рука - это просто цилиндр, который был развернут. И если я перемещаю его, Вы видите, как это изменяет наложение текстуры. Вероятно,наиболее простое, это туловище. Если я выбираю эти области туловища, вы видите, чему они соответствуют. И если я выбираю все это, Вы видите, что все туловище - это одна оболочка или один кусок. И если я перемещаю его, я могу по-другому его отобразить. Или если я перехожу на детальный уровень, я могу точнее настроить отображение.

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

Таким образом, когда Вы работаете с UV, мысленно разворачивайте свои объекты, даже если они сложны, и думайте о том, как бы Вы их сшивали из плоских частей.

В предыдущем уроке мы ознакомились с базовыми методами проецирования текстур: параметрическим проецированием и внедрением текстур в виде проецируемых изображений (As Projection ) или по трафарету (As Stencil ). Данные методы удобны при проецировании простых моделей, однако их может оказаться недостаточно при текстурировании более сложных моделей (такие объекты обычно требуют совместного использования нескольких типов проецирования и (или) коррекции наложения текстурных координат), а для текстурирования моделей, раскрашиваемых вручную, они и вовсе не подойдут. В подобных случаях приходится создавать развертку модели в редакторе проекционных координат UV Texture Editor . С одной стороны, подобная развертка позволяет более тонко настроить параметры проецирования, благодаря чему искажения текстуры оказываются минимальными. С другой стороны, по такой развертке можно нарисовать любую, даже самую замысловатую текстуру, а затем разместить ее на поверхности объекта с учетом развертки. Рассмотрению простых приемов создания и раскраски UV-развертки и посвящен данный урок.

Теоретические аспекты

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

Технически это выглядит следующим образом. Вначале поверхность объекта мысленно разбивается на фрагменты - во фрагменты объединяют находящиеся рядом грани, к которым будет применен один и тот же тип проецирования, а также одинаковый вариант раскраски. После этого для каждого из фрагментов создают развертку и все элементы развертки размещают на отведенном для этой цели поле редактора проекционных координат UV Texture Editor . Затем делается снимок развертки (UV Snapshot ), представляющий собой обычное растровое изображение. Данный снимок загружается в графическом редакторе, например в Adobe Photoshop, где по развертке (ее удобнее всего использовать в качестве верхнего слоя изображения) создается многослойная текстура (то есть развертка непосредственно разрисовывается), которая сохраняется в графическом файле уже в виде однослойного изображения. На последнем этапе необходимо вновь активировать Maya, создать новый материал, подключить у него на канале Color подготовленную текстуру и назначить данный материал модели, в результате чего текстура окажется наложенной на модель в точном соответствии с разверткой.

При проецировании материалов через UV-развертку следует иметь в виду следующие моменты:

  • в силу длительности и большой трудоемкости операций выделения граней и назначения группам граней вариантов проецирования обычно текструрируют несглаженные модели, сглаживают модели уже после наложения текстуры;
  • процесс выделения граней можно существенно ускорить, если выделять грани не обычным образом, а с применением выделяющей кисти, активируемой командой Edit =>Paint Selection Tool (Редактировать=>Выделяющая кисть). У данной кисти следует отрегулировать размер, после чего можно приступать к выделению, которое будет заключаться в рисовании (то есть проведении) данной кистью по выделяемым граням. При случайном выделении ненужной грани операцию можно тут же отменить;
  • обычно приходится выделять много граней, и совсем необязательно, что делать это придется однократно, поскольку далеко не всегда можно точно сказать, какой из вариантов проецирования обеспечит лучшие результаты. Чтобы избежать повторного выделения граней (что на порядок удлиняет процесс работы), в ряде случаев разумнее отдельные наборы граней запоминать в виде выделенных областей, применяя команду Create =>Sets =>Quick Select Sets (Создать=>Наборы=>Наборы быстрого выделения). После этого выделенную область можно в любой момент активировать, воспользовавшись командой Edit =>Quick Select Sets (Редактировать=>Наборы быстрого выделения).

В редакторе UV Texture Editor отображаются развертка с проекционными координатами и текстура. Если текстура не видна, то необходимо щелкнуть по кнопке Show Texture Image (Показать изображение текстуры) либо применить команду Image =>Display Image (Изображение=>Отображение изображения). Если текстура повторяется (а этого не требуется), то следует ограничить границы интервалов U и V , щелкнув на квадратике справа от команды Image =>Image Range (Изображение=>Интервал изображения) и выставив параметры Minimum U и Minimum V равными 0, а параметры Maximum U и Maximum V - 1.

UV-развертку можно использовать при текстурировании полигональных моделей и поверхностей с иерархическим разбиением (Subdivision Surfaces ). Команды, ответственные за работу с UV-координатами полигональной модели, находятся в меню Polygons редактора проекционных координат, а за управление UV-координатами подразбиваемых поверхностей отвечает меню Subdivs .

В окне редактора UV Texture Editor выделенные проекционные координаты можно перемещать, поворачивать и масштабировать. Для этого требуется перейти в режим работы с UV-координатами, применив команду UV из контекстного меню редактора, а затем воспользоваться инструментами Move Tool , Rotate Tool и Scale Tool . Кроме того, в отношении проекционных координат допустимо еще множество самых разных операций, доступных из меню редактора UV Texture Editor . Наиболее важные среди них следующие:

  • Normalize UV s (Нормализовать UVs) - размещает развертку внутри UV-пространства;
  • Flip UVs (Зеркально отразить UVs) - применяется для зеркального отображения проекционных координат;
  • Rotate UVs (Повернуть UVs) - позволяет повернуть выделенные UVs-координаты на строго заданный угол;
  • Map UV Border (Вычерчивание UV-границы) и Straighten UV Border (Выпрямление UV-границы) - предназначены для распутывания границ развертки вдоль выделенных UV-координат, что актуально, например, в случае, если граница образует петлю. Обе операции используются при подготовке к операции Relax UVs , которая работает лучше, если граница распутана. Операция Map UV Border позволяет расположить границу выделенного фрагмента UV-координат вдоль границ квадрата в диапазоне от 0 до +1 или окружности, вписанной в тот же квадрат. Операция Straighten UV Border подобных ограничений не имеет, и полученная после ее применения граница может иметь произвольную форму;
  • Relax UVs (Смягчить UVs) - позволяет распутать внутренние UV-координаты без нарушений границы развертки и, как правило, используется после применения операции Map UV Border либо Straighten UV Border ;
  • Layout UVs (Скомпоновать UVs) - обеспечивает расположение UV-координат так, чтобы они не перекрывали друг друга;
  • Align UVs (Выровнять UVs) - выравнивает проекционные координаты друг относительно друга;
  • Cut UVs (Разрезать UVs) - позволяет разрезать развертку на части вдоль выбранных ребер;
  • Sew UVs (Сшить UVs) - обеспечивает сшивание фрагментов развертки вдоль выбранных ребер;
  • Move and Sew UVs (Переместить и сшить UVs) - позволяет сшить фрагменты развертки вдоль выбранных ребер с перемещением фрагментов друг к другу (меньший фрагмент перемещается к большему);
  • Merge UVs (Слить UVs) - позволяет слить выделенные координаты вместе (таким образом объединяются только координаты, разделяющие одну и ту же вершину); данная операция заменяет обычное сшивание, однако лучше подходит для слияния полигонов с однотипной геометрией, в то время как Sew UVs предпочтительно выбирать при сшивании разнотипных полигонов;
  • Delete UVs (Удалить UVs) - используется для удаления ненужных проекционных координат;
  • UV Snapshot (Снимок UV) - позволяет сохранить расположение UV-координат в графическом файле, который затем может применяться в качестве шаблона для рисования текстуры в Paint Effects или в любом графическом редакторе.

Подгонка развертки под готовую текстуру

Для начала рассмотрим пример текстурирования игральной кости, на разных гранях которой должно быть от одной до шести точек. Сформируйте обычный полигональный куб (рис. 2). Поскольку мысленно разрезать куб по ребрам для получения его развертки не составляет труда, то несложно представить, как будет выглядеть необходимая текстура. Поэтому сразу откройте любой графический редактор, создайте в нем новое изображение размером 600x800, включите сетку и установите направляющие, разбив изображение на три квадрата по вертикали и на четыре - по горизонтали. Нарисуйте в определенных квадратах круги так, как показано на рис. 3. Сохраните полученное изображение в виде файла в формате JPG (рис. 4). Переключитесь в Maya и для отображения текстур в окне перспективы включите режим аппаратного текстурирования, воспользовавшись командой Shading =>Hardware Texturing (Затенение=>Аппаратное текстурирование). Откройте редактор Hypershade , создайте новый Blinn-материал, обычным образом (то есть в режиме As Normal ) подключите на канале Color нарисованную текстуру и назначьте данный материал кубу. Результат окажется совсем не таким, как хотелось бы, поскольку текстура на каждой из граней будет отображена в полном своем объеме, а не по квадратам (рис. 5).

Попробуем исправить ситуацию. При выделенном в окне проекции Perspective кубе откройте редактор проекционных координат, применив команду Window =>UV Texture Editor . поскольку куб является примитивом, то UV-координаты для него генерируются автоматически и потому развертка текстуры уже имеется, но ее положение по отношению к текстуре далеко от желаемого (рис. 6). Имейте в виду, что увидеть развертку в представленном на рис. 6 виде, скорее всего, вы сможете только после уменьшения масштаба ее отображения, что выполняется с помощью мыши точно так же, как и в окне проекции. К тому же обратите внимание, что размер развертки гораздо больше размера текстуры. Поэтому необходимо подогнать развертку по текстуре - в данном случае потребуется операция масштабирования. В окне UV Texture Editor щелкните правой кнопкой мыши и выберите команду UV (это позволит работать на уровне UV-координат), выделите все вершины куба и, воспользовавшись инструментом Scale Tool , уменьшите развертку так, чтобы текстура была наложенам требуемым образом (рис. 7 и 8).

Рис. 6. Развертка в окне UVTextureEditor

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

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

Рассмотрим пример текстурирования обычного полена, в роли которого будет выступать полигональный цилиндр. Текстура на боковой поверхности объекта и торцах должна быть различной, а потому без построения развертки не обойтись. Создайте цилиндр, выделив его, откройте редактор проекционных координат, где будет отображена автоматически назначенная цилиндру как примитиву UV-развертка (рис. 9). Однако, руководствуясь ей, нужный по замыслу вариант текстурирования не реализовать, поэтому переключитесь в режим работы с текстурными координатами (команда UV из контекстного меню UV Texture Editor ), выделите все координаты развертки и удалите их при помощи команды Polygons =>Delete UVs (Полигоны=>Удалить UVs).

Перейдите в режим работы с гранями, нажав клавишу F11. Активируйте выделяющую кисть (команда Edit =>Paint Selection Tool ) и выделите ею все грани боковой поверхности цилиндра (рис. 10). Назначьте данным граням цилиндрическое проецирование, применив команду Edit Polygon s =>Texture =>Cylindrical Mapping (рис. 11). Переместите созданный фрагмент развертки на свободное пространство (рис. 12) - если этого не сделать, то следующий фрагмент развертки будет наложен на только что созданный, после чего разобраться с ними будет проблематично. Из граней верхней поверхности цилиндра создайте новое выделение и назначьте данным граням планарное проецирование, воспользовавшись командой Edit Polygons =>Texture =>Planar Mapping (рис. 13). Переместите полученный фрагмент развертки на свободное пространство. Аналогичным образом создайте фрагмент развертки для нижней поверхности. В режиме работы с UV-координатами (команда UV из контекстного меню) выделите все три фрагмента развертки, уменьшите их масштаб и переместите внутрь UV-пространства (рис. 14). Создайте снимок развертки, открыв из меню Polygons команду UV Snapshot (Снимок проекционных координат) и в появившемся диалоговом окне указав имя файла (поле File Name ), размер (поля Size X и Size Y ) и формат изображения (список Image Format ). Имейте в виду, что изображение должно иметь размер не менее чем 512х512, а лучше - 1024х1024.

Рис. 10. Выделение граней боковой поверхности цилиндра инструментом PaintSelectionTool

Откройте полученный графический файл в любом графическом редакторе (мы выбрали Paint Shop Pro) - рис. 15. Создайте дубликат слоя с разверткой, а затем установите под него слой с фоновым изображением, а также слои со спилами и текстурой коры (рис. 16). Сделайте слой с копией развертки невидимым (рис. 17) и сохраните изображение в графическом файле с объединением слоев (рис. 18). Откройте созданное изображение текстуры (уже однослойной) в графическом редакторе, переведите изображение в режим Grayscale и увеличьте контрастность изображения (рис. 19), сохраните изображение под другим именем.

Переключитесь в Maya, создайте новый Lambert-материал и установите для него на канале Color в качестве текстуры первое созданное изображение. Подключите вторую (черно-белую) текстуру на канале Bump и подберите подходящее значение параметра Bump Depth (мы остановились на значении 0,2). Проведите рендеринг, и вы увидите примерно такое же полено, как представлено на рис. 20.

А теперь несколько усложним задачу: текстурируем объект, полученный из полигонального цилиндра путем экструдирования граней (рис. 21). Попробуем назначить ему такую текстуру, чтобы данный объект стал напоминать набор выстроенных в ряд детских кубиков с буквами алфавита. Сложность в том, что при формировании развертки придется не только учитывать то, какие грани следует объединять вместе, но и добиться минимальных искажений текстуры, поскольку буквы должны иметь одинаковый размер на всех кубиках и не быть растянутыми. Поэтому создайте новый материал, подключите у него на канале Color шахматную текстуру и назначьте данный материал объекту (рис. 22) - изначально ничего хорошего не выйдет, поскольку сгенерированные первоначально для куба UV-координаты совершенно не соответствуют модели.

В режиме работы с UV-координатами выделите все координаты и удалите их командой Polygons =>Delete UVs . Выделите грани одной из боковых поверхностей объекта и назначьте им автоматическое проецирование (Edit Polygons =>Texture => Automatic Mapping ) - рис. 23. Переместите фрагмент на свободное пространство. Выделите грани другой боковой поверхности, также назначьте им автоматическое проецирование и вынесите фрагмент развертки за пределы UV -пространства. Аналогичные операции произведите для двух других боковых поверхностей, а потом и для двух оставшихся отдельных граней (рис. 24). Перейдите в режим работы с UV-координатами, выделите все текстурные координаты боковых поверхностей и масштабируйте их так, чтобы размер квадратов шахматной текстуры на всех поверхностях стал одинаковым (рис. 25). По окончании все фрагменты развертки равномерно масштабируйте и разместите внутри UV-пространства (рис. 26). Создайте снимок развертки, применив команду Polygons =>UV Snapshot .

Откройте полученный графический файл в графическом редакторе. Создайте дубликат слоя с разверткой, а затем установите под него слой с фоновым изображением и слой с цветными квадратами, на каждом из которых находится по букве (рис. 27). Сохраните данную текстуру как однослойное изображение. Переключитесь в Maya и замените шахматную текстуру на только что созданную - это приведет к получению имитации набора из пяти кубиков (рис. 28).

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

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

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

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

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

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

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



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows