Uvw mapping разные текстуры на одной модели. Координаты наложения карт текстур. Модификатор UVW Map (UVW-проекция текстуры). Средства автоматического текстурирования

Одним из главных преимуществ в 3D пакете должна быть возможность создания качественной UVs развертки. И в самом деле, вы не сможете работать на полную, если не будет возможности создать качественную развертку. Такая вещь как текстурирование напрямую зависит от правильной UVW развертки. Так что я решил показать вам, как создать хорошую UVW развертку в 3ds Max.Модификатор UVW Unwrap имеет инструмент под названием Pelt Mapping, который отлично справляется с созданием UVs развертки. Я думаю, что в большинстве случаев, вам больше ничего не понадобится для создания нужной развертки объекта. Инструмент Pelt Mapping дает вам достаточно возможностей создать развертку буквально автоматически, и вам практически не придется редактировать UVs вручную. Инструмент Pelt Mapping хорошо справляется с органическими и неорганическими объектами.

Прежде всего, у вас должна быть модель с правильной топологией, полигоны должны быть четырехугольными, не должны иметь дополнительных вершин, и так же желательно что бы полигоны были равнобедренными. Только после того как будет готова правильная топология и сетка можно переходить к следующему шагу. Что бы применить модификатор UVW Unwrap нужно выбрать объект, затем перейти на панель Modify, где и выбрать среди списка UVW Unwrap. Очень важно правильно создать швы. В моем случае для головы я создал швы, так как показано на Рис 1 и Рис 2.

Обратите внимание на синие линии, которые указывают места, где будут располагаться швы. Чтобы создать шов нужно перейти на работу с Edge (ребрами) в самом модификаторе (на палитре под названием модификатора). Затем выбрать нужные Edges (ребра) и в свитке Map parameters нажать кнопку » Edge Sel to Seams «. Также можно быстро создать швы с помощью » Edit Seams » или » Point to Point Seams «. Если выбран подобъект Face (работа с полигонами) выделите нужные участки сетки и нажмите » Pelt «, швы на краях полигонов будут созданы автоматически.

Когда закончите с разметкой швов выберите, подобьет Face в модификаторе UVW Unwrap и выберите часть или всю сетку и нажмите на кнопку Pelt. После ее нажатия должно открыться окно как на рис ниже:

Круг образованный вокруг сетки, называется » Stretcher «, растягивает сетку. Линия соединяет точку окружности и точку шва. В диалоговом окне Pelt map в свитке Pelt options, в разделе Springs, вы можете управлять четырьмя счетчиками, которые будут менять эффект натяжения. Только убедитесь что галочка напротив » Lock Open Edges » установлена. Выберите всю сетку, убедившись, что галочка » Lock Open Edges » установлена и масштабируйте ее до меньшего размера. Это даст Stretcher больше пространства для работы. Затем нажмите кнопку » Start Pelt»и пусть Stretcher выполняют свою работу. Результат ниже (Рис.04).

Это что-то вроде призрака! Хорошо, теперь нажмите кнопку » Commit «, чтобы применить операцию. В Edit UVWs окне перейдите на Tools > Relax. Вы также можете просто щелкнуть правой кнопкой мыши и выберать прямоугольник рядом с Relax из меню, чтобы открыть диалоговое окно инструмента Relax (Рис.05).

Из выпадающего меню выберите » Relax By Face Angles «, который является наилучшим вариантом, если вы хотите получить хороший результат. Увеличение параметров» Iterations » и » Amount » приведет к увеличению эффекта натягивания. Параметру Stretch лучше присваивать небольшое число. Теперь нажмите кнопку «Start Relax » и наблюдайте как инструмент начал работать. Для остановки нажмите Stop Relax. В разделе Selection Modes, выберите » Select Element «, чтобы выбрать всю сетку, а затем выберите инструменты Scale и Move, что бы уменьшить и разместить сетку внутри темно-синего прямоугольника (Рис.06).

Теперь для отображения искажений и перекрытия некоторых частей развертки, выберите Face (работа с полигонами) в самом модификаторе, а в меню, нажмите кнопку » Select Inverted Faces «, затем » Select Overlapped Faces «. Каждый раз, в зависимости от сложности сетки, вы можете посмотреть искаженные места, выделенные красным цветом. Они должны быть исправлены (Рис.07).

Чтобы исправить пересекающиеся области, вновь выбираем инструмент Relax Tool. Из выпадающего меню выберите » Relax By Centers » — ее функция заключается в удалении какого-либо дублирования. Аккуратно избавляйтесь от перекрывающихся областей, затем используйте » Relax By Face Angles » что бы вновь установить натяжение,на этот раз с низкими параметрами Iteration и Amount, что-то около 14 и 0,1. Помните, что метод Pelt Mapping зависит от вашей способности использовать Relax tools.

