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

ponimayka1

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

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

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

В этом случае MAYA сама посчитает, насколько можно уменьшить количество точек, так чтобы оставшиеся точки сместились в пространстве на величину, не большую, чем параметр Tol­ erance (если хотите задать его сами, включите опцию Use Tolerance=Local), и кривая максимально сохранила прежнюю форму.

Метод Curvature, напротив, добавляет дополнительные точки в местах сильной кривизны и не является сильно полезным.

Метод Match Knots позволяет сделать одинаковое количество точек (корректнее говорить: количество сегментов, number of spans) у всех выбранных кривых. Образцом для подражания считается последняя выбранная кривая. Эта опция исключительно полезна при подготовке кривых для построения по ним поверхностей, например, с помощью операции Loft. Понятно, что если кривые будут разбиты на одинаковое количество сегментов, то и поверхность, проходящая через них, тоже будет иметь это же самое (весьма предсказуемое) количество сегментов.

Чтобы одним махом избавиться от неведомо откуда взявшихся «жестких» точек (например, после применения операции Curve Fillet) нужно воспользоваться методом No Multiple Knots.

181

Самым многовариантным и используемым по умолчанию является метод Uniform. Разберем его многочисленные предназначения.

Прежде всего, он позволяет изменить параметризацию существующей кривой, не измени положения ее контрольных точек (правда, форма кривой при этом может чуть-чуть измениться). Для этого надо выбрать нужный вариант для параметра Parameter Range, а затем «заморозить» положения контрольных точек с помощью установки параметра Keep=CVs. Это довольно часто выполняемая процедура при интенсивной работе с кривыми, и я рекомендую обратить на нее внимание.

Совет. Я продолжаю советовать придерживаться параметризации

0

to #Spans,

что означает «от нуля до определенного количества сегментов»,

то

есть это

Uniform-параметризация, которая обсуждалась выше, в разделе про

построение

кривых.

 

 

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

Если зафиксировать положения контрольных точек (опция CVs), то все что может сделать с кривой операция Rebuild, это изменить ее параметризацию или степень, при помощи параметра Degree.

182

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

По умолчанию, однако, параметр Keep установлен в Ends, что фиксирует лишь положение юнцов кривой. Поэтому результирующее количество новых сегментов определяется в этом случае числовым параметром Number of Spans.

183

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

Правило вычисления количества контрольных вершин. Помните о том, что количество контрольных точек для кривой всегда равно количеству сегментов плюс степень кривой, то есть для кривых третьего порядка количество контрольных вершин всегда на три больше, чем количество сегментов. Количество сегментов всегда можно посмотреть в Attribute Editor как значение атрибута spans. Если кривая является замкнутой (или периодической), то количество ее контрольных вершин в точности равно количеству сегментов. Проверить, является ли кривая замкнутой, можно, взглянув на атрибут Form в Attribute Editor, где значение Periodic означает замкнутость.

На этом можно покончить с командой Rebuid Curves. Для поверхностей существует аналогичная операция, по адресу Edit NURBS=>Rebuild Surfaces. Большинство ее параметров и логика их использования совпадают с аналогичными параметрами для кривых. Основное отличие поверхностей с точки зрения этой операции - это возможность перестраивать поверхность индивидуально по двум направлениям. Интуитивно должно быть понятно, что, в отличие от кривых, положение точки на поверхности должно задаваться уже двумя параметрами, U и V. Точно так же, как положение конкретной точки на глобусе задается при помощи широты и долготы. Все, что выше сказано по поводу параметризации, справедливо также и для поверхностей, для которых всегда определены два параметра U и V в направлениях «вдоль» и «поперек» поверхности, причем вдоль этих направлений тип параметризации может быть различным.

Остальные операции для работы с кривыми

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

В соответствии с общей идеологией, перед применением этих операций необходимо чтолибо выбрать, причем в одних случаях это могут быть сами кривые, в других их контрольные вершины, в третьих точка на кривой Curve Point. Внимательно читайте Help Line, наводя курсор на соответствующий пункт меню: там всегда написано, что надо предварительно выбрать.

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

Modify=>Lock Length - очень полезная операция, особенно при перетаскивании вершин Позволяет зафиксировать и удерживать постоянной длину кривой.

Duplicate Surface Curves - позволяет «отодрать» выбранные изопармы или полигональные ребра (!) и превратить их в обычные трехмерные кривые. Причем с сохранением истории.

'184

