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

ponimayka1

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

Несколько технических замечаний по поводу экструдирования вдоль кривой.

Очевидно, что неравномерность поперечных сечений вдоль кривой определяется топологией самой кривой. Вы можете либо использовать этот факт, либо, если хотите добиться равномерности, можете перестроить кривую уже после экструдирования с помощью операции Rebuild Curve и включения опции Keep=NumSpans. Иначе говоря, вы можете делать с кривой, что хотите, уже после построения экструда.

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

Extrude Edge - операция для ленивых

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

Дело в том, что операция Extrude Edge часто используется ленивыми мастерами Полидзен на граничных ребрах, чтобы наращивать края поверхности в нужном направлении. Инструмент Ap­ pend to Polygon Tool позволяет делать тоже самое, однако требует большего количества щелчков и не имеет таких удобных манипуляторов.

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

О плохой геометрии, я еще выскажусь, а сейчас можете взять любое ребро куба, зкструдировать его с помощью Extrude Edge и потом выполнить конвертацию полученной геометрии всабдивы: Modify=>Convert=>Polygons to Subdiv.

311

MAYA немедленно многоэтажно выругается в несколько строк:

//Error: line 2: polyToSubdivl (Poly To Subdiv Node|: One or more edges is nonmanifold.

//Nonmanifold geometry cannot be converted to a subdivision surface.

//To clean up nonmanifold edges, use Polygons->Cleanup with the nonmanifold option. //

// Error: line 2: Command polyToSubdiv failed. Open Script Editor for details. //

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

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

Обдуманное убийство: Delete Vertex и Delete Edge

Выбранные грани можно без проблем удалять клавишей Delete. А вот с ребрами к вершинами такой трюк проходит далеко не всегда.

Если из вершины торчат не два ребра, а больше, такую вершину нельзя удалить клавишей Delete. А два ребра торчат, как правило, из вершин, в которых сходятся два края поверхности, такие вершины называеются «winged» (и, соответственно, все остальные вершины являются «nonwinged»).

Чтобы гарантированно удалить любую вершину, нужно использовать операцию Delete Ver­ tex. При этом MAYA удалит и вершину и все прилегающие к ней ребра. Соответственно, все грани, прилегавшие к вершине будут заменены на одну «большую» грань. Будьте внимательны, эта грань в большинстве случаев будет неплоской, а количество ее вершин будет наверняка больше четырех. Никакого разбиения этой грани MAYA не производит.

312

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

Внутри поверхности можно удалять ребра двумя способами.

Клавиша Delete просто удалит ребро и оставит на месте вершины на концах ребра. Все грани, прилегавшие к ребру будут заменены на одну «большую» грань

Операция Delete Edge удалит ребро и вместе с ним вершины на его концах.

Имейте в виду, что удаление ребер клавишей Delete порождает «висячие» вершины и неплоские грани.

Латание дыр: Fill Hole

Как я уже говорил, наиболее ленивые мастера Полидзен при зашивании дыр в геометрии избегают использования Appent to Polygon Tool, поскольку ищут себе всякие удовольствия, типа операции Fill Hole.

313

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