Наконец, для решения любых перевернутого полигонов, вы должны использовать опцию » Relax By Edge Angles «. Всегда используйте небольшое число Iteration и Amount и неоднократно жмите кнопку » Apply » для избавления проблемных областей. Я бы посоветовал Вам добавить карту Checker для модели, что бы можно было наблюдать за искажениями в окне перспективы.

Если есть искажения, которые не могут быть исправлены инструментом Relax Tool, следует использовать инструмент Move tool и переместить вершины вручную. Некоторые части, как уши или рога, следует отделять, для этого выделите их края и нажмите кнопку «Break» из меню » Tools «, но не забудьте сначала сделать шов. Затем пользуемся Relax Tool.

Если у вас сложная сетка UV, то можете использовать Tools > Pack UVs. Рис.08.

Выберите » Recursive Packing «из выпадающего меню, которое является более точным, и установить параметр по мере необходимости (это расстояние между кластерами). Проверьте » Rotate Clusters » и » Fill Holes » Нажмите кнопку ОК. (Рис 9).

Вы должны получить идеальную развертку UV! Посмотрите на голову, для наглядности я добавил текстуру (Рис 10)

Для дальнейшего текстурирования сохраним нашу развертку в графический формат, переходим на Tools> Render UVW Template и в открывшемся диалоговом окне нажмите кнопку » Render UVW Template «.

Как вы убедились, в модификаторе UVW Unwrap метод Pelt Mapping представляет собой прекрасный и легкий инструмент, который позволяет быстро и качественно создавать развертку. Плюс, в том, что нет необходимости для экспорта и импорта модели в и из 3ds Max, потому что все происходит внутри программы. С Pelt Mapping можно также создавать карту неорганических объектов, например автомобили, оружие, самолеты, даже здания и так далее.

Некоторые иллюстрации на этой странице анимированы . Чтобы увидеть анимацию, в вашем Интернет-Эксплорере должен быть включён параметр по адресу меню: Сервис / Свойства обозревателя / Дополнительно (искать в пункте параметров "Мультимедиа").

В прошлой главе мы рассматривали главным образом наложение текстур на объект. Как мы видели, методы наложения бывают разные: привязка текстуры к мировому пространству, привязка текстуры к пространству объекта. Когда текстура помещалась в мировое пространство, она проскальзывала по трансформирующемуся объекту. Когда текстура помещалась в пространство самого объекта, при трансформации объекта текстура вела себя так, словно она нарисована на его поверхности. Но если объект деформировался, текстура всё равно начинала скользить. Особенно забавно вела себя двухмерная текстура, наложенная по методу Planar From Object.

Но был один пример, когда текстура была наложена по методу Explicit Map Channel. Объект деформировался, но текстура не плыла и не скользила, она была словно нарисована на самой поверхности. Такой метод наложения наиболее востребован. Большинство реально существующих объектов ограничены поверхностью, на которой текстура именно нарисована, а не по которой текстура причудливым образом скользит. Конечно, скольжение может пригодиться, когда наша текстура используется для имитации теней и освещения, или чтобы нарисовать какого-нибудь хитрого хамелеона, но теперь мы знаем, что это можно сделать без особых проблем.

Теперь мы будем разбираться, как сделать, чтобы текстура по поверхности не скользила. А чтобы текстура по поверхности не скользила, создаётся специальное UVW-пространство. Пространство создаётся не для текстуры, а для объекта. Для текстуры же можно выбрать, в какое пространство её поместить, то ли в мировое XYZ, то ли в пространство объекта XYZ, а можно поместить её и в пространство UVW. В параметрах текстуры нет такой опции - поместить в UVW-пространство, вместо этого есть опции Explicit Map Channel и Vertex Color Channel. Explicit Map Channel - заданный канал карты. Для него нужно выбирать номер канала. Номер канала это есть как бы номер UVW-пространства. У одного и того же объекта этих пространств может быть до 100 штук. А фактически их ещё больше - ведь Vertex Color - это тоже UVW-пространство, только оно называется по-другому и имеет несколько другое назначение. Но по сути оно подобно обычному UVW. А ещё есть два пространства Vertex Illumination и Vertex Alpha.

Как же объект помещается в UWV-пространство? На самом деле, UVW - это некое параллельное пространство. Один и тот же объект может существовать одновременно и в пространстве XYZ и в пространстве UVW. Просто пока мы для него UVW-пространство не создали, он существует только в XYZ.

