Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ponimayka1

.pdf
Скачиваний:
131
Добавлен:
07.06.2015
Размер:
37.11 Mб
Скачать

Выберите обе половины и выполните Polygons=>Combine. Удалите историю.

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

Выделите щелчком и потащите на какую-нибудь вершину. Пронаблюдайте дыру и нажмите Undo.

331

Теперь выделите либо все слипшиеся вершины, либо, лучше даже, весь объект целиком Выполните Edit Polygons=>Merge Vertices.

Шов исчезнет. Двойные вершины «слились» в «обычные одинарные». Надо понимать при этом, что количество вершин и их нумерация на поверхности изменилась.

Откройте Attribute Editor и найдите закладку polyMergeVert. Там находится единственный значимый атрибут Distance, который вроде как равен нулю. Однако это профанация: на самом деле, значение этого атрибута равно 0.0001. Если не верите, выполните команду

getAttr polyMergeVert1.d

Ведь если открыть Option Box операции Merge Vertices, там можно увидеть параметр Dis­ tance, равный 0.0001. Этот параметр (равно как и атрибут Distance ноды polyMergeVert) задает, что если расстояние между вершинами меньше этого значения, вершины надо «слить» в одну.

Поле атрибута Distanse в Attribute Editor не в состоянии отображать такие маленькие числа, поэтому мы видим нулевое значение.

Будьте внимательны! Если вы случайно введете Distance=0.000, то MAYA не будет сливать вершины, даже если они располагаются точно в одних и тех же местах!

Имейте также в виду: у этой операции есть также «защита от дурака». Если вы выбрали весь объект и выполнив операцию Merge Vertices, задали значение Distance довольно большим. MAYA не будет проводить слияние вершин, ругаясь при этом, что ей придется слить все вершины

водну и геометрия будет разрушена:

//Warning: polyMergeVert1 (Poly Merge Vert Node): No vertices were merged. Tolerance too large - no geometry left after merge / /

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

332

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

Операция Split Vertex производит прямо противоположное действие. Она «раскалывает» выбранную вершину на несколько вершин. Точнее говоря, для каждого примыкающего к выбранной вершине ребра создается своя вершина, и эти ребра становятся граничными ребрами.

Слияние ребер: Merge Multiple Edges и Merge Edge Tool.

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

Вместо вершин, на границе поверхности можно выбрать ребра и применить к ним операцию Merge Multiple Edges.

После этого в Attribute Editor можно настроить дистанцию между ребрами, внутри которой они будут сшиваться. За это отвечает атрибут Threshold ноды polySewEdge.

333

Для более интерактивного сшивания предназначен инструмент Merge Edge Tool. С его помощью надо сначала кликнуть по одному граничному ребру, после чего все доступные для сшивания ребра будут подсвечены малиновым цветом.

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

334

В настройках инструмента Merge Edge Tool можно задать, к какому из двух выбранных ребер будут притягиваться шов, так как по умолчанию он располагается посередине между ними. Операции с ребрами чем-то напоминают операцию Stitch для сплайновых поверхностей, однако следует помнить, что они работают с ребрами одной поверхности. Для того, чтобы сшивать края двух объектов, их надо предварительно «скомбайнить».

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

Зеркальные отражения и симметричное моделирование: Mirror Geometry и Mirror Cut Окружающая природа буквально кишит симметрией, поэтому для некоторой экономии

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

Если для «Отзеркаливания» применить обычный трюк с отрицательным масштабом (scale=- 1), возникнет некоторое количество проблем.

Например, когда вы сделаете операцию Freeze Transform, у вас вывернутся нормали. При сшивании половинок вам придется отслеживать направление нормалей. Кроме того, MAYA начнет грязно играть с атрибутом opposite для ноды mesh, и т.д.

Для упрощения процесса отзеркаливания предназначена операция Mirror Geometry.

Она предоставляет полный сервис. Достаточно выделить объект, открыть Option Box и выбрать направление, в котором нужно произвести симметричное копирование.

В отличие от обычного масштабирования операция Mirror Geometry работает вне зависимости от положения пивота поверхности. Кроме того, она может работать в локальном пространстве объекта и не требует его присутствия в начале координат. Она сама вычисляет центр симметричного копирования и даже позволяет редактировать его позже с помощью истории.

335

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

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

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

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

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

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

Симметричное моделирование

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

