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

ponimayka1

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

Разновидностью операции притягивания является операция Partial Crease Edge/Vertex, которая осуществляет частичное притяжение поверхности к выбранным компонентам. Следует заметить, что в отличие от полного притяжения, это просто трюк, состоящий в том, что вместо изменения статуса выбранных компонент, на следующем уровне берутся соседние компоненты и немного вытягиваются в сторону выбранной вершины или ребра. Таким образом, операция Partial Crease Edge/Vertex «замусоривает» более высокий уровень и порождает на нем дополнительные редактирования. Это просто автоматический способ сделать мягкое «вспучивание» в окрестности выбранной компоненты.

Два способа работы с Subdivision Surfaces

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

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

Как деформеры воздействуют на разные уровни вершин?

Как делать скининг для Subdivision Surfaces с разными наборами вершин? Как будут взаимодействовать кластеры, назначенные на разных уровнях? Ох, а как же будут работать Blend Shapes?

И как вся эта махина будет шевелиться?

Те, кто не хочет разбираться в этих вопросах и бороться с неожиданными проблемами

и парадоксами, принадлежат к консервативной группе майщиков, использующих

сабдивы

как идеальный Smooth Proxy объект. Эти практичные пользователи моделируют свои

объекты

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

421

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

Примечание. Честно говоря, немало пользователей MAYA считает майские сабдивы слишком продвинутыми! Иерархичекая структура делает их довольно тяжелыми и не очень удобными для анимации. Поэтому довольно часто используется реализация сабдивов от компании Pixar, входящая в пакет Renderman Artist Tools, которая включает в себя только вершины нулевого уровня и возможность плавного притягивания к этим вершинам и ребрам. При этом все моделирование и анимация производятся в полигонах, а сабдивы возникают только на этапе рендеринга - как идеально гладкая поверхность.

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

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

Немного о конвертации

О пользе операции Cleanup уже было немало написано выше. Она является неотъемлемой частью процесса подготовки полигональной поверхности к переводу в сабдив. Здесь же я напомни уже набивший оскомину совет держитесь четырехугольников! Даже если конвертация пройдет успешно и ваши треугольники будут успешно проглочены сабдивами, у вас могут возникнуть неожиданные проблемы не только на этапе анимации, но и в процессе рендеринга. Все зависит от интеллектуальности вашей программы для финального просчета.

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

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

Когда вы хотите получить как можно более похожую поверхность и при этом сэкономить грани, лучше выбрать в Option Box опцию Adaptive и «подрулить» значение Divisions Per Face.

422

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

Два режима работы с Subdivision Surfaces

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

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

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

Сполученной полигональной сеткой можно делать все, что дозволено делать с полигонами

спомощью соответствующих инструментов. Любые операции будут мгновенно отражаться на форме сабдива.

423

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

Примечание. Если заглянуть в Outliner и включить там отображение Shapes, можно увидеть, что при переходе в режим Polygon под одним трансформом возникают две ноды Shape, одна типа subdiv, другая типа mesh. Это может помочь вам понять, что происходит в сцене, и выбрать в некоторых случаях нужный Shape.

Важно понимать, что переключение в режим Polygon происходит с участием Construction History, поэтому в Attribute Editor можно разыскать ноду polyToSubdiv и убедиться в Hypergraph, что формы сабдива и полигона зависят друг от друга.

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

Имейте в виду, что если вы сделали какие-то изменения на верхних уровнях сабдива, то переключение в режим Polygon и произведение некоторых операций типа Split, может привести к весьма непредсказуемым результатам. Поэтому старайтесь не залезать на верхние уровни, пока не разберетесь окончательно с базовой сеткой.

424

Более того, некоторые операции вызывают ошибку типа:

Error:polyToSubdiv1 (Poly То Subdiv Node):

The conversion to a subdivision surface failed:

Попробуйте например сделать несколько сплитов, а затем поменять у них в истории атрибут Subdivisions. Иногда может помочь переход в режим Standard и обратно в режим Polygon. При этом удаляется история и базовая полигональная сетка пересоздается заново.

Тем не менее, орудуя такими хитами, как Extrude Face и Split Polygon Tool, вы можете работать в режиме Polygon и наблюдать изменения на сабдиве.

Примечание.

Будьте

бдительны: если

вы,

находясь

в режим

Polygon

,

удалите

по привычке

историю,

связь между полигональной

сеткой и

сабдивом разорвется,

сабдив

вернется в

режим