Для того, чтобы создать пространство UVW к объекту надо применить модификатор UVW Map. Он не только создаёт само пространство, но и создаёт в нём координаты наложения текстуры, то есть этот модификатор определяет, какую форму будет иметь объект в пространстве, куда будет залита наша текстура.

Итак, начнём применять модификатор UVW Map.

Модификатор UVW map

Если мы не хотим, чтобы наша текстура плыла, то модификатор UVW map следует расположить в стеке таким образом, чтобы он находился под модификатором, отвечающим за деформацию объекта. У нас в случае с динозавром, который использовался в предыдущей главе для иллюстрации того, как плывёт текстура, был использован модификатор привязки шкуры к анимационному скелету. Существуют разные модификаторы, которые позволяют осуществить эту операцию, поэтому пока мы не рассматривали их подробно, будем называть их общим словом - скиннинг.

Если модификатор UVW map применить под скиннинг, то есть находится ниже по стеку, то сначала текстура накладывается на грани, а уже потом поверхность деформируется. И текстура привязана к граням жёстко, словно нарисована на поверхности. Если же модификатор UVW map применить сверху от модификатора скиннинга, то сначала будет осуществляться деформация поверхности, а уже потом на грани будет накладываться текстура, то есть накладываться она будет уже на деформированную форму, и всё равно будет плыть.

Если к нашему объекту применены другие модификаторы, например Symmetry и MeshSmooth (TorboSmooth), то они тоже взаимодействуют с UVW map . Symmetry, если применено поверх UVW map, то создавшаяся половинка полностью симметрична первой, и текстуры на ней лежат соответствующим образом. Если UVW map применить поверх Symmetry, то возможно сделать так, что на симметричных половинках текстура будет не симметрична. Модификаторы сглаживания MeshSmooth (TorboSmooth), если они применены поверх текстурирования, то они как правило несущественно искажают наложенную текстуру, но часто эти искажения либо вообще не видны, либо даже играют положительную роль - то есть когда объект скругляется и текстура располагается так, что лежит на нём хорошо.

Модификаторы MeshSmooth или TorboSmooth лучше применять уже поверх скиннига. Дело в том, что скиннинг лучше осуществлять для низкополигонной модели - меньше вершин, меньше возни. К тому же, в такой последовательности применения модификаторов, сглаживание MeshSmooth или TorboSmooth можно безболезненно выключать или менять число итераций. Если же скиннинг осуществлён поверх сглаживания, то нам придётся и прорабатывать большее число вершин, и нельзя будет наше сглаживание выключать.

Начнём с того, что попробуем наложить на объект двухмерную текстуру типа кирпичи (она же плитка), показанную на рис. 22.1.

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

Чтобы сразу видеть, что получается, надо нажать в редакторе материалов, когда мы работаем с данной картой, нажать кнопочку Show Map In Viewport . Будьте внимательны, такая же кнопка есть и при работе с самим материалом. Лучше её нажимать именно в режиме работы с конкретной картой, потому что у одного материала может быть много карт, и если нажать кнопку для материала, не известно, какая карта пробьётся в окно проекций. Все сразу не пробьются, на то этот просмотр и предварительный, чтобы экономить время. Поэтому, показывать он будет не всё как будет в конечном счёте.

Итак, давайте рассмотрим модификатор. Для этого выделим наш объект и применим модификатор (рис. 22.2).


Рис. 22.2. Применение модификатора UVW map

У этого модификатора, как и у многих других, есть группа меню Parameters. В самом верху группа опций Mapping и в ней большой список этих самых опций. На рис. 22.2 показана ситуация, когда выбрана опция Planar. Это значит, что текстура проецируется на объект, лучами, перпендикулярными плоскости, обозначенной оранжевым прямоугольником. То есть, рисунок расположен в этой плоскости, и плоскость как бы просвечивается лучами, которые перпендикулярны ей, и эти лучи проецируют рисунок на наш объект.

Очень много интересных и красочных картинок на эту тему можно посмотреть в хелпе 3ds MAX, если набрать во вкладке хелпа "указатель" слово UVW а затем под ним выбрать map modifier. Всё настолько наглядно, что понятно и без перевода.

Плоскость эта является подобъектом модификатора, этот подобъект называется Gizmo. Если перейти в режим работы с ним, то можно эту плоскость всячески вращать, двигать и масштабировать и смотреть, что при этом происходит с рисунком, который ложится на наш объект. Если кто хочет попробовать, кликайте на этот файл . Трансформации (перемещение, вращение, масштабирование) подобъекта Gizmo так же могут быть анимированы, для чего надо нажать кнопку Auto Key (Animate) и провести соответствующие действия в нужных кадрах. В файле сделана такая анимация, пусть вас это не смущает, если вы хотите повращать и подвигать Gizmo. В меню Curve Editor (Track View) если найти имя объекта, к которому применён наш модификатор, и у него развернуть ветвь Modifier Object, то там можно найти наш модификатор UVW Map, а если его развернуть, то можно найти в нём подобъект Gizmo, для которого тоже можно развернуть плюсик и получить доступ к вращению, перемещению и масштабированию и к их контроллерам анимации.