Align Curves как правило, используется для подгонки концов двух кривых. Погоняет концы кривых так, чтобы они гладко стыковались по кривизне или по тангенсу.

Move Seam для замкнутых кривых передвигает начало кривой в узел, ближайший к отмеченной точке на кривой.

Cut Curve - разрезает кривые в месте их пересечения. Позволяет резать несколько кривых сямощью последней выбранной кривой.

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

185

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

Offset Curve - «Отступает» от кривой равномерно по все длине, при этом могут возникать перехлесты и петли, особенно при отступе «внутрь» изгиба кривой. Для борьбы с этим перехлестами есть опция Loop Cutting, включенная по умолчанию. Однако она меняет количество точек и доли применяться с осторожностью.

Fit B-Spline - хорошее название, ничего не скажешь. Просто проводит новую кривую так чтобы ее Edit Points совпадали с контрольными вершинами выбранной кривой.

Smooth Curve - посмотрите в англо-русском словаре, что делает эта операция.

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

186

В меню Modify Curves также находятся операции для глобального «процедурного» изменения формы кривой целиком, такие как сгибание (Bend), закручивание (Curl), выпрямление (Straighten) и другие.

Кривые на поверхности: Curves on surface. «Оживление»: Make Live

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

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

Для того, чтобы нарисовать «поверхностную» кривую, создайте любую поверхность (например, сферу) и сделать ее «живой» (Modify=>Make Live), то есть пригодной для рисования по ней. Затем можно взять CV или ЕР Curve Tool и просто нарисовать на поверхности нужную форму кривой, щелкая мышью, как обычно.

В отличие от полигональных поверхностей (которые тоже можно делать Make Live), контрольные точки в данном случае не просто «приснапливаются» к NURBS-поверхностям, но и

187

намертво «вшиваются» в них. Точнее говоря, в поверхности лежат не только контрольные вершины но и сама кривая целиком. (Чтобы снова сделать поверхность «неживой», то есть обычной, надо еще раз выполнить Modify=>Make Not Live).

Если выбрать полученную кривую, а затем взять Move Tool, то выяснится, что у таких кривых «не хватает одной оси».

Кроме того, эти кривые не появляются в Outliner, что само по себе вызывающе.

Дело в том, что, как я уже говорил, это особый тип кривых. Для этих кривых трехмерное пространство схлопнулось до размеров поверхности, на которой они находятся. Их контрольные точки также лежат на поверхности и имеют всего две степени свободы - их можно перемещать лишь в двух направлениях, вдоль поверхности. Как нетрудно догадаться, это направления U и V, определенные для каждой NURBS-поверхности. Такие кривые лучше называть «кривые в поверхности», чтобы подчеркнуть их «вшитость» в поверхность. По причине такой «вшитости» эти кривые можно увидеть в Outliner, только если включить отображение shape-нод (Display=>Shapes). Это подчеркивает их принадлежность форме поверхности, а не трехмерному пространству.

188

«Кривые на поверхности» можно использовать как обычные кривые во всех операциях «Мелирования типа Loft или Bevel. Однако их «принадлежность» к поверхности позволяет использовать их в операциях, учитывающих кривизну поверхности, на которой они лежат, например freeform Fillet. Это делает «кривые на поверхности» просто незаменимыми для построения гладких сопряжений между объектами.

Расширение сознания и понимания природы кривых на поверхности

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

Создайте в новой сцене NURBS-цилиндр.

Растяните его по вертикали и сделайте его «живым»: Modify=>Make Live.

189

Сейчас мы нарисуем на цилиндре, нет, не кривую, а прямую линию.

Откройте Option Box инструмента CV Curve Tool и выберите там Curve Degree=1 Linear (это есть первую степень для рисования ломаных линий).

Затем поставьте всего две точки на цилиндре (этого достаточно, чтобы создать отрезок кривой первой степени). Одну внизу, другую вверху. Нажмите Enter.

А теперь попытайтесь осознать, что же вы натворили. На поверхности третьего порядка,вы нарисовали отрезок прямой линии! Причем MAYA даже не выругалась по ходу дела. Если осознать содеянное не удается, проделайте (можно мысленно) такой эксперимент.

Возьмите чистый лист бумаги. По краям нарисуйте две точки на разной высоте. Соедините их прямой линией. А теперь сверните лист в трубочку, так чтобы края соприкоснулись, выглядит прямая линия? Правильно, как кусок спирали.

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

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

190

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