Standard, а полигональная поверхность останется

болтаться

в сцене,

 

пригуппированная

к

сабдиву

и

никак

с

ним

не

связанная.

Повторный

переход

в

режим

Polygon

вызовет

создание

второй

полигональной

сетки

и т.д.

 

 

 

 

 

 

 

 

 

 

 

Кстати, никто не мешает вам выбрать в Outliner именно Shape от сабдива и успешно его удалить. Это самый быстрый способ сконвертировать базовый уровень сабдива в полигоны.

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

Динамика и сабдивы. Полный коллапс.

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

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

Перейдите в режим Polygon.

Превратите имеющуюся конструкцию в активное твердое тело. MAYA скушает ее в лучшем виде.

425

Однако, если вы заставите, с помощью гравитации, это твердое тело упасть на не менее твердую полигональную плоскость, то обнаружите, что оно контактирует с плоскостью СВОЕЙ полигональной оболочкой, а не сабдив-поверхностью. Как быть?

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

Дело в том, что с помощью операции Collapse можно превратить любой уровень вершин в базовый нулевой уровень. То есть вершины, например, второго уровня становятся базовый уровнем, а нулевой и первый уровень просто исчезают.

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

426

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

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

Деформация сабдивов

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

427

Вроде бы все просто, однако держите в уме несколько моментов.

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

Если вы удалите деформер с сабдива, то история не пропадет, так как останется скрытая нода типа ...ShapeOrig. Поэтому историю придется удалять вручную.

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

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

во время покраски, используя Refine Selected.

Blend Shapes и сабдивы

В отличие от других деформеров, если выбрать два сабдива как объекты и сделать между ними Blend Shape, то морфинг будет производиться не только между вершинами объектов на базовом уровне, но и между вершинами на всех уровнях. «На всех уровнях» означает, «на тех уровнях, где есть отредактированные вершины», а вовсе не: -на всех четырнадцати уровнях-!

Даже если вы снимете галочку Check Topology в Option Box для операции Create Blend Shape, MAYA все равно будет проверять геометрию сабдивов и требовать, чтобы на базовом уровне количество граней у морфируемых объектов совпадало.

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

Если вы выберете на каждом объекте вершины на определенном уровне, то Blend Shapes будут создаваться только для этих вершин. Это может послужить причиной полного хаоса, так как никаких проверок на принадлежность к одинаковым уровням или на порядок выбора вершин не производится. Поэтому будьте максимально внимательны при выборе вершин для морфинга или выбирайте сабдивы целиком, чтобы избежать неприятностей.

428

Сабдивы и скининг

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

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

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

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

Хорошая идея применять Freeze Transform перед привязкой сабдива к скелету.

Даже если вы удалите скининг с помощью операции Detach Skin, вам все равно дополнительно придется удалить историю, чтобы режим Polygon стал доступен.

Рендеринг сабдивов

Плохая новость для всех любителей сабдивов: при рендеринге майским рендером или с помощью mental ray сабдивы разбиваются на полигоны, точно также как сплайновые поверхности, что из этого следует?

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

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

429

Управлять процессом разбиения поверхности на полигоны в процессе рендеринга можно для каждой поверхности индивидуально. Для этого достаточно открыть Attribute Editor и найти в закладке для ноды типа subdiv раздел Tesselation.

Как правило, вам должно хватать настроек алгоритма Adaptive. Если вы видите, что где-то полезли острые грани и не хватает разбиения, достаточно увеличить параметр Sample Count. Майский рендер довольно предсказуемо работает с сабдивами. А вот mental ray изволит часто капризничать и «глючить». Имейте также в виду, что mental ray по-своему трактует значения в разделе Tesselation. Я могу посоветовать вот что: используйте алгоритм Uniform в тех случаях, когда у вас появляются артефакты. Для него сразу установите Depth=0 и подбирайте осторожно значение Sample Count. Другой способ избавиться от артефактов - это создать новую аппроксимацию специально для mental ray. Это можно сделать через меню Window->Rendering Editors->mental rayApproximation Editor.

Повторю, что это касается лишь тех случаев, когда у вас есть тонкие детали, сделанные на высоких уровнях.

В качестве небольшого упражнения проделайте следующие «шаманские» действия. Откройте сцену subdivMR.ma.

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

Просчитайте его.

Майский рендер дает довольно предсказуемую картину.

Чтобы улучшить тесселяцию, задайте в Attribute Editor для поверхности значение Sample Count=5.

430

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