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

ponimayka1

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

CV Curve Tool

Добраться до этого инструмента можно через меню Create. Как и положено инструменту (Tool), курсор принимает определенную форму, и вы попадаете в контекст инструмента, то есть MAYA ждет от вас активных действий. Как следует из Help Line, нужно пощелкать мышкой в окне, расставляя контрольные точки (CV или Control Vertices), а затем нажать Enter, чтобы вернуться к одному из стандартных инструментов, который использовался до выбора CV Curve Tool.

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

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

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

Каждое дальнейшее добавление контрольной точки вызывает добавление нового сегмента (span). Для изучения свойств кривых бывает удобно включить отображение сегментов для всех создаваемых кривых. Это можно сделать в Windows=>Settings/Preferences=>Preferences..=>NURBS, аключив галку New CurvesEdit Points.

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

171

Совет. При интенсивном таскании за точки иногда хочется сразу хватать и тащить вершину, а не сначала выбрать и только потом тащить. Нужная галка находится по адресу Windows=>Settings/Preferences=>Preferences...=>Selection=>Curve k Drag Select.

Если ВЫ хотите «достраивать» уже имеющуюся кривую, выберите ее и используйте Curves=>Add Point Tool.

Пытливые умы могли заметить, что начало кривой, то есть первая контрольная точка обозначается небольшим квадратиком (на самом деле это - квадратный нолик), а вторая точка, задающая направление в начале кривой, буквой U. (Буквами U и V принято обозначать параметрические координаты на кривых и поверхностях, но об этом позже). Направление кривых имеет важное значение для всех последующих операций. Поменять его, то есть развернуть кривую всегда можно при помощи Edit Curves=>Reverse Curve Direction.

ЕР Curve Tool

А где же колышки, воскликнут романтические умы, которые забивают в песок? Сейчас, сейчас... Для построения кривой, проходящей точно через поставленные точки, используют инструмент Edit Curves=>EP Curve Tool. В ходе расстановки точек Edit Points кривая третьей степени пытается вписаться в эти точки, проходя точно через них и упруго изгибаясь в промежутках Каждое добавление новой точки создает новый сегмент. Концы сегментов, в отличие от CV Curve Tool, определяются расставляемыми точками.

Терминологический комментарий.

Если

для CV сложились

различные названия

(такие как

«контрольные точки»

или «контрольные вершины»), то для ЕР пока

что нет

ни одного термина.

Сказать

«редактируемые

точки» совершенно

неадекватно и не отражает сути. «Узлы (knots)» - гораздо лучше и ближе по смыслу

но как-то не прижилось, а,

скажем, «границы

сегментов» - это слишком сложно и

длинно. Конечно, в трудовых коллективах

народ активно использует

нецензурные

«сивишки» и

«епэшки», но употреблять такие

«термины»

в этой книге даже у меня

не хватает

экстремизма.

К счастью,

по

сравнению с

контрольными

вершинам

Edit Points используются гораздо реже,

поэтому я постараюсь обойтись

вообще без

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

что термин

«сегменты» я употребяю

для перевода

слова «spans».

 

 

 

 

 

Форму кривой можно также редактировать при помощи Edit Points, нажав правую кнопку мыши над кривой и выбрав в качестве компонент Edit Points.

CV или ЕР? Кто главный?

Пытливые умы естественно не могут удержаться от вопроса: а «кто», собственно говоря «главный» CV или ЕР? Вообще-то, вы можете не особенно беспокоиться по этому поводу и попросту использовать оба типа компонент, но если быть математически корректным, то «главнее» CV Именно по положению контрольных вершин вычисляется форма кривой, ее разбивка на сегменты и, следовательно, набор Edit Points. (Проверьте, что перетаскивание контрольной вершины всегда влияет на три ближайших Edit Points, если контрольная вершина не крайняя).

