Модификатор camera map в 3d max упражнение. Текстурирование сложной модели с помощью Unwrap UVW

Поскольку основы - они и в Африке основы, то принципы работы с UV-развёрткой, почерпнутые из этой статьи, вы сможете применить работая и в других 3D редакторах. Единственное отличие будет в названии кнопок и инструментов.

Автор этой статьи - уважаемый мной 3D моделер техники в 3ds Max - Александр Барсуков , известный еще под ником DesertBull. Так что публикую я статью как есть.

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

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

Работа с модификатором маппинга очень проста. Если вы ещё не умеете с ним работать, то ставьте это приоритетом номер один в очереди на изучение, иначе вы - не полноценный специалист.

Многие работают с модификатором UVW Map. Я же работаю с модификатором UVW Unwrap. Почему? Потому что что это абсолютно такой же модификатор, только при этом с кучей дополнительных возможностей. Настоятельно рекомендую работать именно через Unwrap.

Что ж приступим.

У нас есть простая модель.

Первым делом что мы делаем - назначаем чекер. Это дефолтная текстура, она по-умолчанию используется для проверки корректности маппинга. Если на модели отображаются не квадратики - значит модель требует корректировки в маппинге.

При назначении материала текстура может не отображаться. Эта кнопочка все решает))

Результат после нажатия кнопки Show Shaded Material in Viewport:

Мне лично не удобно работать с чекером, если если он отображает 1-2 квадрата на сторону. Поэтому я всегда ставлю больший тайлинг.

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

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

Красным обведена зона отображения текстуры. Как правило в 3д принято работать с текстурами с равными сторонами или по правилу: если одна сторона - А и вторая – Б, то размер текстуры может быть А=Б или 2А=Б или 4А=Б и так далее или наоборот. Основные размеры сторон кратны 2-ум: 512,1024, 2048, 4096 и тд. Почему так? На сколько мне известно, по крайней мере в игровой индустрии - это наиболее эффективно и удобоваримые размеры. [если более точно, то размер стороны текстуры должен быть кратным степени двойки (2, 4, 8, 16, 32, 64, 128, 256, 512 и т.д.) - это связано с тем, что игровые движки и алгоритмы сжатия/работы с изображениями работают наиболее эффективно именно с такими размерами. Т.е. тогда используется минимум памяти: дисковой, оперативной и видео. А значит и вычисления, проводимые с такими изображениями будут проводится быстрее. Да, вы можете использовать текстуру размером 513на512, но её размер из-за этого одного пикселя будет в два раза больше, чем у 512на512 - примечание автора блога ]

Никто вас не побьет палкой, если у вас будет текстура 314 на 745, но для меня, как человека варившегося в теме - это будет показателем отсутствия знаний. Случаи с использованием не квадратных текстур не столь часты. Я сейчас рассказываю на примере квадратной текстуры.

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

Выделяем всю модель (в свойствах модификатора снять галочку "Игнорировать заднююю часть") и нажимаем в окне маппинга Флаттен маппинг.

Мы видим, что программа разложила автоматом нашу модель на отдельные логичные (для программы) куски.

Не нужно радоваться и сразу приступать к текстуре - у нас ещё много работы.

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

В окне маппинга я выбрал один едж:

Клацаем на нем правой кнопкой мышки (ПКМ) и выбираем стич (прилепить). [для меня это удобнее делать через горячую клавишу, которую я назначаю самостоятельно на каждую команду, которую использую достаточно часто. - примечание автора блога ]

Часть, которая на модели соприкасается с этим еджем автоматически приклеится к выбранному еджу:

В итоге, посредством этой операции мы получаем вот такой раскрой. Как видим на модели зеленых линий стало значительно меньше)

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

Такие вещи желательно сразу исправлять. Есть два способа:

  1. Пройтись стичем и по ним.
  2. Перейти в режим точек, выбрать необходимые вертексы и завелдить (через меню ПКМ)

Итак, у нас более менее комфортная раскладка модели.

Но... у нас квадрат текстуры, а для квадрата такая раскладка не эффективна (большая часть текстуры в таком случае будет расходоваться вхолостую, кушая столь нужные нам ресурсы системы). Поэтому в угоду компактности мы чуточку раскромсаем модель и переделаем наш маппинг.

Первым делом ты определяешь идентичные части. К примеру, здесь верх и низ модели абсолютно идентичны. Раз так, то нам нет смысла использовать на оба элемента разную текстуру. Значит, мы просто отделим один из повторяющихся элементов и наложим его на своего брата-близнеца.