Обратите внимание, что у гизмо есть как бы хвостик. Он обозначает верх текстуры. То есть, верх картинки, показанной на рис. 22.1 будет находиться со стороны этого хвостика. Ещё, если Gizmo выделить, у него зелёным цветом будет отображаться правая сторона (то есть та сторона, которая соответствует правой стороне текстуры, показанной на рис. 22.1).

Теперь сразу спустимся в самый низ меню Parameters. Там есть группа опций Aligment. И сразу под надписью есть три переключателя: x, y и z. Они позволяют выбрать ось, вдоль которой будет проецироваться наша текстура (вдоль которой будут светить лучи проектора). Плоскость Gizmo будет перпендикулярна выбранной оси. Толко учтите, если вы уже покрутили Gizmo при помощи инструмента "вращение", то при переключении осей, Gizmo будет уже повёрнуто относительно выбранного направления на те углы, на которые мы его повернули.

Снизу есть кнопки:

  • Fit - вписать. По умолчанию, сразу после применения модификатора UVW map , эта операция уже осуществлена. Но если мы вращали Gizmo, или переключали оси, вдоль которых должно осуществляться проецирование, то наше Gizmo может расположиться так, что объект по некоторым направлениям или не влезает в него, или занимает слишком малую площадь. По нажатию кнопки Fit размеры Gizmo устанавливаются таким образом, чтобы проекция объкета на эту плоскость полностью вписывалась в неё, касаясь границ плоскости. А текстура при этом проецируется на объект так, чтобы натянуться на него полностью, но лишнего осталось бы по минимуму.
  • Bitmap Fit - устанавливает пропорции Gizmo так, чтобы они соответствовали пропорциям какой-либо картинки или видеоролика из файла (который понимает 3ds MAX). Файл надо будет указать после нажатия кнопки.
  • View Align - выравнивает Gizmo параллельно плоскости активного вида.
  • Reset - полезная кнопка. Если мы накрутили невесть чего, можно вернуть всё в первоначальное состояние.
  • Center - центрирует Gizmo по центру объекта.
  • Normal Align - делает Gizmo перпендикулярным выбранной нормали. Если кнопку нажать, она пожелтеет а курсор превратися в крестик. Если навести его потом на наш объект, нажать кнопку мыши и водить курсор, то крестик ездит по граням, а Gizmo поворачивается так, чтобы быть перпендикулярным нормали грани (то есть, параллельным самой этой грани).
  • Region Fit - вписать область. Если кнопку нажать, можно просто мышью натянуть прямоугольник нужного размера.
  • Accure - копирует настройки UVW Gizmo от другого объекта. Чтобы эта опция работала, к другому объекту, с которого осуществляется копирование, должен быть применён и не схлопнут модификатор UVW Map. Копирование можно осуществить по двум методам: относительный Releative - когда скопированный Gizmo размещается относительно опорной точки нашего объекта так же, как и у исходника, и абсолютный Absolute, когда Gizmo размешается точно в том же месте, где и у исходника. Выбрать эти режимы можно уже после того, как нажата кнопка Accure и выбран объект, с которого надо копировать настройки Gizmo. После этого появится меню.

Вот. Самые нужные в данный момент кнопки - это Fit и Reset .

Вернёмся к группе параметров Mapping. В самом верху расположен список переключателей:

  • Planar - Плоский - текстура проецируется с плоскости. Этот режим мы уже рассмотрели.
  • Cylindrical - Цилиндрический - текстура проецируется со стенок цилиндра, в который помещается объект. Текстура как бы оборачивает объект по цилиндрической поверхности. Если включить опцию Cap , то сверху и снизу создаются плоские крышки, с которых текстура проецируется на верхнюю и нижнюю часть объекта.
  • Spherical - Сферический - текстура заворачивается вокруг нашего объекта, как наклейка на глобус вокруг самого глобуса.
  • Shrink Wrap - Оборачивание - текстура оборачивается вокруг объекта, как будто мы положили объект на середину платка, а края платка стянули так, чтобы объект оказался внутри.
  • Box - Коробка - объект помещается внутрь параллелепипеда, с каждой из стенок которого проецируется одинаковая картинка. Картинка с каждой стороны параллелепипеда проецируется на грани, которые находялся под углом не больше 45 градусов к соответствующей стороне параллелепипеда. Если этот угол больше, то на соответствующую грань проецируется картинка уже с другой стороны этого же параллелепипеда.
  • Face - грань - Текстура натягивается на каждый треугольник индивидуально.
  • XYZ To UVW - накладывает текстуру так, как если бы она не проецировалась на объект, а залилась в пространство, как мы это рассматривали в предыдущей главе. Эта опция очень хороша для трёхмерных текстур. На рис. 22.3 б) можно посмотреть пример, как деформируется поверхность, к который применён этот режим наложения текстуры (применён под скиннинг).