При редактировании Edit Points MAYA также меняет форму кривой, а следовательно положения CV. Но изменение CV влечет изменение Edit Points и получается замкнутый круг. Да, действительно, в случае редактирования Edit Points MAYA решает неявную задачу некоторым итеративным методом, подбирая форму кривой, но для пользователя все выглядит по-честному (Поэкпериментируйте. Для кривой с достаточно большим количеством сегментов пошевелите как следует какую-нибудь Edit Point. Вы увидите, что такое шевеление приводит к смещению множества контрольных вершин (а реально почти всех), то есть MAYA перестраивает кривую не локально, а полностью!).

Следовательно, старайтесь использовать для редактирования кривых контрольные

172

вершины, a Edit Points применяйте только для небольших и локальных корректировок формы кривой.

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

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

Параметризация. Длина кривой.Способы параметризации. Первые ужасы параметризации

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

Настройки инструментов CV Curve Tool и ЕР Curve Tool практически идентичны.

Выбор степени кривой (Curve Degree) тривиален. В случае кривых первой степени, эти инструменты действуют идентично, так как позиции контрольных точек совпадают с концами сегментов и, следовательно, с позициями Edit Points. А вот параметр Knot Spacing заслуживает отдельной дискуссии. Этот параметр определяет, как будет «пронумерована» создаваемая кривая.

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

В MAYA существует два способа параметризации (то есть задания параметра) кривых и поверхностей. Второй из них называется Chord Length (параметризация с использованием длины кривой), и он более естественен для понимания, так как определяет параметр как длину кривой. То есть в любой точке кривой значение параметра равняется длине кривой от начала до этой точки. Пытливые умы спросят, а как же еще можно параметризовать (измерить) кривую? То бишь, каков первый способ?..

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

173

В каждой точке на границе сегмента (то есть в Edit Point) значение параметра полагается равным номеру этого сегмента, то есть целому числу. А в промежутках равномерно распределяется вдоль длины сегмента. Этот способ называется Uniform (равномерная параметризация), он и является первым, используемым по умолчанию методом параметризации, его и используют в настройках CV Curve Tool и ЕР Curve Tool.

Примечание. Можно привести физическую аналогию параметризации.

 

Представьте

себе, что у

вас прямой кусок упругой,

но растягивающейся

веревки.

И

вы можете

схватить его где-то посередине в двух-трех отмеченных краской местах (это

границы сегментов),

чтобы

изогнуть.

Если

вы схватите

веревку

в

зтих

местах

с помощью жестких зажимов-прищепок и потянете,

то

веревка

растянется и

изогнется,

однако границы

обозначенных

сегментов

останутся

 

на

месте,

есть под зажимами. Это - аналог Uniform-параметризации. Если вместо зажимов

потянуть веревку скользящими кольцами (а точнее, трубками), она будет

изгибаться,

одновременно распределяя

свою

длину между кольцами

и

гладко

проскальзывая

между

ними.

Первоначальные

границы

сегментов,

 

естественно

проскользнут в новые положения на самой веревке. Это - аналог

Chord Length

параметризации.

 

 

 

 

 

 

 

 

 

 

 

Следующий вопрос

беспокойных

умов естественно будет

о том, какой

метод лучше

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

Параметризация Chord Length интуитивно понятна и дает представление о распределении параметра прямо по внешнему виду кривой или поверхности. Текстуры ложатся на поверхности с такой параметризацией более равномерно, без «гармошки» в местах скопления изопарм (для Uniform-параметризированных поверхностей, на этот случай существует галка Fix Texture Wrap) в разделе Texture Map в Attribute Editor). При построении вручную Chord Length-параметризаця дает более гладкое распределение кривизны. Попробуйте построить кривые, проходящие через одни и те же точки, с помощью ЕР Curve Tool, но задавая разные методы параметризации.

Обратите внимание, что при использовании CV Curve Tool кривые, построенные с различными методами параметризации, отличаются не так сильно.