336

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

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

оригинальные поверхности, только глубоко их прячут.

Если вернуться к Mirror Geometry, можно проделать следующий трюк.

Возьмите половину модели, например, сделайте половину тора или, если вам лень, откройте файл 0.5.ma.

Убейте историю на поверхности.

Примените к ней операцию Mirror Geometry. Если MAYA неправильно определяет пивот симметрии, выставьте его вручную в Attribute Editor в атрибутах ноды polyMirror.

Выберите полученный симметричный объект и откройте Hypergraph. Нажмите исследовательскую кнопку (Graph=>lnput and Output Connections). В истории поверхности обнаружится «серая» нода polySurfaceShape1.

Именно она идет на вход операции polyMirror1 и должна содержать в себе исходную поверхность.

Так и есть. Выберите эту ноду в Hypergraph.

Откройте Attribute Editor.

В закладке polySurfaceShape1 откройте раздел Object Display и снимите галку Intermediate

337

Object, чтобы эта нода появилась не только на экране, но и в Outliner'e.

Действительно, на экране появится исходная половина.

Откройте Outliner, включите отображение Display=>Shapes.

Откройте объект pCube и найдите там две ноды типа mesh, включенные в один transform.

Теперь вам останется выбрать в Outliner «целую» симметричную поверхность (pCubeShape1) и превратить ее в Template, выполнив Display=>Object Oisplay=>Template.

Теперь, когда вы будете выбирать на экране и таскать вершины исходной половины, симметричная модель будет также перестраиваться. История работает безупречно!

Есть, правда, некоторое количество неудобств.

Во-первых, у исходной половины почему-то нет материала, но это можно поправить, просто выбрав ее в Outliner'e и назначив на нее уже имеющийся или новый материал Lambert.

338

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

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

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

Поэтому, проверив, что история операции Mirror Geometry работает, как положено, перейдем к другому способу.

Этот традиционный способ основан на инстансировании объектов, то есть дублирования их с опцией Geometry Type=lnstance.

Откройте снова файл 0.5.ma

Выберите половину и откройте Option Box операции Edit=>Duplicate. Установите там Geometry Type=lnstance. А также scaleX=-1.

Нажмите Duplicate.

Напомню, что опция Geometry Type=lnstance, копирует только transform объекта (как бы только его пивот), a shape объекта остается прежним, совпадающим с исходной поверхностью.

339

Подробнее об этом написано в главе про изнанку MAYA.

Поэтому теперь, вы можете выбирать вершины с любой стороны модели. Это будут одни и те же вершины, так как нода типа mesh (поверхность pCubeShape1) одна на два объекта. Просит второй объект «показывает» эту ноду «вывернутой наизнанку», но от этого она не перестает быть одной-единственной.

Вы можете усовершенствовать данный «сетап» для удобства работы.

Во-первых, можно объединить обе половины в группу, чтобы перемещать их одновременно! а на исходных объектах заблокировать все атрибуты translate, rotate и scale.

Во-вторых, совсем взрослые мальчики могут сделать следующее, для того .чтобы избавиться от шва посередине: скомбайнить обе половины и сшить вершины с помощью Merge Vertex. Потом полученную поверхность засунуть в новый слой и сделать его как Reference,. Дальше в Outliner`e и Attribute Editor'e разыскать исходную половину, скрытую после Combine, снять у нее галку intermediate Object и включить Visibility для transform1 и transform2, назначив на них прозрачный материал (Surface Shader) или отсоединив их вовсе от Shading Group. Можно также поколдовать) группировками.

Результат такого колдовства можно увидеть в файле 0.5.mirror.ma.

Однако, как быть остальным, не таким взрослым, мальчикам и девочкам? Кроме того, каждый раз проделывать такие трюки может быть очень утомительно. Поэтому перейдем к следующему «официальному» методу для симметричного моделирования.

Smooth Proxy как метод симметричного моделирования

Не касаясь до сих пор вопросов сглаживания поверхностей, я хотел бы остановиться на применении операции Smooth Proxy, как метода для симметричного моделирования и автоматизации колдовства, описанного двумя абзацами выше.

Примечание. В восьмой версии операции для работы с прокси-поверхностями вынесены в отдельное меню Proxy, а операция Smooth Proxy переименована в сабдив

Subdiv Proxy)

Откройте снова файл 0.5.ma.

340

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]