Итак, на рис. 22.3 мы видим, как ведёт себя текстура, наложенная при помощи модификатора UVW Map. Рисунок а) мы уже видели в прошлой главе, а на рисунке б) показано, что и трёхмерную текстуру тоже можно привязать к граням. На самом деле, трёхмерную текстуру можно накладывать не только методом XYZ To UVW , но и всеми другими тоже. Но результат, полученный другими методами наложения будет труден для понимания, пока мы не рассмотрим подробнее, что же такое пространство UVW.

На рис. 22.4 можно видеть, насколько различается окраска моделей, к которым был применён один и тот же материал с одной и той же текстурой, но осуществлено наложение UVW Map по разным методам.

Почему так произошло? Потому, что когда применяется модификатор Planar, он как бы сжимает в UVW-пространстве наш объект таким образом, чтобы он влезал в квадрат размером 1х1 (это происходит с объектом в UVW-пространстве, в обычном же пространстве он остаётся неизменным). Дело в том, что плоские (двухмерные) текстуры в UVW пространство заливаются так, что они занимают там квадратики размером 1x1, поэтому если мы хотим, чтобы текстура натянулась на объект полностью и не повторялась на нём, то надо уместить весь наш объект целиком в такой квадратик.

Что касается метода XYZ To UVW, то он не сжимает объект в пространстве UVW, а создаёт его точную копию, то есть координаты для каждой вершины в пространсве UVW в точности равны координатам соответствующей ей вершины в пространсве XYZ. (В пространстве UVW у объекта грани те же самые, а врешины для них - другие).

Трёхмерная текстура Planet, которая показана на рис. 22.4 имеет размер цветовых пятен намного больше, чем 1х1 (можно, конечно, покрутить настройки и сделать пятна мельче, но у нас этого не сделано). Поэтому динозавр, к которому был применён метод текстурирования Planar в пространсве UVW уменьшился до размеров 1x1 и целиком попал в пятно одного цвета. Так же на нём не видно чешуек, ибо при текстурировании чешуйками (для свойства Bump) произошло то же самое - динозавр полностью вместился в размер одной чешуйки. В данном случае текстура чешуек Celluar, использованная для Bump и текстура для окраски Planet были залиты в одно и то же UVW пространство.

Можно было бы залить их в два разных UVW-пространства, тогда для каждого пришлось бы отдельно применять модификатор UVW Map.

Для этого у модификатора UVW Map существует группа параметров Channel. Выбирая номер Map Channel, мы выбираем номер UVW-пространства, которое создаётся и в которое помещается наш объект при помощи модификатора UVW Map. Можно переключить с Map Channel на Vertex Color Channel. Вообще, Vertex Color Channel имеет номер "0" и предназначен для хранения цветов вершин объекта. Но при желании цвета R (красный) G (зелёный) B (синий) - могут быть пересчитаны в координаты x, y, z по формуле:

Если мы потом этот модификатор схлопнем, то у нас пропадёт сделанная нами ранее окраска вершин. Если мы вершины не раскрашивали, то после схлопывания они приобретут цвета, которые вычисляются по формулам (22.2). Лучше накладывать текстуры в Map Channel, а не в Vertex Color Channel.

Пока, наверное, это нам не очень понятно, мы потом ещё будем разбираться с этими вещами отдельно. А пока мы не разобрались, будем заливать наши текстуры в UVW-пространства типа Map Channel с разными номерами.

Итак, все способы наложения текстур, кроме XYZ To UVW главным образом предназначены для наложения двухмерных карт.

Наложение текстуры при помощи Gizmo на примере Bitmap.

Особого внимания заслуживает двухмерная карта Bitmap, которая позволяет использовать в качестве текстуры любую растровую картинку, которую поддерживает 3ds MAX. Это значит, что мы можем нарисовать практически что угодно и наложить на наш объект.

Рассмотрим простой, (пока не очень правильный) пример как можно нарисовать и наложить текстуру в виде картинки.