При этом зачастую требуется функция отзеркаливания и\или поворота детали.

Отзеркаливаем и поворачиваем отрезанный UV кусок:

Наш маппинг все ещё не эффективен. Текстура очень узкая и длинная. Мы конечно можем сделать прямоугольную текстуру, но в нашем случае - это идет вразрез с первоначальной задачей – делать квадратную текстуру.

Я выделил в основном вьюпорте полигоны цилиндра и отделил их на маппинге от детали. Мы получили две половинки боковинки цилиндра.

Я выделяю один крайний едж на одной из половинок и мы видим, что на второй подсвечивается синим другой едж. Программа показывает какой едж в какой детали сейчас мы соединим.

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

Наш маппинг не должен выходить за его границы. При необходимости скейлим (через CTRL) ВЕСЬ(!!!) маппинг одновременно. Крайне не желательно скейлить отдельно детали, так как сейчас у нас маппинг всех деталей в едином одинаковом масштабе. Что значит, что по всей нашей модели текстура будет отображаться с одинаковым качеством.

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

Вот что получилось у меня

Последним штрихом будет действие, которое я называю "текспортер" (по мотивам одноименной проги))) Это действие необходимо для снятия карты маппинга, для дальнейшей работы с ней в Photoshop (Фотошопе ФШ) непосредственно над текстурой.

Ниже показано, какие настройки должны быть и где нажать окей) Для удобства работы с текспортером я обычно ставлю разрешение побольше - тогда линии маппинга тоненькие, аккуратные и точные, что очень комфортно сказывается при работе с ними в ФШ.

После нажатия кнопки "Render UV Template" (отрендерить развёртку UV) мы видим карту маппинга, сохраняем её в удобном графическом формате и далее уже открываем её в ФШ со свойством слоя "Screen" (не будет видно, если основной фон фш-файла – белый).

Всё. Успешного маппинга))

Подпишитесь на обновление блога (вот ).

P.S. Заглавную картинку сделал 3D-художник Giovanni Dossena с помощью MARI, Maya и VRay. Полную версию .

Координаты наложения карт текстур. Модификатор UVW Map (UVW-проекция текстуры)

Достаточно часто бывает так, что после применения материала при попытке визуализировать объект программа выдает сообщение об ошибке (рис. 7.18).

Рис. 7.18. Окно Missing Map Coordinates (Потеряны проекционные координаты)

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

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

Существует два способа назначения координат наложения текстур объекту:

Установить в параметрах объекта флажок Generate Mapping Coords. (Генерировать координаты наложения текстуры);

Применить модификатор UVW Map (UVW-проекция текстуры).

Параметр Generate Mapping Coords. (Генерировать координаты наложения текстуры) имеется в свитках настроек примитивов, сплайнов, объектов вращения и выдавливания. Генерирование координат наложения с помощью данного флажка – более простой способ, но применение модификатора UVW Map (UWV-проекция текстуры) предоставляет дополнительные возможности. Во-первых, его использование позволяет создавать координаты наложения текстур для объектов, которые не могут их генерировать, например для редактируемых сеток и полисеток. Во-вторых, дает возможность настраивать координаты наложения, что, в свою очередь, позволяет влиять на расположение текстуры. В-третьих, дает возможность менять каналы наложения текстур и тип координат наложения материала. И наконец, в-четвертых, позволяет выбирать систему проецирования текстуры, используя контейнер (Gizmo) модификатора, который обычно называют контейнером наложения текстуры. Форма контейнера наложения текстуры определяет метод проецирования: в плоских, цилиндрических, сферических, трехмерных, прямоугольных координатах и т. д. (рис. 7.19).

Рис. 7.19. Результат применения различных форм габаритного контейнера модификатора UVW Map (UVW-проекция текстуры)

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

По умолчанию задаются плоские координаты проецирования (Planar).

Настройки модификатора UVW Map (UVW-проекция текстуры) находятся в нескольких областях (рис. 7.20), среди которых следующие:

Рис. 7.20. Параметры модификатора UVW Map (UVW-проекция текстуры)

Mapping (Наложение текстуры) – задает тип и размеры контейнера, устанавливает параметры карты текстуры и ее кратность (количество повторений в материале (Tile)), а также позволяет изменить ориентацию карты (Flip);

Channel (Канал) – позволяет задавать до 99 различных вариантов присвоения координат наложения объекту. Чтобы отобразить тот или иной вариант наложения, канал UVW-координат наложения объекта должен совпадать с каналом UVW-координат текстуры наложения;