Работа с поверхностями с параметризацией Chord Length не так предсказуема, особенна при сшивании краев, так как диапазон параметра с каждой стороны оказывается разным.

Поэтому,

как правило, проще, надежнее и

более

предсказуемо использовать кривые

и поверхности

с Uniform-параметризацией. Кроме

того,

любую существующую поверхность

или кривую можно параметризовать заново (то есть перераспределить параметр), но только с использованием метода Uniform. Изменить Uniform-параметризацию на Chord Length невозможно без написания скриптов.

174

Да, к сожалению, для эффективного использования NURBS-объектами приходится постоянно помнить про параметризацию. Ситуация осложняется еще и тем, что одни операции (например, loft) создают поверхности с Uniform-параметризацией, а другие (например, fillet) с параметризацией Chord Length. И приходится постоянно следить за распределением параметра на объектах, а операция rebuild становится вашей второй натурой. Но об этих «ужасах» побеседуем позже, а пока договоримся, что, по возможности, будем придерживаться Uniform-параметризации.

«А как ее придерживаться и как за ней следить?» - воскликнут пытливые умы. Следить надо в Attribute Editor. Там для поверхностей и кривых, в закладке для shape, всегда указан диапазон параметра и количество сегментов в выбранном объекте.

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

Операции над кривыми

Склеивание и разрезание. Detach и Attach. Способы склейки. Keep originals

После создания и редактирования кривые чаще всего нужно резать или склеивать. Операция Detach позволяет разрезать кривую в любом месте, а не только на границах сегментов, так у кривых Безье. Чтобы отметить любое место на кривой, надо в контекстном меню выбрать Curve Point, а затем щелкнуть на любом участке кривой. Возникшая желтая точка - это не компонента кривой, а просто маркер, позволяющий отмечать или выбирать произвольное место на кривой для применения некоторых операций. Поэтому вы можете заметить такое предупреждение в командной строке:

Warning: Some items cannot be moved in the 3D view.

 

Это означает:

такие

маркеры не предназначены для редактирования формы

объекта и

не

могут

перемещаться

обычными инструментами. Изопарма

поверхности

тоже дает

пример такого

маркера.

175

Как только один или несколько маркеров на кривой выбрано (не забудьте про shift) достаточно выбрать Edit Curves=>Detach, чтобы разрезать кривую.

Чтобы склеить две кривые, требуются чуть большие усилия и использование операция Attach. Конечно, необходимо выбрать кривые перед тем, как склеивать, но какие концы у даух кривых вы хотите соединить? MAYA обычно использует концы, расположенные ближе всего, но бывают ситуации, когда такая близость неочевидна. В таких случаях, вместо выбора самих кривых рекомендуется выбрать Curve Point (то есть маркер) на конце каждой кривой.

Необходимо также выбрать метод склеивания, который задается через Option Box операция EditCurves=>Attach.

По умолчанию используется метод Blend, гладко соединяющий две кривых в одну. Опция Insert Knot позволяет вставить две дополнительные точки рядом с местом соединения - это в случаях, когда концы кривых недостаточно хорошо «пригнаны» друг к другу перед соединением А дополнительный Insert Parameter определяет близость такой вставки к месту соединения.

Очевидно, что, пользуясь принципом Construction History, можно изменить и метод соединения и другие параметры уже после применения операции. Достаточно просто открыть Аttribute Editor или Channel Box и отредактировать там атрибуты ноды attachCurve, автоматически создаваемой после применения операции Attach.

Примечание.

В Option Box любой команды редактирования кривых и

поверхности

е с т ь опция

Keep Originals, включение

которой задает создание нового

объекта для

результата

выполнения операции и

сохранения исходных объектов нетронутыми.

По умолчанию эта опция выключена

у всех операций, кроме команды Attach. При