Пока нам не достаточно знаний, чтобы создать сложную текстуру, которая обернёт наш объект нужным образом, мы сделаем просто: нарисуем такую текстуру, которую можно спроецировать сбоку. Для этого перейдём в вид сбоку (рис. 22.5):


Рис. 22.5. Вид объекта сбоку

Сфотографируем этот вид: для этого нажмём на клавиатуре Prt. Sc - кнопка Print Screen, она копирует то, что отображено на мониторе в буфер обмена. Правда, она не копирует курсоры мыши и видео, но нам этого и не надо. Далее запустим какой-нибудь графический редатор, типа Photoshop. У кого нет специального графического редактора (очень плохо, кстати), тому придётся запустить Ms Paint - который входит в комплект Windows. Далее надо вставить картинку из буфера обмена (кнопки Ctrl + v на клавитауре или инструмент Paste/Вставить в меню Edit вашего графического редактора).

Вставится весь экран монитора. Нам надо отрезать лишние края. В Photoshop это можно сделать если выделить нужную область инструментом Select, а потом в меню Image выбрать Crop. Тогда всё, что не влезло в рамку - отрежется. В Paint придётся уменьшать аттрибуты рисунка (в меню Рисунок), при этом может отрезаться не то, что надо. Не стремитесь отрезать точно по краям нашего силуэта! Оставьте вокруг небольшие поля.

Потом, кто работает в Photoshop, может создать новый слой (чтобы сохранился исходник), а может и не создавать. Далее рисуем при помощи кисточек и карандашиков нашу текстуру (рис. 22.6).

Опять же: не стремитесь нарисовать точно по контурам, пусть немножко вылезает, ничего страшного!

Теперь сохраняем наш файл, кто работат в Photoshop может сохраниять прямо в PSD.

Внимание: файлы с картинками, в которых хранятся текстуры к нашей модели лучше сохранять в ту же папочку, где находится наша модель. Можно в той же папочке для текстур создать отдельную папочку, иногда это бывает удобно. Сами текстуры не встраиваются в файл с моделью, они всегда хранятся отдельно. Если текстуры лежат в той же папке, что и файл с моделью, то когда вся папка перемещается, 3ds MAX потом быстро находит текстуру. Так же он её находит, когда текстура лежит в папке Maps, которая находится рабочей папке 3ds MAX. Но там ваши текстуры лучше не хранить. Во-первых, потому что в одной папке нельзя хранить много файлов с одинаковыми названиями, во-вторых, там и без того много всяких текстур, вам трудно будет отыскивать нужную, в-третьих, если вы будете переустанавливать программы, можете случайно стереть ваши текстуры, ну и в-четвёртых, если вы захотите перенести файлы на другой компьютер, вам это будет сделать гораздо удобнее, когда всё лежит в одной папке.

В редакторе материалов для свойства Diffuse выберем карту Bitmap. В группе меню Bitmap Parameters сразу в самом верху есть длинная кнопка, слева от которой написано Bitmap. Надо нажать на эту кнопку и указать размещение файла с картинкой.

Все параметры оставим пока по умолчанию. Обратите внимание, что Map Channel = 1 по умолчанию. Теперь надо применить к модели модификатор UVW Map. И применить его надо для того же Map Channel, который указан для нашей текстуры (то есть, для первого) (рис. 22.8).

Во-первых, поскольку у нас вид сбоку, в группе параметров Aligment надо указать направление X. При таком расположении картинки, как показано на рис. 22.6, надо чтобы хвостик, показывающий верх, распогалался сверху модели. Для этого Gizmo надо будет повернуть вокруг оси X на углы, кратные 90°. Помните, что существует несколько вспомогательных систем координат, ориентация которых может зависеть от вида. Чтобы не было разночтений, лучше выбрать вспомогательную систему координат World (Глава 3, Системы координат в 3ds MAX). После выполнения всех поворотов, лучше нажать кнопку Fit, чтобы границы Gizmo установились по крайним точкам объекта.

Потом наш Gizmo надо будет ещё немного подвигать в плоскости XZ и помасштабировать в ней же, чтобы текстура полностью "наделась" на объект. На рис. 22.8 видно, что Gizmo несколько больше самого объекта.

Вот что получилось в итоге (Рис. 22.9):

Здесь мы редактировали Gizmo чтобы вписать наш объект в текстуру. А можно сделать другое: наложить текстуру так, чтобы она налезала не на весь наш объект, а только на его часть. Возьмём картинку, изображающую надпись (рис. 22.10).

По умолчанию к объекту Box координаты наложения применены по тому же методу Box. Применим теперь UVW Map в режиме Planar.

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

Теперь будем равномерно масштабировать Gizmo до тех пор, пока надпись не станет нужного размера (рис. 22.13).