Если вы выберете объект целиком, MAYA попытается залатать все дыры (замкнутые границы на объекте.

Совет. Перед выполнением операции удобно включить отображение граничных ребер более жирными линиями (Display=>Potygon Components=>Border Edges).

Чаще всего дыры в геометрии появляются при импорте моделей из других трехмерных пакетов или систем проектирования. Отсканированная трехмерным сканером геометрия тоже содержит, как правило, много мелких дырок.

Разрезание плоскостью: Cut Faces Tool

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

Идея проста: задается плоскость (либо интерактивно, либо с помощью координат), и так, где эта плоскость пересекается с объектом, либо возникают новые ребра, либо объект режется на несколько частей.

Сделайте микро-упражнение. Создайте политор.

Возьмите в руки Edit Polygons=>Cut Faces=>Tool. По умолчанию, он работает в интерактивном режиме, поэтому если нажать на левую кнопку мыши, появится интерактивный манипулятор, представляющий собой «рассекающую» плоскость.

314

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

Хочу заметить, что никакого «разрезания» не произошло, просто появились новые ребра. В этом смысле, можно рассматривать Cut Faces Tool как удобную вариацию Split Polygon Tool.

Если же вы хотите действительно разрезать поверхность на две (или более) части, надо включить галку Extract Faces. Это можно сделать либо в Option Box инструмента, либо, что проще, в истории объекта в Attribute Editor, в атрибутах ноды polyCut. Атрибуты Extract Offset задают, на сколько «отрезанная» часть отодвигается от исходной геометрии.

315

Одну из половин можно удалить, включив галку Delete Faces.

Очевидно, что положение плоскости можно менять, изменяя атрибуты Cut Plane Center/ Rotate. Однако вы можете делать это интерактивно и после завершения работы с инструментом.

Для этого выделите в Channel Box ноду polyCut, а затем выберите в панели инструментов Show Manipulator Tool. Появится манипулятор плоскости, с которым вы можете делать все, что хотите.

Несколько практических замечаний по поводу этого инструмента. Конечно, наиболее адекватно использовать интерактивный режим Cut Faces Tool в камерах ортогональных проекций, а не в перспективе.

Во время интерактивного выбора плоскости можно нажать Shift. Тогда секущая плоскость будет располагаться либо вертикально, либо горизонтально, либо под углом 45 градусов.

Разрезанные половины принадлежат по-прежнему одной геометрии, и, чтобы их превратить в разные объекты, надо воспользоваться операцией Polygons=>Separate.

Одно из применений Cut Faces Tool состоит в подготовке модели к «отзеркаливанию». Если вы вдруг решили, что все-таки проще будет смоделировать одну половину поверхности, а потом ее склеить, то уже имеющуюся «целую» поверхность можно разрезать именно с помощью Cut Fac­ es Tool. В Option Box этого инструмента имеется заготовленный набор координатных плоскостей, для облегчения этого процесса.

Фаски-шоу: Bevel и Chamfer

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

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

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

Вот тут на помощь приходит «хищная» операция Bevel. Сразу оговорюсь, что некоторые школы Полидзен, сетуя на, мягко говоря, «неидеальность» этой операции, запрещают своим адептам ее использовать... Это, правда, лишь подтверждает тезис о том, что в принципе можно применять только Split Polygon Tool и перетаскивать вершины. Однако в случае большого количества

316

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

Потрогаем курсором этого монстра.

Создайте поликуб. Наедьте на него.

Выделите все вертикальные ребра.

Выполните Edit Polygons=>Bevel с параметрами по умолчанию. Очевидно, что параметры этой операции будет проще настроить потом, в истории объекта. Куб превратится практически в цилиндр.

Откройте Attribute Editor (или Channel Box) и разыщите ноду polyBevel. Задайте для нее 0ffset=0.2 (Пока включена галка Offset as Fraction, атрибут Offset будет изменяться от нуля до единицы, как часть длины ребра).

Задайте Segments=3, это добавит дополнительные ребра для закругления угла.

В принципе. MAYA сама вычисляет радиус и форму скругления, однако если вы хотите задавать эту форму сами, надо выключить галку Autofit и покрутить атрибут Roundness. Оказывается, можно задавать не только выпуклые скругления, но и вогнутые «бороздки», а диапазон атрибута Round­ ness не ограничен значениями 0.5.

Обратите внимание на лишнее ребро на верхней грани куба (особенно «лишнее» при отрицательных Roundness). Это пример излишней интеллектуальности операции Bevel.

317

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

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

углу (если не лень, выберите все верхние горизонтальные ребра).

Снова выполните операцию Bevel.

Задайте для новой ноды polyBevel2 значение Segments=3. Обратите внимание, что «лишняя», грань от первой фаски стала совсем бесполезной. Особенно при значениях Offset, больших 0.5.

Отключите Auto Fit и верните Offset в 0.5.

Две «хищные» особенности Bevel заключаются в следующем.

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

318

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

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

Во-вторых, операция Bevel превращает в руины ваш трогательно настроенный UV-маппинг. Причем не только на новых гранях, но и на старых.

319

Поэтому отложите настройку текстурных координат до того момента, как разделаетесь с

последним Bevet'OM .

И еще один практический момент по поводу сглаживания углов. Создайте платоническое тело: Create=>Polygon Primitives=>Platonic Solids.

В истории, в атрибутах ноды polyPlatonicSolid, задайте Solid Type=lcosahedron. Выберите любые три ребра, примыкающие к одной вершине, и выполните Bevel. Задайте Offset=0.2.

Теперь пошевелите атрибут Segments. Задайте его равным трем. Полюбуйтесь на уголок.

320

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