Кто не хочет читать ONLINE, можете скачать доступные части книги:
Скачать часть1 (1.1 Мб) - Ознакомление с программой 3ds MAX
Скачать часть2 (1.4 Мб) - Объекты произвольной формы
Скачать часть3 (2.2 Мб) (не завершена) - Текстурирование
В предыдущих двух главах часто упоминались некие UVW-пространства и координаты наложения. Далее вместо UVW-пространства просто будем говорить - канал карты (Map Channel), что то же самое. Канал карты - это и есть UVW-пространство, в которое залита наша карта и в котором она встречается с нашим объектом. Карту можно залить либо в канал, но тогда, чтобы она встретилась с объектом, этот канал у объекта должен быть создан. Либо карту можно залить в само пространство XYZ, в мировое или локальное пространство объекта.
В предыдущей главе мы разобрались, что модификатор UVW Map создаёт это самое UVW-пространство, то есть канал карты для объекта и определяет, каким же образом карта наложится на наш объект. В прошлой главе всё выглядело не так, словно объект располагается в неком пространстве с картой, а так, будто бы карта накладывается на наш объект.
Модификатор UVW Map сделан так, чтобы нам было наглядно и удобно осуществить наложение карты. На самом же деле, наложение текстуры хранится именно в виде координат наложения, размещённых в канале карты.
Координаты наложения - это координаты неких вершин, на которые натянуты грани объекта. При том, это совсем не те вершины, на которые натянуты грани объекта в пространстве XYZ. Одна и та же грань (для простоты будем рассматривать грань-треугольник) может быть натянута сразу на несколько троек вершин. Первая тройка вершин лежит в пространстве XYZ, а все остальные - в каналах карты. Сколько каналов карт есть у объекта, столько дополнительных наборов вершин будет у этого объекта.
Представить это себе невозможно, но вспомним, что пространство UVW, оно же канал карты - это параллельное пространство. В нём не существует вершин из пространства XYZ, не существует и вершин из других каналов карт, только вершины из данного канала. А грани - они и в пространстве XYZ и в пространстве UVW все одни и те же, просто в зависимости от координат вершин будут иметь разную форму.
Как же можно попасть в пространство UVW? Для этого существует модификатор Unwrap UVW (развернуть в UVW - пространстве). Как и модификатор UVW Map он имеет такой параметр как Map Channel, в котором надо указать, в какой канал карты мы хотим залезть. Учтите, что этот модификатор за один раз может обрабатывать только один канал карты. Если мы в течении работы с модификатором канал карты изменим на другой, то потеряем все наработки, сделанные в течении работы с предыдущем каналом. При каждой попытке изменить Map Channel будет выдаваться предупреждение об этом. Если мы только что применили модификатор и ещё ничего не делали, можете смело менять Map Channel, не боясь что-либо потерять.
Этот модификатор так же можно схлопывать, и тогда сохранятся все сделанные нами изменения на базовом уровне объекта.
В прошлой главе мы применили к динозавру целых 4 модификатора UVW Map. Всё это мы делали поверх Symmetry, так что наложение текстур у нас по идее не симметричное. Одна, первая текстура, конечно, наложена симметрично, ибо мы её так накладывали - проецировали сбоку. А все другие - не симметрично. Первое наложение UVW Map можно поместить под Symmetry и схлопнуть при помощи Collapse To. В стеке модификатора UVW Map для первого канала больше не будет, но наложение текстуры в первый канал сохранится, и его можно посмотреть и подредактировать при помощи модификатора Unwrap UVW. (Можно и не схлопывать UVW Map для первого канала, но поместим его под Symmetry, чтобы работать только с одной половинкой.) Итак, тот UVW Map, который мы применили для первого канала, поместим под Symmetry, а прямо поверх него применим Unwrap UVW.
Примечание: Модификаторы в стеке можно переименовать для удобства. Для этого надо кликнуть по нужному модификатору правой кнопкой и выбрать Rename. Можно дописать в конец каждому UVW Map номер канала для удобства.
Наиболее интересна у модификатора Unwrap UVW кнопка Edit которая находится в группе Parameters. Вот её и нажмём. Должно открыться такое окно (рис. 23.1)
Рис. 23.1 Редактор развёртки. Тёмно-синий квадрат - область, в которой находится один период нашей текстуры. |
Это и есть редактор развёртки. Квадрат в центре поля, обведённый тёмными синими линиями - это и есть квадрат размером 1х1, в который заливается двухмерная текстура. По умолчанию текстура может быть отображена в редакторе развёрток, а может так быть, что её и нет, как в данном случае.
В разворачивающемся меню в верхнем правом углу написано название карты, которая в данный момент помещена на задний план (но не видна потому, что у неё слишком крупная фактрура, размер пятнышка больше чем 1х1, поэтому сейчас мы видим практически монотонный задний фон).
Если развернуть это меню, там может быть на выбор несколько разных карт, в том числе, и опция Pick Texture - выбрать текстуру. Если вы не видите в названии нужной вам карты, следует нажимать эту опцию. У меня в списке была карта Composite, при выборе которой отобразилась надпись, показанная на рис. 22.10. Нам же надо, чтобы сейчас отобразился рисунок, показанный на рис. 22.6. (Он соответствует карте, которую мы назвали Dino Skin Color). Поэтому нажимаем опцию Pick Texture. Откроется навигатор карт. В нём поставим кружок Mtl Editor а потом выберем из списка нашу карту Dino Skin Color. Обратите внимание, что карты имеют иерархию. В навигаторе справа есть флажок Root Only. Если он стоит, отображаются только корневые карты иерархии, а это значит, что под-карты, которые входят в состав других карт, не отобразятся.
Наша карта Dino Skin Color является под-картой карты Composite, поэтому нам надо отключить опцию Root Only, чтобы её найти. Выбрать надо не всю карту Composite, а только её компонент. Потому, что в редакторе развёрток ещё техника не дошла до того, чтобы отображать сложные составные карты целиком, и вместо них отображается лишь одна из подкарт, при том, какая именно - заранее сказать сложно. В общем, часто отображать составные карты в редакторе развёрток вообще противопоказано, например, когда компоненты таких карт заливаются в разные мап-каналы.
После того, как мы выберем карту Dino Skin Color при помощи Pick Texture, выглядеть наше окно будет примерно так (рис. 23.2):
Рис. 23.2. Редактор развёрток с текстурой на заднем плане |
Пользователи некоторых версий 3ds MAX могут вообще не увидеть у себя в редакторе развёрток никаких карт. Это не глюк, это потому, что в некоторых версиях, например в пятой, по умолчанию яркость текстуры на заднем плане равна 0. В четвёртой - наоборот, она равна 1, и если текстура сама по себе яркая, это может создать некоторые неудобства. В 6-7-й версиях яркость по умолчанию равна 0.5. Чтобы поставить нужную нам яркость, надо зайти в меню редактора развёрток Options, выбрать там Advanced Options... и в появившемя окне поставить нужное значение параметра Tile Brightness. Мы поствим 1, у нас текстура не слишком пёстрая, пусть она будет поярче.
Внимание: чтобы изменения, сделанные в окне Advanced Options вступили в силу, надо либо нажать Enter, а потом кликнуть Ok, либо просто два раза кликнуть по кнопке Ok в этом окне. Первый раз или Enter - как бы делает Preview, и после этого можно впечатывать другие настройки, второй клик по Ok - окончательно применяет все изменения и закрывает окно.
Рис. 23.3. |
Теперь нам всё хорошо видно. Здесь, в редакторе развёрток показан наш объект в пространстве UVW, в одной из проекций (на рис. 23.3 - это проекция в плоскость UV). Напомним, что координаты UVW аналогичны XYZ, просто названы по-другому. Опять же в верхнем правом углу напротив меню, где выбирают текстуры, есть кнопочка-переключатель, на которой и написано, какая из проекций отображается в редакторе развёрток. Переключая кнопку, мы можем посмотреть на разные проекции нашего объекта. Если мы это сделаем сейчас, то увидем, что он в UVW-пространстве (в канале карты) похож на себя же в пространстве XYZ, просто смасштабирован таким образом, чтобы влезать в куб размера 1х1х1.
К слову сказать, если бы мы применили другой метод UVW Map, к примеру цилиндрический (или сферический), объект бы наш в UVW-пространстве развернулся, а не сохранил бы более-менее исходную форму. Мы потом ещё всё это увидим. Поскольку мы маштабировали Gizmo для нашего первого модификатора UVW Map, наш обеъект в проекции UV меньше квадрата 1х1.
Сейчас же у нас имеется возможность поправить положение вершин так, чтобы натянуть наш объект на текстуру. Для этого надо воспользоваться кнопкой "перемещение", которая выглядит так же, как в главном окне 3ds MAX. Поперетаскиваем вершины. Благо, у нас их не много. Мы потому и не дорисовали эту модель, чтобы было меньше вершин при наложении текстур. Дальше мы поймём, что дорисовать можно будет потом, и потом это сделать будет лучше.
Рис.23.4. Подредактированная развёртка |
Мы внесли несущественные изменения, а для сравнения можете посмотреть, как выглядела модель до того, как мы начали редактировать её форму в UVW-пространстве и как она стала выглядеть после этого.
Рис. 23.5. Слева модель с редактированной развёрткой (рис. 22.4) справа - с нередактированной (рис. 22.3) |
Как мы видим, после редактирования развёртки глаза убрались со лба, а рисунок на спине изменился. В нередакрированной модели рисунок на спине и животе сильно растянут. И против этого не помогло бы даже цилиндрическое наложение текстуры, ведь тогда бы потянулась текстура на ногах и руках, да и к тому же, не имеет наш объект такой формы, на которую цилиндрическим методом текстура ляжет хорошо.
Редактирование объекта в UVW пространстве просто жизненно необходимо. Но только делать надо не так, как мы поступили в данном случае, а иначе. Сначала надо развернуть наш объект в пространстве UVW, а уже потом, по созданной развёртке рисовать для него текстуру.
Вообще, если говорить о реальных объектах, конечно же текстура на них ни в одном месте не повторяется. Чтобы и у нас не повторялась, объект должен быть развёрнут в пространстве UVW так, чтобы все участки были развёрнуты и не наползали один на другой. Поскольку объект, как правило, представляет собой замкнутую поверхность, в некоторых местах его придётся разрезать, чтобы развернуть такие части, которые представляют собой трубки (например руки, ноги, пальцы).
Как это сделать? Во-первых, в самом редакторе развёртки есть инструменты, позволяющие разрезать или иным образом разделить выбранный подобъект.
Мы больше не будем ориентироваться на эту текстуру, которую мы нарисовали на скору руку, а развёртку делать будем на будущее. Потому что в любом случае удобно рисовать уже тогда, когда развёртка имеется.
Итак, уберём с заднего плана эту текстуру, чтобы она больше нам не мешала. Для этого надо выключить в верхнем правом углу редактора развёртки кнопочку Show Map.
И проследим процесс создания такой развёртки с самого начала.
1. Сначала создаётся заготовка геометрического объекта. Можно, конечно, проработать объект до конца, но лучше так вот сразу этого не делать. Чтобы проще изготавливалась развёртка. Мы будем работать с нашей заготовкой динозавра.
2. Чтобы было чего разворачивать, необходимо создать координаты наложения в соответствующем канале Map Channel. Если объект начинали изготавливать из примитива с уже созданными координатами нложения, то у него они должны быть, но совершенно не известно, какую форму они имеют. У объекта Box например, все грани расположены в UVW-пространстве одинаково и совпадают друг с дружкой. Поэтому в любом случае желательно применить модификатор UVW Map, чтобы создать или нужным образом пересоздать координаты наложения.
3. Приступить к редактированию развёртки с помощью модификатора Unwrap UVW. Кстати, о птичках. Можно с помощью этого модификатора сразу посмотреть, как действуют разные методы UVW map. Применив модификатор Unwrap UVW для того же канала что и UVW Map и нажав кнопку Edit можно сразу видеть, как расположился объект в UVW-пространстве. Правда, видеть можно только с одной стороны (в одной из ортогональных проекций).
Вообще, редактор развёртки, доступный в модификаторе Unwrap UVW, позволяет видеть объект в UVW-пространстве только в ортогональных проекциях. Их можно переключать при помощи кнопки-переключателя, расположенной рядом с кнопкой . Кнопка-переключатель позволяет выбирать соответственно три плоскости: UV, UW, VW, и, соответственно, смотреть на объект с разных отрогональных видов. И тут можно заметить, что развёрки не плоские. Какой бы метод проекции мы не применили (плоскостной Planar, цилиндрический Cylinder, сферический Spherical, коробка Box или оборачивание Shrink Wrap) объект в UVW-пространстве плоским не будет. Если посмотреть на него с разных сторон, то с разных сторон его проекции будут иметь какую-то площадь. При желании, можно потом сделать их плоскими по одному из направлений.
Итак, приступим. Работать будем с заготовкой, на начальном этапе - только с одной половиной. Если в стеке есть другие модификаторы, например Symmetry и Meshsmooth (TurboSmooth) или другие, которые нам могут быть нужны, работать будем ниже них, и схлопывать методом Collapse To тоже будем только то, что ниже них.
Но для простоты будем считать, что у нас вообще нет никаких модификаторов, только одна половинка базового объекта (вернее, заготовки).
Итак, сначала применяем UVW map к нашей половинке. Если объект похож на (полу)сферу, то к нему желательно применить UVW map по методу Spherical или Shrink Wrap. При том подобъект Gizmo расположить так, чтобы его центр по возможности совпадал с центром (полу)сферы. Аналогично, если объект похож на (полу)цилиндр, лучше прменить к нему UVW map по методу Cilindrical. Метод Box хорош только в том случае, если мы накладываем текстуру на параллелепипед и если нас устраивает тот факт, что на всех грянях параллелепипеда будут одинаковые рисунки. Или, можно сделать разные рисунки, если к каждой грани применить свой материал (при помощи материала Multi-Sub Object и разных ID для каждой грани). Но мы сейчас будем изготавливать текстуру для всего объекта сразу. Вполне возможно, что нам потребуется к разным граням объета применить разные ID, но текстура будет изготавливаться так, чтобы она не повторялась на объекте в любом случае, не зависимо от того, имеют ли его грани один и тот же ID, или же разные ID.
В самом общем случае для начала надо применить UVW map по методу Planar, при том так, чтобы плоскость проецирования располагалась вдоль наиболее протяжённой стороны объекта. Не обязательно Gizmo должен быть перпендикулярен одной из координатных осей, можно расположить его и под некоторым углом. В нашем случае с заготовкой динозавра, сделаем проекцию Planar перпендикулярно оси X для Map Channel = 1.
Далее этот модификатор UVW map сразу схлопнем, чтобы он нам не мешал. В процессе разворачивания объекта в UVW-пространстве нам ещё не раз может понадобиться применить UVW-map, и совершенно незачем копить эти модификаторы в стеке, будем их сразу схлопывать.
Далее применяем Unwrap UVW для того же Map Channel = 1. И нажимаем кнопку Edit.
Мы должны увидеть что-то похожее на рисунок 23.1. Возможно объект будет повёрнут иначе, в зависимости от того, как мы применили наш Gizmo.
Прежде чем продолжать, рассмотрим меню редактора развёрток (рис. 23.6).
Рис. 23.6. Окно редактора развёрток (режим работы с гранями, красным в клеточку отмечены выделенные грани) 1, 2, 3, - перемещение, вращение, маштабирование выделенных подобъектов. 4 - вокруг выделенных подобъектов образуется рамка, которую можно менять. Потянув за углы, можно изменить размер рамки и всего, что в ней находится. Точки в середине рёбер рамки служат для вращения рамки с содержимым, а крестик в центре - для перемещения. 5 - отражение выделенных подобъектов. 6 - переключатель - отображать или нет текстуру на заднем плане редактора. 7 - переключатель видов. Можно выбрать одну из трёх взаимноперпендикулярных плоскостей и видеть разные проекции развёртки нашего объекта. 8 - меню выбора текстур. Можно выбрать любую из текстур в списке, или при помощи пункта Pick Texture поместить в редактор новую текстуру. 9 - переключатель. Если переключатель находится в такой позиции, как на рисунке, каждый из выделенных подобъектов принимает те значения координат, которые вводятся в поля 10a, 10b и 10c. Если его переключить в другую позицию, то подобъекты будут перемещаться как группа - то есть их положение друг относительно друга сохранится, а в указанное место переместится центр группы. 11 - Lock selected verticies - закрепляет и открепляет выделение. Если включить, то то, что выделено, не отвыделится если кликнуть мимо выделения. Если выключить - отвыделится. 12 - Filter selected faces. 13 - здесь можно указать, показывать ли все грани объекта (all ids) или только с определённым значением id. 14 - лапа (перетаскивание картинки в окне). 15 - лупа (увеличить-уменьшить). 16 - лупа с рамочкой - выделить прямоугольную область и растянуть её содержимое на всё окно. 17 - вписать в окно все подобъекты. 18 - snap to grid - притягивание перемещаемых подобъектов к узлам сетки. |
Как уже говорилось, пространство UVW тоже трёхмерное, и мы видим объект с одной из сторон. По умолчанию объект отображается в проекции UV. Если мы до этого применили модификатор UVW map по методу Planar, то плоскость UV будет параллельна Gizmo модификатора. Если Cilindrical - то эта плоскость UV параллельна поверхности цилиндра, если её развернуть. Если метод Spherical - то развёрнутой поверхности сферы. На самом деле развёртка не плоская, убедиться в этом можно если попереключать кнопку которая на рисунке 23.6 помечена цифрой 6.
Если мы применяем модификатор UVW map по методу XYZ To UVW, то в проекции UV наш объект будет точной копией проекции XY. И вообще этот метод создаёт точную копию объекта в UVW-пространстве.
Теперь о главном меню.
- позволяет сохранять и загружать развёртку. То есть результаты вашего редактирования можно сохранить в специальный файлик. А потом из файлика загрузить, если вдруг случайно испортим развёртку. Надо понимать, что такие файлики хорошо применяются только к тому объекту, для которого непосредственно изготавливалась развёртка. Загрузить подобный файлик можно и в другой Map Channel. Для этого надо применить модификатор Unwrap UVW для другого канала объекта и через меню File загрузить файлик uvw. Reset - обнуляет все наработки, сделанные в ходе применения модификатора Unwrap UVW пока он не схлопнут. Если его схлопнуть, потом применить другой Unwrap UVW, он не отменит действий первого!
- здесь продублированы инструменты перемещение (move mode), вращение (rotate mode), масштабирование (scale mode), трансформации при помощи рамки (free-form gizmo mode). Так же копировать Copy и Paste. Они служат для переноса состояния развёртки в другой Map Channel без использования записи в файлик. Четобы перенести всю развёртку или её часть по этому методу, надо выделить все вершины (или только нужные) и в меню модификатора Unwrap UVW изменить значение Map Channel. Помните, что при этом все наработки в текущем Map Channel пропадут. Чтобы их сохранить, примените сверху другой модификатор Unwrap UVW (нижний можно схлопнуть при желании), а уж им выделите и скопируйте развёртку, а потом меняйте Map Channel и вставляйте туда данные при помощи Paste или Paste Weld (вставка со сплавлением вершин - все близкорасположенные вершины слипнутся).
Select - здесь можно выбирать, с какими подобъектами мы будем работать (вершины, рёбра, грани).
Первая строка - Get Selection From Viewport - если нажать, в редакторе выделятся те же самые подобъекты, которые были выделены в режиме Edit(able) Mesh/Poly/Patch/Spline.
Более интересные строки идут ниже. Они приметро такие: Convert sm1 to sm2. То бишь преобразовать нечто1 в нечто2. Последнее слово (sm2), собственно, определяет, в режим работы с какими подобъектами мы перейдём. А первое (sm1) нужно соблюсти если мы хотим сохранить выделение. Например, у нас выделено несколько вершин (выделить несколько можно как и обычно, удерживая клавишу Ctrl). А мы хотим, чтобы при переходе в режим работы с гранями, у нас сразу были выделены грани, натянутые на этих вершинах. Тогда мы выбираем Convert Vertex to Face. Есоли выделены не все вершины от каких-либо граней, те грани не выделятся. Аналогично и с остальными типами подобъектов.
Если нам не надо сохранять выделение таким вот образом, а просто переключиться, скажем, в режим работы с гранями, то не важно, что стоит на первом месте, можно выбрать как Convert Vertex to Face или Convert Edge to Face. Не зависимо от того, с какими подобъектами мы работали в данный момент. Например, работали с вершинами (Vertex) а хотим работать с рёбрами (Edge). Можно нажать Convert Face to Edge (хотя мы не с гранями сейчас работаем) и перейдём в режим работы с рёбрами. А можно нажать и Convert Vertex to Edge.
Пространство UVW такое же трёхмерное, как и XYZ, и координаты в нём аналогичные. Поэтому некоторые грани могут быть повёрнуты к нам изнаночной стороной. Их все можно выделить нажав Select Inverted Faces (активно только в режиме работы с гранями). Инструмент Select Inverted Faces поможет проверить, есть ли у нас в окне проекции грани, повёрнутые к нам изнанкой.
Flip Horizontal - флипнуть горизонтально. То есть сделать зеркальное отражение выделенных подобъектов параллельно горизонтальному направлению. Верх и низ сохраняются, а право и лево меняются местами. При этом грани поворачиваются к нам другой стороной (внешне не видно, но можно проверить при помощи Select Inverted Faces).
Flip Vertical - то же самое, но вдоль вертикального направления. Верх и низ меняются местами.
Mirror Horizontal, Mirror Vertical - похоже, то же самое. Mirror - зеркало.
Weld Selected - сплавить выделенное. Если выделенные подобъекты имеют близкорасположенные вершины, такие вершины слипаются.
Target Weld - прицельное склеивание. Это такой режим работы. В нём можно одновременно держать выделенной только одну вершину. Если подтащить эту вершину близко к какой-либо другой вершине, курсор изменится. И если после того как он изменится отпустить, подтащенная вершина прилипнет к другой вершине. Если не хотите чтобы она прилипала - оттащите подальше, чтобы курсор стал опять нормальным, а потом отпускайте.
Break - разбить. Эта команда в режиме работы с вершанами разъединяет уголки всех граней, натянутых на выделенные вершины. В местах одной вершины появляется несколько - по одной на каждый уголок. После этого уголки можно растащить друг от друга. В режиме работы с гранями - отсоединяет выделенную грань или группу граней от всей остальной поверхности. После этого грань или группу граней можно перетаскивать в другое место и ничего не будет тянуться следом. В режиме работы с рёбрами разрезает поверхность по выделенным рёбрам.
Detach Edge Verts - аналогично предыдущей команде.
Stitch Selected - сшить выделенное. Если выделить один подобъект, по которому в развёртке есть разрез, отсутствующий на исходном объекте и нажать эту команду, к выделенному подобъекту автоматически пришьётся то, что к нему пришито в реальном пространстве XYZ.
Pack UVWs - когда развёртка уже разрезана на несколько частей, эта команда поворачивает эти части и располагает в квадрате так, чтобы они умещались в нём наиболее компактным образом.
Sketch Verts - что-то заумное. Поэкспериментируйте, если есть желание, может поймёте что к чему.
Relax Dialog - расслабление. Выделенные подобъекты располагает так, чтобы они располагались как можно более гладко. Применять следует с осторожностью, ибо результат может быть и не желаемым. Параметры Value и Iterations - можно покрутить и посмотреть что выходит. Value - величина, сила вздействия от нуля до единицы, Iterations - число последовательных проходов - сколько раз прогнать эту операцию.
- ужасная автоматика, на которую лучше не полагаться. Эти инструменты помгут вам автоматически разрезать ваш объект на кусочки и создать его развёртку, но только в получившемся результате трудно будет разобраться.
Flattern Mapping - создаёт развёртку. Сам режет по швам, сам разворачивает. Но проблема в том - что и сам же решает, где и как делать разрезы, и в итоге нарезает на много мелких кусочков, что потом не разберёшься где что было. Если текстуру планируется рисовать - вряд ли возможно будет что-то нарисовать по таким непонятным обрывкам.
Normal Mapping - разрезает на части, чтобы повернуть все грани лицевой стороной к нам. Частей не много, но они особо не разворачиваются. Только отделяется группы содержащие повёрнутые к нам задом грани и поворачиваются передом. При этом форма таких частей сохраняется. То есть объект просто разрезают, но не растягивают.
Unfold Mapping - разглаживание складок. Лучше применять когда развёртка более-менее растянута.
Здесь можно настроить параметра редактора.
Advanced Options... - этот пункт открывает окно, в котором можно настроить опции.
Рис. 23.7. Опции редактора развёртки.
|
Чтобы изменения вступили в силу, надо нажать Ok два раза. Одно нажатие отображает изменения в окне редактора развёртки (как бы preview такой), а второе - закрывает окно с принятием всех сделанных изменений. Если закрыть окно крестиком в верхнем правом углу, изменения не примутся. Так же как и если нажать Cancel. Кнопка Defaults сбрасывает все значения на значения по умолчанию.
В этом же меню Tools есть ещё два пункта: Load Defaults - загрузить значения по умолчанию, и Save Current Setting as Defaults - сохранить текущие настройки в качестве настроек по умолчанию.
В этом пункте продублированы некоторые инструменты, вынесенные на панели в виде кнопок.
Интересный не продублированный пункт - Show vertex connection - показывать соединение вершин. В этом пункте все выделенные вершины показываются под номерами, одним и тем же номером обозначаются точки, которые в реальном XYZ-пространстве слиты воедино.
Show Shared Subobject - аналогично Show Vertex Connection, только показывает подобъекты без номерков, просто синим цветом. Очено рекомендуется, чтобы эта опция была включена! В отличие от Show Vertex Connection, она не загромождает рисунок, и в то же время показывает, что к чему должно быть подсоединено в пространстве XYZ. Если выделять подобъекты по одной штуке, то в номерах просто не будет надобности.
Здесь тоже продублированы инструменты, в основном инструменты увеличения.
Zoom - инструмент лупа. Если выбрать этот пункт, напротив него включается галочка и курсор превращается в лупу. Нажав левую кнопку мыши и двигая мышь туда-сюда, можно приближать или отодвигать картинку.
Zoom Extents - вмещает всю развёртку в окно.
Zoom Region - вписывает в окно прямоугольную область, которую надо обозначить мышкой.
Zoom To Gizmo - то же самое.
Pan - инструмент "лапа" - когда можно протаскивать картинку при помощи лапы.
Вот мы познакомились с основными инструментами редактора развёртки, теперь познакомимся с приёмами создания самой развёртки.
По нажатию правой кнопки мыши открывается менюшка, в которой продублированы многие инструменты. Это удобно - не обязательно заходить в верхнее меню.
Как вы понимаете, чётких алгоритмов разворачивания объекта нет и быть не может. Надо выработать навыки и овладеть некоторыми приёмами, но вообще каждая задача решается индивидуально. Мы же сейчас рассмотрим на примерах, как можно подойти к решению задачи.
Как уже говорилось, карты бывают двухмерные и трёхмерные. Для использования трёхмерных карт объект можно и не разворачивать вовсе. Но иногда чтобы на одних частях укрупнить фактуру, на других уменьшить, надо прибегать к редактированию объекта в UVW-пространстве. Те части, где трёхмерную текстуру стоит сделать крупнее - надо уменьшить, где текстуру надо сделать меньше - напротив, увеличить. Растягивая и сжимая грани по разным направлениям можно так же укрупнять и уменьшать по разным направлениям. Сейчас мы рассмотрим создание развёртки для двухмерной карты. Тем более, такую развёртку иметь очень полезно, потому что очень часто приходится применять к объекту текстуру, хранящуюся в файлах с изображениями.
Напомним основную задачу. В самом общем случае нужно развернуть объект, словно выкройку, чтобы все его кусочки не пересекались, не перекрывались и не перекручивались. В данном случае допустимо, чтобы некоторые грани были повёрнуты к нам изнанкой. Но всё же это не желательно. Вспомним, что в карте Bitmap есть такая опция - Show Map On Back. Если её отключить, то текстура не применится на те грани, которые в UVW пространстве (не в XYZ!) повёрнуты к нам изнанкой в плоскости, вдоль которой размещается текстура.
При желании можно разворачивать некоторые грани изнанкой специально, если нам это надо. Но пока мы будем создавать основную развёртку. Такую, на которую достаточно будет наложить единичный файл с картинкой, чтобы получить законченную раскрасску объекта.
Понятно, что развернуть сложный объект с ручками и ножками не разрезая его по швам будет весьма проблематично. Можно, конечно, ручки, ножки и пальчики стянуть в маленькие пятнышки, но тогда текстура на них будет сильно искажена. Они будут занимать малую площадь и трудно будет что-либо на них нарисовать.
Основной принцип создания развёртки - минимально искажать (растягивать или сжимать) поверхность. Поэтому руки и ноги лучше отделить от туловища, сделать на них продольные разрезы и развернуть. Так же надо отделить и развернуть каждый палец. Итак, начнём.
Развёртку нужно сделать параллельно одного из видов. В принципе это может быть любой вид, только в параметрах текстуры надо будет выбрать, вдоль какой плоскости расположить нашу текстуру. По умолчанию это плоскость UV, и для определённости будем разворачивать параллельно UV.
Начнём с простого. Сначала отделим пальцы на ноге. На данной проекции (UV) их очень легко выделить. Выделять надо в режиме работы с гранями, а отделить при помощи Break или Detach Edge Verts. | |
При помощи инструмента "Перемещение" (Move) отведём выбранные грани в сторону. Можно их вынести и за главный квадрат. Это допустимо, но не всегда желательно. Сразу следует заметить, что конечный результат нашей работы должен будет находиться внутри главного квадрата, мы выносим грани за него временно, пока работы не закончены. | |
Это мы переключились в вид UW. Здесь мы видим наш объект спереди и все три пальца поотдельности. Теперь их можно расположить так, чтобы на проекции UV они не наползали друг на друга. | |
Это пришлось делать в режиме работы с вершинами, поскольку пальцы отделились так, что всё равно между ними остались перетяжки, которые в случае работы с гранями тоже иногда выделялись и мешали. Перетяжки мы отделим. Это удобно сделать в режиме работы с гранями. | |
В режиме работы с гранями их удобнее всего выделить. А отделить можно при помощи команды Break и отведя куда-нибудь всторону. Может оказаться, что мы отделили и отодвинули не все перетяжки. Всё что осталось - отделите и отодвиньте в следующий заход. | |
Примерно вот так будет выглядеть картинка, после того как перетяжки мы отодвинем. Пусть вас не смущает некоторый беспорядок. Теперь переключимся в проекцию UV и посмотрим, что же у нас получилось. | |
Вернувшись в вид UV теперь мы видим, что пальцы расположены вот так. Перетяжки мы плохо отодвинули. Вернёмся в вид UW и отодвинем их подальше: | |
Так, чтобы по координате U они не пересекались. | |
Тогда и в проекции UV части не будут сплетаться в общую кучу. |
|
В режиме работы с вершинами выберем вершины вдоль того места, по которому мы хотим сделать разрез. Разрез лучше делать по нижнему краю пальцев, потому что на верхней стороне скорей всего текстура будет более сложной, и вообще, швы лучше делать в тех местах, которые реже будут на виду. Места будущих швов немного сдвинем, чтобы они не перекрывались на проекции UV с противоположными рёбрами пальцев. | |
Теперь переключаемся при помощи Convert Vertex To Edge в режим работы с рёбрами. Тут важно соблюсти откуда куда мы переключаемся, чтобы выделенные вершины превратились в выделенные рёбра. И нажимаем Break чтобы разрезать по выделенным рёбрам. Теперь, если рёбра отвыделить, они должны стать зелёными, что соответствует тому, что в том месте появился разрез. И переключимся в проекцию UV и будем работать в ней. | |
Далее выделяем по одной вершине на только что сделанном разрезе и начинаем их отодвигать (убедитесь, что у вас не включён режим Target Weld, чтобы его выключить надо нажать правую кнопку мыши или левой кнопкой кликнуть в инструмент перемещение). Выделяем вершины на шве по одной и отодвигаем в разные стороны. Швы по месту разреза не должны пересекаться, поскольку мы хотим развернуть а не запутать. Таким образом мы отделим края друг от друга, чтобы было понятнее. | |
Здесь один из краёв мы уже перенесли на противоположную сторону пальца. Далее надо просто перемещая вершины распутать все линии, чтобы они не пересекались. Если что-нибудь не распутывается - значит где-то что-то не разрезалось. Необходимо разобраться что к чему и разрезать в процессе распутывания. |
|
На этом рисунке всё уже распутано. Сильно натянутые грани - явление не желательное, поэтому лучше сделать ещё два разреза по линиям, которые на данном рисунке отмечены красным. | |
Здесь разрезы уже сделаны. Обратите внимание - что две вершины отмечены синим квадратиком с белой серединой. Эти точки ранее примыкали к выделенной вершине. (Чтобы это отображение работало, должна быть включена опция Display/Show Shared Sub-objects). | |
Чтобы нашей развёртке придать аккуратности, можно расположить линии ровно. Только надо всё-таки в какой-то мере соблюсти пропорции. Большие грани так и оставить большими, маленькие - маленькими. Сориентироваться в размерах помогут соседние ещё не развёрнутые пальцы. На данном рисунке выделена верхняя часть пальца. Выступающий квадратик снизу - это торец когтя. Что за квадрат сверху слева - пока не ясно. Чтобы стало понятно, надо привести к порядку остальную часть развёртки, тогда по тому, как синим будут отображаться вершины, станет более-менее понятно, что откуда. (Чтобы расположить вершины по сетке надо воспользоваться инструментом "Магнит" - Snap. Вот такие процедуры надо проделать с каждым пальцем. | |
Торец когтя у нас был смоделирован как грань, а не как острый кончик. Зелёным показано, по каким линиям разрезан наш реальный объект (эта опция появилась только в 3ds MAX 7). | |
Развернув второй палец, можно обнаружить, что он имеет на один сегмент больше. Вроде пальцы одинаковые. Стало быть, первый палец (тот что короче) мы развернули не правильно и отрезали от него лишнего. Лишнего могли отрезать только возле основания - стало быть кончик правильный. значит, мы не верно распределили чередование длинных и коротких сегментов. Просто начинаем передвигать нижние линии пальца справа и ставить их на одном уровне с линиями пальца слева: | |
Теперь ясно, что квадрат сверху - не лишний, а напротив, трёх граней не достаёт. В общем, если хорошенько представлять как устроена наша модель, все эти ошибки можно было бы вычислить и до того, как мы развернули следующий палец. Но иногда бывает проще понять ошибки сравнивая между собой развёртки одинаковых элементов. Чтобы отыскать недостающие куски, надо выделить места, к которым они должны быть пристыкованы, затем при помощи лупы отодвинуть рисунок и найти, где чего появилось, помеченное синим цветом. В нашем случае с большой долей вероятности - недостоющие куски где-то среди тех перетяжек, которые мы отрезали уже потом. Поэтому нет необходимости вмещать в окно все элементы, достаточно осмотреть перетяжки. | |
Так и есть. Синим помечены недостающие куски. Надо запомнить и выделять синие вершины по одной, отделять от общей путаницы при помощи Break и отодвигать. Таким образом мы получим |
|
Здесь всё распутано и отделено друг от друга. Теперь выделяя все вершины каждого четырёхугольника по очереди смотрим на тот палец, где не хватает трёх четырёхугольников. На данной картинке показано, что при выделении вершин одного из четырёхугольников синим загорелось одно из рёбер где чего-то не хватает. Теперь запоминаем этот удачный четырёхугольник, включаем в Tools или в разворачивающемся меню (по клику правой кнопки мыши) режим Taget Weld и начинаем поочерёдно выделять вершины этого четырёхугольника. Если на нашем пальце загорается синим вершина, тащим выделенную вершину в то место. Когда курсор изменится, отпускаем, вершина прилипнет. Далее у того же четырёхугольника нащупываем вторую вершину, которую надо прилепить и тоже тащим и прилепляем. Две другие просто располагаем так, чтобы четырёхугольник был распутанным и расположился на нужном месте. Подобным образом нащупываем ещё два недостающих четырёхугольника и так же переносим их вершины на нужные места. Внимание! В настройках Options/Adwanced Options... величину Weld Treashold поменьше, чтобы не слипалось всё подряд. Внимание! Если у вас с каким-либо четырёхугольником совпала одна из вершин, при том находящихся не в низинке а сверху, не спешите этот четырёхугольник присоединять. Может он находится на пететяжке. У нужных четырёхугольников должны совпасть две, а то и три вершины. |
|
После того, как всё будет распутано, можно в меню Select выбрать Select Inverted Faces чтобы проверить, не повёрнуто ли что-нибудь к нам изнанкой. И вот что можно увидеть (выделились части, повёрнутые изнанкой). При том что расположено всё одинаково. | |
В 3ds MAX 7 и более в окнах пространства XYZ так же можно посмотреть, как проходят швы по нашему объекту. (Показывает только в режиме работы с модификатором Unwrap UVW. Мы видим - торцы когтя отрезаны по-разному. | |
Чтобы развернуть пальцы и выделившийся четырёхугольник лицевой стороной к нам, надо применить к ним Flip ... или Mirror ... из меню Tools. В нашем случае лучше отражать по горизонтали. И желательно каждый элемент по отдельности (под элементом как и всегда имеется в виду группа соединённых между собой подобъектов!). Далее можно отделить выделенные красным четырёхугольники и переприсоединить их так же, как на среднем пальце. Можно этого и не делать, но лучше сделать для порядку и чтобы далее нам было понятно, что у нас да как. |
Наверное, теперь вы почувствовали, что создание развёртки - дело непростое. Может быть даже сложнее и кропотливее самого создания объекта. При том что сейчас мы работаем с достаточно простой заготовкой. Но тут главное приноровиться.
Пальцы на руке можно развернуть аналогичным способом, только здесь один нюанс. Пальцы на руке расположены так, что их особо не выделить. Проблема решаема. Переключаемся в другую проекцию. | |
Это проекция VW. Пусть вас не смущает, что здесь пальцы выглядят вот так. Просто вдоль координаты V мы ничего не меняли. Просто выделим и отсоединим пальцы руки. | |
Если окажется, что какие-нибудь пальцы соединены между собой, просто выделим их по очереди и отделим друг от друга. Не будем парится с перетяжками. (Чтобы удобнее было работать, увеличивайте нужные области). | |
Глянем, что творится в проекции UV. Опять ничего не понятно! | |
Вернёмся в VW и повернём пальцы при помощи вращения. Если необходимо - и переместим. Обратите внимание, что один палец у нас находится под некоторым углом к горизонтальному направлению. Его желательно выделить отдельно и повернуть, чтобы был параллелен горизонтали. Так будет удобнее с ним работать. | |
Не отвыделяя пальцы, перейдём опять в UV и передвинем их как показано на рисунке. Далее, переключимся в VW, выделим один палец. Потом вернёмся в UV и передвинем его, чтобы ни на что не наползал. Повторим эту операцию для ещё одного пальца. | |
Долно получиться примерно так. Далее, как и с пальцами ног, переходим в вид UW, находим пальцы рук, разрезаем их так же... В общем, дальше действуем совершенно аналогично. Если вдруг где не хватит квадратов, их надо будет выцарапать из ладони примерно теми же путями, как мы добывали пальцы. Совет: лучше применять опцию Select Inverted Faces не после того, как пальцы уже развёрнуты, а во время. Тогда сразу будет видно, в ту ли сторону мы разворачиваем, и можно будет сразу поменять местами швы и распутать по-другому. |
После разворачивания пальцев получается примерно так:
Рис. 23.8. Развёртка после разворачивания всех пальцев. Снизу - пальцы ноги, сверху - пальцы руки. Квадратики наверху - были прикреплены, пока лучшего места для них не нашлось. В верхнем ряду пальцев - правый палец - это большой палец, он несколько отличается от остальных (на одну фалангу меньше). |
Пальцы находятся за пределом главного квадрата. Как уже объяснялось - это временно, пока мы всё не развернули и не распутали. Теперь отделим руки и ноги и их тоже развернём. Это будет уже гораздо проще. Всё же проследим на примерах, для освоения ещё некоторых приёмов.
Для начала ногу надо выделить. В режиме работы с гранями можно выделить как показано на рисунке, а потом удерживая нажатой клавишу Ctrl отвыделить всё лишнее. Лишние грани большие, их будет отвыделить легко. К счастью у нас нет мелких граней в местах, где нога стыкуется с туловищем. Так что всё будет легко. | |
Когда всё лишнее отвыделено, выполняем команду Break, отодвигаем ногу всторону, подальше, чтобы было место для разворачивания. | |
Случайно всё-таки отвырезалась нижняя часть туловища. Её потом можно будет отделить от ноги и вернуть на место. А ногу попытаемся распутать не разрезая. Наша задача - растащить вершины так, чтобы рёбра не находились прямо друг напротив друга. | |
Распутывать надо так, чтобы горизонтальные линии не пересекались. Если они начинают пересекаться - значит вершину надо тащить в другую сторону. Если взята не та вершина - немного сдвинуть и отпустить, чтобы можно было без проблем выделить нужную. Особо трудно будет с нижней частью ноги. Но теперь выделим какую-нибудь одну горизонтальную линию и по ней разрежем. Желательно по задней внутренней стороне ноги. На рисунке она выделена. (Разобраться где задняя внутренняя сторона можно по зелёному контуру - где нога присоединялась к туловищу. Главное при перетаскивании приблизительно помнить, что откуда пришло. | |
Теперь четырёхугольник, оторвавшийся от туловища, вышел наверх и можно его отделить и вернуть. Как мы видим - рядом с ногой какой-то обрывок на котором горят синие точки. Это явно кусок оторвавшийся от ноги, его надо распутать и присоединить к ноге. |
Руку развернуть можно примерно так же, поигравшись с переключением видов, поскольку на данной проекции её не зацепить. Но мы рассмотрим ещё один приёмчик, без которого в данном случае можно обойтись, но в случае более сложных моделей он может оказаться полезным.
Для этого уберём всё из главного квадрата. Желательно убрать подальше от краёв квадрата. Потом выйдем из редактора развёртки и схлопнем наш модификатор Unwrap UVW. Если под ним у нас сохранился UVW Map - пусть тоже схлопывается. Все наши наработки за сеанс работы с Unwrap UVW сохранятся на базовом уровне. | |
В режиме работы Editable Poly/Mesh - выделим часть руки, которую надо развернуть. Здесь важно не выделить пальцы, потому что для них развёртку мы сделали, жалко будет, если пропадёт. С туловищем пока ничего особого не делали, поэтому туловище не так жалко. Хотя в редакторе развёрток оно уже почти неплохо расположено. (Режим работы с многоугольниками) | |
Не выходя из режима работы с многоугольниками, применяем UVW Map по цилиндрическому методу (Cylindrical). Настраиваем всё так, чтобы цилиндр оптимально наделся на руку (включаем нужную ось, поворачиваем Gizmo, если понадобится, нажимаем Fit). Далее схлопываем модификатор. Это в данном случае обязательно надо сделать, потому что если мы теперь выйдем из режима работы с гранями, UVW map применится ко всему объекту, а нам этого не надо. Это нам может испортить все наши наработки. | |
Теперь применяем Unwrap UVW. Как видим, с прошлыми нашими наработками ничего не случилось, а рука теперь развёрнута. И она располагается в главном квадрате. Отодвинуть всё надо было подальше - поскольку она вылезла за его пределы. А вообще, можно было и не отодвигать. Все наши точки руки выделены, их самих можно легко отодвинуть. Сейчас надо их уменьшить при помощи масштабирования. Рука расположилась ладонью вверх, думаю, лучше её перевернуть. Так же следует теперь найти всякие ошмётки и обрывки, распутать их и прилепить на подходящие места. | |
Например, от руки (ладони) остался-таки ошмёток, который можно видеть снизу. В результате распутывания получилось нечто замкнутое в кольцо - не разрезали в своё врмя. Чтобы лучше выбрать линию, по которой резать, выделим крайнюю точку на основной части руки. На ошмётке синим цветом загорелась точка - вот по той линии, которая из неё выходит, и следует резать. Совет: не начинайте приклеивать крайние точки контура. Если выбрать крайнюю точку, на основном куске (к которому приклеиваем) загорятся точки с обоих краёв, не разберётесь куда тащить. Возьмите следующую от крайней и приклейте. Далее будет понятнее, что куда. |
|
В результате распутывания и прилепления на место этого ошмётка, получилось вот так. Дырка среди поверхности - это очевидно дырка для большого пальца. Слева можно видеть внутри поверхности зелёные линии. Это особенность модификатора UVW Map. В цилиндрическом или сферическом режимах, он сам делает разрезы, не всегда оптимально. В данном случае сделал вот эти разрезы. Их можно быстро зашить, если выделить все вершины вокруг них и применить простой Weld selected. Только применяя Weld надо быть уверенным, что у нас склеются только нужные точки, а соседние к ним не прилипнут. Вообще, модификатор UVW Map мог сделать цилиндрическую развёртку и так, что разрез прошёл бы зигзагами в шахматном порядке. И потом пришлось бы вручную отделять торчащие четырёхугольники и переносить их в ниши на противоположной стороне. |
|
Теперь попытаемся разобраться, что же во рту у нашей модели. В 3ds MAX ≥ 7 на самой модели в режиме работы с Unwrap UVW отображаются швы. Видно, что с нижней стороны поверхность действительно имеет разрез. Зашьём его, при помощи Weld или Collapse (выделяя нужные вершины). Зашивать шов следует в режиме Edit(able) Mesh/Poly. А потом перейти в модификатор Unwrap UVW, в редактор развёртки, и зашить нежелательный шов там. Теперь там на описанном выше разрезе если выделишь вершину с одной стороны, с другой должна загораться синим. |
|
Подозрительные треугольники получились из-за того, что оказывается во рту по две вершины в одном и том же месте расположены, чего внешне было не видно. Снизу одна из вершин перенесена в другое место, а сверху пока осталась. Это нежелательные вершины, от них надо избавиться - либо при помощи Target Weld из инструментов редактирования, либо при помощи Collapse (выделив пару), либо при помощи Weld. Только Collapse или Target Weld надёжнее. Когда мы выберем пару вершин, у нас в верху инструментов Edit(able) Mesh/Poly будет написано число вершин в группе параметров Selection. После применения Collapse оно должно уменьшится до одного - вместо числа вершин будет написан номер вершины. Это явный признак того, что у нас они схлопнулись воедино. |
Пожалуй, подведём некоторые итоги.
В данной главе мы познакомились с модификатором Unwrap UVW и приобрели некоторые навыки работы в редакторе развёрток.
Всё, что описывалось выше, проводилось для Map Channel 1. Вообще, можно проводить эти операции для любого Map Channel. Только важно не забывать его переключать как в модификаторах UVW, так и в текстурах, для которых изготавливается развёртка.
Встаёт вопрос - зачем мы всё это проделывали? Пока наша работа ещё не закончена. Но забегая вперёд скажу: если перенести изображение развёртки в графический редактор, например Photohop, можно будет исползуя данный шаблон нарисовать на нём текстуру, которая не будет повторяться и не будет растянута.
На самом деле вот так рисовать текстуры - тоже дело неблагодарное. Во-первых надо чтобы рисунок на швах точно стыковался, во-вторых, чтобы при наложении ничего не деформировалось на кривых поверхностях ненужным образом... Но на самом деле можно облегчить себе жизнь используя много Map Chennel - комбинировать конечную текстуру из кусочков, как рассматривалось ранее. Швы тоже можно закрыть подобными кусочками. Но чтобы кусочки хорошо наложились, надо поправлять координаты наложения. Это тоже делается через редактор развёрток.
В общем, читайте продолжение.
<< Назад | Оглавление | Вперёд >> | |
homepage: http://teapot3d.narod.ru |