Рис. 22.13. При уменьшении Gizmo мы видим, что рисунок повторяется периодически.

Эффект, который можно видеть на рис. 22.13 происходит из-за того, что когда текстура заливается в UVW-пространство, она там периодически повторяется. Один период двухмерной текстуры занимает квадратик размером 1х1. Вспомогательный объект Gizmo показывает нам, какие размеры будет иметь текстура относительно нашего объекта, но на самом деле, когда мы производим операции с Gizmo, объект в просаранстве UVW меняет свои размеры. Сейчас у нас объект стал больше, чем квадратик 1x1 и охватил своей площадью несколько периодов текстуры.

А нам надо, чтобы надпись повторялась только один раз! Для этого надо зайти в редактор материалов в параметры нашей карты и в группе меню Coordinates выключить флажки Tile (повторять). Теперь порядок (рис. 22.14):

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

К слову сказать, если мы сейчас перевернём наш Box и посмотрим на него снизу, то там мы тоже увидим эту надпись, только отражённую зеркально. Чтобы этого не было в группе меню Coordinates надо выключить флажок Show Map on Back - показывать карту с задней стороны. В окнах проекций при этом она ещё может отображаться, но при рендеринге её точно не будет. О задней стороне: в пространстве UVW, когда речь идёт о двухмерных текстурах, есть некое направление проецирования текстуры. Если вектор проецирования (или, кому удобнее - луч проектора) натыкается на лицевую сторону грани, то текстура проецируется, если же на изнаночную - то при выключенном флажке Show Map on Back - текстура не проецируется на грань, повёрнутую к ней изнанкой.

Использование нескольких UVW пространств

Мы познакомились со свойствами материала Diffuse и Bump. Допустим, мы хотим, чтобы теперь наш динозавр, раскрашенный при помощи карты Bitmap покрылся выпуклыми чешуйками карты Celluar, при том, чтобы при деформации Celluar не плыл. Карту Celluar мы будем применять для свойства Bump.

Чтобы карта Celluar не плыла, для неё надо выбрать режим Explicit Map Channel. Если мы это сделаем, и оставим в качестве Map Channel первый канал, то будет ситуация, показанная на рис. 22.4 для динозавра, изображённого слева. Дело в том, что мы применили для первого канала UVW Map с методом Planar, и уже говорилось, что при этом происходит с трёхмерными текстурами. Сделать UVW Map по методу XYZ To UVW можно, но только не для первого канала, иначе мы потеряем уже сделанные настройки для Bitmap.

Напомним, что модификатор UVW Map применяется не к карте, а к объекту. И если для первого канала мы применили UVW Map, значит, мы создали UVW-пространство, в котором особым образом расположился наш объект. Мы можем в это пространство заливать разные текстуры, но накладываться они будут на такой объект, каким он стал в первом UVW-пространстве после действия модификатора UVW Map.

Для трёхмерной карты Celluar лучше прменить модификатор UVW Map в режиме XYZ To UVW. И чтобы не испортить пространство для наложения карты Bitmap, мы применим этот метод для второго канала (для второго UVW-пространства). Для этого надо ещё раз применить к объекту модификатор UVW Map, только для Map Channel указать цифру 2. И для карты Celluar, применённой в свойство Bump тоже указать Map Channel = 2, тогда она зальётся во второе UVW-пространство.

Если, к примеру, мы укажем для карты Map Channel = 2, а модификатор UVW Map для второго канала не применим, то при рендеринге нам выдастся сообщение, что мы этого не сделали. Будет указано, для какого канала и для какого объекта не создано UVW-пространство. Не забудьте, что трёхмерную карту Celluar надо наложить по методу XYZ To UVW!

Комбинирование карт

Тогда нам понадобится карта Composite - это карта-композитор, которая позволяет смешивать несколько других карт.

В нашем материале заменим карту Bitmap для свойства Diffuse на карту Composite. Для этого, в режиме работы с картой надо нажать на кнопку, на которой сейчас у нас написано Bitmap (см. рис. 22.7). Мы попадём в навигатор карт, выберем там Composite. У нас появится окошко, в котором будет предложен выбор:

  • Discard Old Map? - удалить старую карту?
  • Keep old map as sub-map? - сохранить старую карту как под-карту?

Мы выберем второй вариант, чтобы наша карта сохранилась и нажмём "Ок"

Теперь у нас вместо надписи Bitmap на кнопке написано Composite, а вместо параметров карты Bitmap параметры карты Composite.

Их немного: кнопка Set Number (выбрать число карт для компановки), а справа в сером окошке отображено число карт, которые мы будем компоновать.