Alignment (Выравнивание) – устанавливает согласование расположения, ориентации и масштаба контейнера наложения по отношению к текстурной карте, объекту или глобальной системе координат.

В области Alignment (Выравнивание) доступны следующие команды выравнивания контейнера:

X, Y, Z – положения переключателя, предназначенного для выравнивания контейнера наложения по соответствующим осям глобальной системы координат;

Fit (Подгонка) – изменяет размер контейнера наложения так, чтобы он соответствовал размеру объекта. При этом пропорции текстуры могут искажаться;

Center (Центрировать) – выравнивает контейнер наложения по центру объекта (или по центру выделения в случае нескольких объектов);

Bitmap Fit (Подгонка по изображению) – изменяет размер контейнера наложения в соответствии с размером растрового изображения. При этом исключается искажение пропорций изображений, связанных с используемым материалом;

Normal Align (Выравнивание по нормалям) – позволяет выровнять контейнер наложения по нормалям граней объекта, перетаскивая указатель над поверхностью объекта;

View Align (Выравнивание по окну проекции) – выравнивает контейнер наложения карты по текущему окну проекции;

Region Fit (Выравнивание по области) – позволяет изменять размер контейнера наложения, перетаскивая указатель мыши;

Reset (Сброс) – сбрасывает изменение размеров контейнера и устанавливает размеры по умолчанию;

Acquire (Взять) – подгоняет контейнер наложения к координатам другого объекта.

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

Для практического закрепления теоретического материала выполните упражнения «Упражнение 3. Текстурирование дивана и кресел», «Упражнение 4. Текстурирование телевизора» и «Упражнение 5. Текстурирование плафона» из раздела «Практика» данной главы.

Данный текст является ознакомительным фрагментом. Из книги автора

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

Из книги автора

Режимы наложения По умолчанию слой, наложенный на другой, непрозрачными участками полностью перекрывает изображение нижележащего слоя. Данный режим наложения называется Нормальный. Однако программа Adobe Photoshop предлагает несколько различных режимов наложения, при

Из книги автора

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

Из книги автора

Координаты текстуры Перед нанесением текстуры на объект осталось установить соответствие между точками на поверхности объекта и на самой текстуре. Задавать это соответствие можно двумя методами: отдельно для каждой вершины или сразу для всех вершин, задав параметры

Из книги автора

Проецирование при помощи модификатора UVW Map (UVW-проекция) Модификатор UVW Map (UVW-проекция) позволяет назначить объекту проекционные координаты для последующего наложения текстурных карт и управления их положением в пространстве.Для присвоения объекту модификатора UVW Map

Из книги автора

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

Из книги автора

Способы наложения карт Возможны следующие четыре типа наложения картинки на объект, которые можно выбрать в зависимости от основной формы объекта: Box (Параллелепипед) – тип проецирования, используемый по умолчанию; Planar (Плоское) – картинка проецируется без

Из книги автора