включенной опции Keep Originals удобно наблюдать изменения в форме у объектов получаемых после выполнения операции, в сравнении с исходными объектами. Как правило, выключение этой опции не препятствует созданию Construction History,

176

однако при операции Attach, создающей из двух объектов один, для сохранения истории нужно обязательно сохранять «исходники», поэтому опция Keep Originals для нее включена по умолчанию.

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

Совет. Постарайтесь сразу отказаться от идеи использования «жестких» точек и метода Connect при работе как с кривыми, так и с поверхностями.

И вот почему.

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

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

деле существуют

хоть небольшие, но

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

пусть крошечный,

но реальный блик.

Подробнее о принципах создания реалистичных моделей

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

177

Работа с углами

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

Во время построения кривой при помощи CV Curve Tool в том месте , где вы собираетесь сделать угол, надо нажать клавишу f и еще немного подъехать к последней поставленной точке а затем поставить рядом еще, как минимум, две контрольные точки.

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

Далее перейдите в режим редактирования положения точек, для этого нажмите Insert, а затем стрелку влево. Это выберет предпоследнюю поставленную точку. Снова нажмите f, чтобы «наехать» на угол. Нажимая стрелки вправо и влево, отредактируйте положение точек так, чтобы

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

178

Далее снова нажмите Insert и продолжайте строить кривую.

Теперь можете воспринимать эти три точки, определяющие угол, как единое целое, то есть как одну точку.

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

Совет. При построении кривых используйте клавишу shift. Она позволяет ставить следующую точку строго по горизонтали или по вертикали относительно предыдущей точки.

179

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

При построении кривых старайтесь максимально использовать привязку к сетке, Это позволит, во-первых, распределять точки более равномерно, а во-вторых, сделает задачу последующего выравнивания и стыковки ощутимо легче. В Option Box команды Display=>Grid есть все необходимые параметры для изменения частоты и цвета сетки.

Для

взрослых.

Можно

использовать

две

MEL-команды,

увеличивающие и

уменьшающие

частоту

сетки:

 

 

 

if(`grid -q -d` - 5

> 0) grid -d (`grid -q -d` -5);

 

 

 

grid -d (`grid -q -d`+5);

 

 

 

 

Их

удобно назначить на

горячие клавиши

для

оперативного

использования прямо

во

время работы с кривыми.

 

 

 

Тактика построения кривых

Старайтесь экономить контрольные точки. Пытайтесь описать нужную вам форму при помощи минимального набора контрольных вершин. Если количества точек не хватает для задания необходимой формы, добавляйте точки, там, где это необходимо, с помощью команды Insert Knot. Если вы чувствуете, что ваша кривая стала «перегружена» точками, можно воспользоваться командой Rebuild, которая постарается максимально уменьшить количество точек на кривой при минимальном искажении формы самой кривой (степень допустимого искажения вы задаете сами Разберем эти две команды.

Совет. Контрольные точки можно удалять клавишей Delete!

Вставка точек. Команда Insert Knot

Нельзя просто вставить контрольную точку (CV), так как она не лежит на кривой и соответственно, непонятно, как задать ее новое положение. Зато можно вставить Edit Point в любое место на кривой. Это добавит новый сегмент и новую контрольную точку. Как обычно, любое место можно выбрать при помощи контекстного меню и Curve Point. После чего следует просто применить команду Edit Curves=>lnsert Knot с параметрами по умолчанию.

Для пытливых умов в Option Box команды Insert Knot есть опция Between Selection, позволяющая вставить несколько новых Edit Points между выбранными маркерами. Остальные параметры, позволяющие менять жесткость (Multiplicity) точек, нас не интересуют, так как мы договорились пытаться не использовать жесткие точки.

Перестройка. Операция Rebuild.

Про операцию Rebuild можно рассказывать бесконечно. Количество ее параметров вызывающе велико. Попробуем разобрать лишь некоторые, наиболее полезные случаи.

Эту операцию применяют в различных целях.

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

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

180

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