Ещё ниже - в столбик надписи Map # (карта №) и напротив них кнопки с названиями карт. В одной такой кнопке должна была сохраниться наша карта Bitmap (поскольку мы выбрали второй вариант - с сохранением исходной карты). За кнопками - квадратики с флажками, если флажок стоит - карта включена. Её можно и выключить, тогда она не будет влиять.

Поскольку у нас дело набирает серьёзные обороты, пора приступить к именованию карт. Карту Composite мы назовём Dino Diffuse (название впечатывается в строку перед кнопкой, на которой написано Composite).

Теперь, если нажать на кнопку с картой Bitmap, мы попадём в её параметры, и тут же можно сменить ей имя в строке напротив кнопочки с надписью Bitmap (которая появится вместо надписи Composite). Эту карту назовём Dino Skin Color. Почему эту карту надо поместить в первый слот (первую кнопку) карты Composite? Потому, что под-карты в Composite накладываются друг на дружку, под-карты с маленькими номерами помещаются в самый нижний слой, а с большими - в верхний. Надпись нам надо поместить поверх основной раскраски, поэтму её мы поместим в кнопку номер 2. Для этого выйдем из Bitmap на верхний уровень, в карту Composite (), нажмём на кнопку напротив надписи Map 2, выберем для неё опять же карту Bitmap, для которой загрузим картинку, показанную на рис. 22.10, а саму карту Bitmap назовём её Dino tattoo.

Напоминание: кнопка Go To Parent позволяет выйти из режима работы с картой в режим работы с материалом или родительской картой, которая включает в себя исходную карту. Грубо говоря, эта кнопка выводит нас на уровень вверх. Если мы для карты Dino tattoo оставим Map Channel 1, то при нажатии для неё кнопки Show Map In Viewport увидим вот что (рис. 22.16):

Рис. 22.16

Как мы видим, в первом канале надпись накладывается плохо. Учтите! Использовать UVW Map для первого канала нельзя, иначе мы нарушем наложение карты Dino Skin Color. Второй канал у нас занят под Celluar-карту, которая тоже наложена не так, как стоило бы наложить надпись. Остаётся только залить эту карту в третий, пока ещё свободный канал и ещё раз применить UVW Map для третьего канала.

Так и поступим. Сделаем все настройки для карты Dino tattoo так же, как мы их делали, когда накладывали эту надпись на объект Box, а саму надпись смасштабируем нужным образом. Не забудем поставить для нашей карты Map Channel 3 (Рис. 22.17).

Теперь, чтобы сделать нашу надпись прозрачной, можно в группе параметров Output карты Dino tattoo включить флажок Alpha From RGB Intensity - брать непрозрачность из яркости картинки. В нашем случае это вполне преемлимо.

Теперь, для того, чтобы уяснить всё до конца, поставим такую же надпись в другое место. Скажем, закрутим вокруг шеи. Для того, чтобы разместить её в другое место, надо снова задействовать модификатор UVW Map. И как вы догадываетесь, чтобы не повредить наложение предыдущей надписи, снова придётся применить новый Map Channel (4).

К сожалению, вылить одну и ту же текстуру в два UVW-пространства нельзя, поэтому придётся создать копию нашей карты Dino tattoo, которая будет отличаться от исходной лишь тем, что у неё будет указан Map Channel = 4.

В режиме работы с картой Composite нажмём кнопку Set Nember и впечатаем 3. Внимание! Если вы уменьшите число и нажмёте Ok, то последние карты пропадут! Если вы потом снова увеличите число, то появившиеся кнопки будут пусты.

Увеличивать число можно безболезненно.

Теперь нажмём мышкой на кнопку, в которую помещена карта Dino tattoo и потащим её в свободную кнопку (Map 3). В появившемся меню выберем Copy (скопировать). Не выбирайте Instance, иначе у нас будут зависимые копии, полностью одинаковые!!! А нам надо, чтобы Map Channel отличались!

Копия карты будет иметь имя Map #, мы переназовём её в Dino Tattoo2. Не забудем указать для неё Map Channel = 4.

Теперь применим UVW Map и у него тоже поставим Map Channel = 4. На сей раз будем осуществлять наложение по методу Cylindrical. Здесь тоже можно сделать Bitmap Fit. Для работы с цилиндрическим Gizmo удобно пользоваться локлаьной системой координат.

И вот что у нас получилось в итоге.

Поскольку основы - они и в Африке основы, то принципы работы с 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-карта) на практике используется очень часто. Оно незаменимо, когда разные подобъекты требуют различных методов проецирования. Данный модификатор выбирается из общего списка модификаторов панели 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

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). Теперь можно разнести выбранные грани в стороны без растяжения прилегающих граней.