Модификатор out Теперь рассмотрим использование параметров out (от output – выходной). Если метод определен с выходными параметрами, то необходимо назначить этим параметрам подходящие значения до выхода из метода (если этого не сделать, будет сгенерирована ошибка

Из книги автора

Модификатор ref Теперь рассмотрим, использование в C# модификатора ref (от reference – ссылочный). Ссылочные параметры нужны тогда, когда требуется позволить методу изменять данные, объявленные в контексте вызова (например, в функциях сортировки или обмена данными). Обратите

Из книги автора

Модификатор interrupt Модификатор interrupt предназначен для объявления функций, работающих с векторами прерываний процессора 8086/8088. Для функции типа interrupt при компиляции генерируется дополнительный код в точке входа и выхода из функции, для сохранения и восстановления

Из книги автора

Способы наложения карт Возможны следующие четыре типа проектирования картинки на объект, которые можно выбрать в зависимости от основной формы объекта: Box (Параллелепипед) – тип проектирования, используемый по умолчанию; Planar (Плоский) – картинка проектируется без

Из книги автора

HeadsUp: проекция экрана смартфона на лобовое стекло автомобиля Николай Маслухин Опубликовано 19 ноября 2013 Индикаторы на лобовом стекле, или Heads-up display (HUD), в наше время используют не только в кабинах пилотов самолетов, но и в автомобилях. Существуют

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

Из книги автора

Разбиение растровой графики Модификатор Magic Wand ("Волшебная палочка") Если внимательно присмотреться к растровому изображению, находящемуся на рабочем листе, можно заметить, что оно состоит из множества частей, пикселы которых имеют одинаковый цвет. Так же думает и Flash. И,

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


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

Давайте попробуем просто применить целиком к форме модификатор UVW Map : Для этого зайдем в главное меню Modifiers ? UV Coordinates ? UVW Map :



Получилось только на одном полигоне, на остальные текстура не легла так, как нам нужно. Теперь попробуем перебрать различные виды наложений в модификаторе: из Planar (плоскостное наложение) поставим в Box (наложение по прямоугольному контейнеру):

Затем попробуем другие наложения. Так же еще попереставляем в Alignment оси. Видим, что как ни подбирай, а желаемого результата таким образом мы не получили. Есть ли тут выход? В таких случаях как этот - есть. Для этого необходимо применять модификатор UVW Map не к целому объекту, а к каждому полигону (или группе полигонов) по отдельности. Удалим пока модификатор UVW Map с объекта. Встанем на уровень полигонов и выделим передний полигон.
T еперь к выделенному полигону применим модификатор UVW Map : Modifiers ? UV Coordinates ? UVW Map :



Теперь нужно нечто подобное проделать с остальными полигонами, вид которых нас интересует. Для того чтобы выделить следующий полигон или группу полигонов не отменяя предыдущего шага в стеке модификаторов, необходимо зайти в главное меню: Modifiers ? Selection ? Poly Select : где также надо встать на уровень полигонов. Выделяем нужный полигон (или группу полигонов):


Назначим к нему (к ним) модификатор UVW Map : заходим так же как и раньше: M odifiers- ? UV Coordinates--- ? UVW Map:

Попробуем настроить с плоскостным наложением ( Planar ): Для этого, в первую очередь, нужно определить, по какой оси мы выравниваем: в опции Alignment нам подходит переставить кружок напротив X . Теперь подберем размеры: Length и Width (можно это делать на глаз или опираться на соотношение размеров в полигонах). Здесь также можно подогнать рапорт по U / V / W tile .
Проделаем все то же самое с третьей стороной крыши: Для этого снова выделили нужный полигон (полигоны) через Poly Select .

И так же применяем к нему (к ним) модификатор UVW Map :


И снова подгоняем раппорт:


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



На виде сверху вы легко себя проверите:

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

После того, как назначили материал, мы видим, что чешуйки на некоторых сторонах тоже смотрят не в ту сторону, в полигонах нужно также еще подгонять раппорт текстуры. Что ж, начнем с какого-нибудь полигона – выделим его:

Применим к нему модификатор UVW Map :


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


Уже лучше. Теперь поставим в Alignment кружок на ось X :


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


Вот, получилось наконец. Теперь через Poly Select выделим другой нужный полигон:


Применяем снова UVW Map , на этом полигоне нужно поправить лишь размеры, подгоняю снова на глаз:

Под этим полигоном выделим следующий:


Правим на нем:


По возможности, стараюсь так подогнать размер, чтобы рисунок на смежных полигонах мог совпасть, если его потом совместить по линиям. При этом я пока не смещаю сам раппорт, но для того чтобы окончательно точно совместить рисунок, здесь можно воспользоваться кнопкой Normal Align (выравнивание по нормали), но это сработает лишь в том случае, если направления нормалей мы не меняли, в противном случае эта кнопка развернет направление рисунка. Нажмем ее и теперь если удерживать левую кнопку мыши, можно подвинуть рисунок – совместить его по-точнее:


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


Так же поступаю со всеми остальными полигонами в данной форме. Вот тестовая визуализация крыши:
Примечание: конечно, существуют другие пути наложения текстуры на сложные объекты, например, с помощью модификатора Unwrap UVW . И, возможно, описанный здесь метод показался вам слишком утомительным и неточным. Однако, часто именно им удобней пользоваться, особенно когда текстуру накладываем лишь на видимые для визуализации полигоны, а не на все, то есть когда ракурс вида зафиксирован (часто так приходится поступать в целях экономии времени и сил). Другой плюс: этим способом можно иногда быстро подправить что-то на отдельных участках. К минусам относится то, что нельзя развернуть рисунок на не кратные 90 градусам углы, а так же уже указанную сложность стыковки рисунка в смежных плоскостях. Но возможно, вы все равно еще не раз воспользуйтесь описанным сейчас методом. Авторы: сайт Подготовлено: сайт

3ds max 5 включает в себя большое количество новых средств для наложения текстуры на объект. В зависимости от сложности проекта и наличия внешних модулей текстурирование объекта сильно упростилось по сравнению с предыдущими версиями программы.
В данном уроке Вы познакомитесь с базовыми средствами модификатора Unwrap UVW, разными методами автоматического текстурирования и некоторыми приемами работы вручную.
Так же я вкратце объясню, как Вы можете использовать программу Deep Paint 3D, от Right Hemisphere, чтобы придать больше гибкости процессу текстурирования.
Надеюсь, что ознакомившись с предложенным материалом, Вы найдете быстрый и эффективный путь для текстурирования Ваших моделей.

Спасибо Phil Bedard и Francis Bernier за модели и текстуры.


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


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


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

Во-вторых, необходимо минимизировать растяжения, которые возникают, когда участок текстуры плохо подогнаны к грани. Возвращаясь к аналогии со скульптурой, это случается когда Вам приходится сжимать или растягивать кусочек бумаги, чтобы покрыть им нужное пространство (хотя в данном случае речь следует вести скорее о резине нежели о бумаге).
В-третьих, избегайте перекрытия текстурных координат. Вы не можете одновременно нарисовать две разные вещи на одной и той же части текстуры. Исключение составляет случай, когда две части объекта должны выглядеть совершенно одинаково, что часто бывает верно для симметричных объектов, или если объект содержит много одинаковых частей. Например, космический корабль, изображенный выше, снизу оттекстурен только наполовину, а вторая половина использует те же текстурные координаты.
В-четвертых, желательно, чтобы ваши текстурные координаты использовали имеющееся текстурное пространство наиболее эффективно. Если Вы ограничены, скажем, размером текстуры 256x256 (что часто бывает при разработке компьютерных игр), любые значительные пустоты между участками текстуры приведут к тому, что полезное пространство уменьшится. Это приведет к понижению детализации Вашей текстуры и, соответственно, к ухудшению качества модели.
Наконец с текстурами проще работать, если одинаковые по размерам участки модели соответствуют одинаковым же участкам текстуры. Согласитесь что модель, у которой некоторые участки проработаны качественнее других, выглядит странно. Из этого правила есть, конечно, исключения. Например, при текстурировании персонажа, лицо, как правило, прорабатывается тщательнее других участков тела.
На практике, однако, приходится чаще всего балансировать, пытаясь найти компромисс между всеми вышеописанными правилами. Необходимо помнить, что текстурирование, как и вся другая работа 3D художника, это искусство, не подчиненное строгим правилам. Окончательным критерием является модель наилучшего качества, созданная в наикратчайшие сроки.

Основы

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



Перед началом текстурирования вспомним назначение наиболее часто используемых клавиш. Их три – F2, F3, и F4. F2 включает и выключает режим Shade Selected Faces (затенения выбранных граней) – когда этот режим включен, выбранные грани затеняются красным цветом. F3 позволяет переключаться между каркасным и затененным режимом отображения объектов, F4 включает одновременное отображение ребер и затенения граней объекта – режим Edged Faces. Все эти клавиши часто используются при моделировании объектов, но особенно – при их текстурировании.
Если объект, который Вы собрались текстурировать, не выделен, выделите его и примените к нему модификатор Unwrap UVW.

Щелкните на значке “+” слева от модификатора Unwrap UVW левой кнопкой мыши, а затем перейдите на появившуюся строку Select Face. Это позволит Вам, щелкнув левой кнопкой мыши на грани объекта в видовом окне, выбрать ее для текстурирования. Надеюсь, Вы знаете, что добавить к уже выделенным новую грань, можно щелкнув на ней с нажатой клавишей Ctrl, а чтобы снять выделение с грани – с клавишей Alt.

Интерфейс модификатора Unwrap UVW

Ну а теперь приступим. Нажмите кнопку Edit, чтобы открыть диалог текстурирования. То, что Вы увидите, возможно, покажется Вам запутанным, но для того и предназначен этот урок, чтобы прояснить ситуацию.


Если Вы не сделали этого ранее, прейдите в стек модификаторов и выберите в нем строку Select Face, которая является пунктом модификатора Unwrap UVW. Обведите рамкой выделения весь объект, чтобы выделить все его грани. Теперь нажмите кнопку Planar Map в свитке Unwrap UVW. Теперь координаты текстуры выглядят несколько проще, но отнюдь не идеально.



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


В правом нижнем углу вы найдете все привычные средства прокрутки и масштабирования изображения, а чуть ниже две кнопки – Rotate +90 и Rotate -90. Очень простые и очень полезные.

Слева от них группа Selection Modes. Она содержит существенные улучшения по сравнению с предыдущей версией средств Unwrap UVW. По умолчанию выбран режим вершин, но можно поменять его на режим ребер или граней. В режиме вершин (Vertex) Вы, как и в предыдущих версиях Max, можете корректировать текстурные координаты вершины или группы вершин. В режиме ребер Вы можете делать то же самое с ребрами, а в режиме граней, соответственно с гранями.

Кнопки “+” и “-” позволяют Вам расширять или, наоборот сокращать набор выбранных вершин, ребер или граней. Назначение флажка Select Element рассмотрим позже.



Другой новой возможностью модификатора Unwrap UVW является синхронизация выбора подобъектов в окне редактирования текстурных координат и в видовых окнах, что позволяет облегчить выбор нужного Вам объекта (на рисунке изображена ситуация при включенном режиме Shade Selected Faces – клавиша F2).

Средства автоматического текстурирования

Теперь, когда Вы ознакомились с основными элементами интерфейса модификатора Unwrap UVW приступим непосредственно к текстурированию. Перед тем, как начать, я всегда заготавливаю клетчатую текстуру. При наложении ее на сетку сразу видно, какие участки отекстурены правильно, а где имеются искажения. Откройте редактор материалов, выберите неиспользуемый материал, разверните свиток Maps и нажмите на кнопку справа от надписи Diffuse Color, помеченную None. В появившемся окне дважды щелкните надпись Bitmap, и откройте файл с клетчатой текстурой. Не забудьте нажать кнопку Show Map in Viewport и примените материал к объекту. Ваш объект должен быть похож на то, что нарисовано ниже.




Закройте редактор материалов и вернитесь в окно редактирования текстурных координат (возможно, для этого придется нажать кнопку Edit снова). Теперь материал объекта станет фоновым в этом окне – разве это не удобно? Если Вам это не нравится, Вы всегда можете нажать кнопку Show Map вверху окна редактора. Также обратите внимание на квадрат темно синего цвета. Он означает ограничения Вашей текстурной карты. Если Вы выведите вершину за его пределы, то она получит значения координат, взятые с противоположной стороны – будьте осторожны (однако пока об этом беспокоится не стоит).


Давайте посмотрим на первый метод автоматического текстурирования. Войдите в меню Mapping и выберите там пункт Flatten Mapping. Убедитесь, что все три флажка установлены и нажмите кнопку OK. Вы увидите, как объект разбился на кусочки, подобно игрушке пазл. Если Вы напечатаете полученное изображение, а потом разрежете на кусочки, то получите грубую развертку Вашего объекта – не точную, но довольно близкую.

Здесь самое время остановиться и продемонстрировать Вам возможность флажка Select Element. Установите его, как показано на картинке и щелкните левой кнопкой мыши на любом из кусков развертки, изображенных в окне. Обратите внимание, что выделился весь кусок, а не только одна его грань (или вершина, или ребро). Это очень удобно, если Вам надо установить текстурные координаты сразу для целого куска.


Пока Вы использовали установки Flatten Mapping, принятые по умолчанию, давайте немного поэкспериментируем. Снова войдите в меню Mapping, выберите пункт Flatten Mapping, и немного поиграйте с параметрами, особенно с задатчиком Face Angle Threshold. Как нетрудно заметить, большее значение этого параметра приводит к образованию больших кусков развертки, а малое – к их уменьшению, но к увеличению их количества. Для примера я использовал значения 75 и 25. В зависимости от того, как Вы хотите текстурировать объект, оба варианта имеют свои преимущества. А теперь попробуем другой метод.


Вернитесь в меню Mapping и выберите пункт Normal Mapping. В выпадающем списке вверху выберите Box Mapping. В реальной работе используются все методы, но чаще других – именно этот. Нажмите OK, чтобы посмотреть результат. Объект разбился на шесть частей, по одному на каждую грань параллелепипеда. Это главное преимущество данного метода – шесть плоскостей проекции, по две на каждую ось. Поиграйте с настройкой, попробуйте другие методы (Left/Right Mapping, например) и посмотрите, может быть какой-то из них Вам понравится. Если нет, придется сделать что-нибудь более сложное.



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

Текстурирование вручную

Для начала я повторил операции Flatten Mapping с другими установками (см. картинку). Получилось неплохо, но только для начала.

Одной из первых проблемных областей была кабина – ее кривизна слишком велика для того, чтобы с помощью Flatten Mapping объединить все ее полигоны в одну группу. Поэтому, выделив все грани кабины в видовом окне Perspective, я нажал кнопку Planar Map в свитке модификатора Unwrap UVW.





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


Я применил модификатор Mesh Select, и выбрал грани, для которых собирался использовать цилиндрическую проекцию (Выбор граней в Unwrap UVW, к сожалению невозможен).


Когда выделение было закончено, я добавил модификатор UVW Mapping, изменил метод проекции на Cylindrical и нажал кнопку Fit. Это дало нужный мне результат. Далее я добавил другой модификатор Mesh Select, но не выбрал ни одной грани. MAX сохраняет информацию о выбранных гранях, а нам необходимо иметь возможность работы со всей сеткой а не только с выбранными гранями. После этого я снова добавил модификатор Unwrap UVW.

И снова получившиеся координаты далеки от идеала, их надо отмасштабировать и перенести на другое место, чтобы они не смешивались с другими. Будет также неплохо разбить получившийся кусок на части. Чтобы сделать это, выберите в меню Tools пункт Break (горячая клавиша Ctrl-B). Теперь можно разнести выбранные грани в стороны без растяжения прилегающих граней.

оздание текстурных координат посредством назначения объекту модификатора UVW Map (UVW-карта) на практике используется очень часто. Оно незаменимо, когда разные подобъекты требуют различных методов проецирования. Данный модификатор выбирается из общего списка модификаторов панели Modify (рис. 14) и может применяться как ко всему объекту целиком, так и к его отдельным подобъектам (например, к разным граням) и позволяет не только использовать для выделенных областей различные предусмотренные типы проецирования, но и вручную настраивать особенности выбранного типа под конкретную модель.

Рис. 14. Добавление модификатора UVW Map к выделенному объекту

Всего предусмотрено семь типов проецирования текстурных карт (рис. 15):

  • Planar (Планарный) - производится по нормали к поверхности и применяется к любым плоскостям и подобным им объектам, часто служит основой для построения более сложного проецирования;
  • Cylindrical (Цилиндрический) - предназначен для объектов, имеющих цилиндрическую форму (вазы, бутылки, ножки стола и пр.), и при включенном флажке Сар (Срез) может дополнительно осуществлять проецирование карты на верхний и нижний торцы поверхности. Данный тип проецирования обеспечивает оборачивание текстуры вокруг цилиндрической поверхности с образованием шва на стыке противоположных сторон текстуры. Разные варианты цилиндрического проецирования (с учетом и без учета торцов цилиндра), а также появление характерного для данного типа проецирования шва отражено на рис. 16, где у левого цилиндра проецирование торцов включено, у правого - выключено, а на среднем продемонстрировано наличие шва;
  • Spherical (Сферический) - применим к объектам, форма которых близка к форме шара, и реализуется путем оборачивания текстуры вокруг сферы с формированием шва от одного полюса к другому и деформацией текстуры у полюсов. Обратите внимание на рис. 17, где обоим шарам присвоен один и тот же материал со сферическим типом проецирования, при этом на левом шаре шва не видно, а на правом, который является полной копией левого, но повернут противоположной стороной, шов хорошо заметен;
  • Shrink -Wrap (Обернутый) - предназначен для объектов, имеющих близкую к сферической форму, и обеспечивает оборачивание текстуры вокруг сферы наподобие косынки, что приводит (в сравнении с типом Spherical ) к меньшей степени деформации текстуры у полюсов, но зато к большей - в районе экватора;
  • Box (Кубический) - используется для объектов, имеющих близкую к параллелепипеду форму, и обеспечивает присвоение текстуры для каждой из шести сторон куба по отдельности;
  • Face (Граневый) - реализуется путем наложения текстуры для каждой грани в отдельности и применяется чаще всего в отношении узорчатых текстур;
  • XYZ to UVW (Координаты объекта в мировые) - предназначен для проецирования бесконечных текстурных карт.

При поиске оптимального типа проецирования для конкретного объекта, как правило, следует отдавать предпочтение тому типу, форма гизмо которого близка к форме объекта, так как это обычно позволяет минимизировать или даже полностью избежать деформации текстуры. Однако далеко не всегда можно с точностью сказать, какой тип проецирования окажется лучше, ведь на практике форма отдельных объектов модели лишь с большой натяжкой может быть приближена к строго геометрической. Поэтому прежде чем принимать решение, стоит поэкспериментировать с разными типами проецирования и оценить, при каком из них степень деформации текстуры наименее заметна. Более того, если в сцене имеется несколько однотипных объектов, то совсем необязательно, что оптимальным для них будет один и тот же тип проецирования - возможны ситуации, когда один объект смотрится лучше, например, при цилиндрическом типе проецирования, а другой - при планарном. Наиболее распространенными являются типы Planar , Cylindrical , Spherical и Box , остальные применяются значительно реже.

Попробуем последовательно установить модификатор UVW Map к каждому из объектов рабочей сцены. Сначала восстановите все исходные параметры наложения текстурной карты в свитке Coordinates . Выделите первый объект сцены и для назначения ему модификатора выберите в списке модификаторов панели Modify строку UVW Map , аналогичную операцию последовательно выполните в отношении двух других объектов. После данных действий внешний вид текстур в объектах изменится (рис. 18), а в стеке у каждого из объектов появятся новые модификаторы. К сожалению, можно констатировать, что если изначально (то есть при параметрическом проецировании) текстура на объекты налагалась корректно, то сейчас до корректности далеко. Дело в том, что по умолчанию при добавлении модификатора UVW Map устанавливается тип проецирования Planar (Планарный), неприемлемый для шара, цилиндра и куба. Чтобы исправить ситуацию, выделите шар и смените для него в разделе Mapping свитка Parameters вариант Planar на Spherical (рис. 19). Точно так же измените тип проецирования у цилиндра на цилиндрический, не забыв включить флажок Сар (Срез) для текстурирования торцов, а у куба - на кубический.

Рис. 18. Результат назначения объектам модификатора UVW Map

После изменения типов проецирования все три объекта будут выглядеть точно так же, как и при параметрическом проецировании, поэтому на первый взгляд кажется, что никаких преимуществ применение UVW-карт не дает. На самом деле это совсем не так. Во-первых, мы имели дело с примитивами, для которых нужные координаты проецирования текстурных карт устанавливаются по умолчанию. Во-вторых, даже в случае примитивов использование UVW-карт открывает больше возможностей для управления наложением текстур. Так, с помощью настройки значений счетчиков Length (Длина), Width (Ширина) и Height (Высота) можно определить размеры налагаемой текстуры, параметры U -V -W Tile (U-V-W Мозаика) позволят задавать число повторений текстуры по каждой из осей, а включение/выключение флажков Flip (Перевернуть) обеспечит зеркальное отображение.

Кроме того, в стеке объектов появляется модификатор UVW Map ping , имеющий гизмо (Gizmo), - рис. 20. Гизмо показывает, как текстура проецируется на объект, и определяет границы, до которых простирается текстурная карта материала, при этом вид гизмо зависит от типа проецирования (рис. 21). Поэтому управлять особенностями проецирования карты можно и через гизмо. Например, перемещая его, можно смещать текстурную карту вдоль осей (рис. 22) примерно с тем же результатом, что обеспечивает коррекция параметров материала U Offset и V Offset в свитке Coordinates . Масштабирование гизмо приводит к увеличению/уменьшению масштаба текстуры (рис. 23), а вращение позволяет изменять тип проекции и выявлять цилиндрические и сферические завихрения.

Рис. 20. Наличие гизмо у модификатора UVW Mapping

Чтобы разобраться с нюансами управления текстурой через гизмо попробуем вначале превратить куб в параллелепипед небольшой толщины (рис. 24), а затем добиться, чтобы используемая при текстурировании фотография размещалась в центре его верхней плоскости для создания иллюзии снимка в рамке. Вначале переключитесь в редактор материалов и в свитке Coordinates отключите повторяемость текстуры, убрав флажки в параметрах Til e (рис. 25). Выделите объект, перейдите на панель Modify и в стеке модификаторов щелкните на плюсе возле названия модификатора UVW Mapping , что приведет к переключению в режим управления гизмо. Активируйте инструмент Select and Non -uniform Scale и вручную измените размеры снимка так, чтобы он занимал бо льшую часть плоскости параллелепипеда. При необходимости скорректируйте положение текстуры в центре плоскости инструментом Select and Move (рис. 26). Чтобы отобразить текстуру по оси U , включите флажок Flip , находящийся справа от поля U Tile , и дополнительно разверните гизмо параллельно оси X , щелкнув на переключателе X . По окончании переместите гизмо вверх по оси X (рис. 27) для того, чтобы снимок отображался лишь на верхней грани параллелепипеда и не был виден на всех остальных. В случае если в ходе масштабирования вам приходилось увеличивать размер гизмо (что автоматически привело к значительным искажениям текстуры), как было и в нашем случае, то по окончании экспериментов лучше заменить в свитке Bitmap Parameters задействованный в качестве текстуры файл на изображение большего размера. Возможный результат представлен на рис. 28.

Управлять ориентацией и точными размерами гизмо можно не только инструментами из панели Mail Toolbar , но и через раздел Alignment (Выравнивание) свитка Parameters (рис. 29). Переключатели X , Y и Z обеспечивают поворот гизмо параллельно указанной оси, команда Fit



Loading...Loading...