Моделирование с использованием NURBS

Для  моделирования  реалистичных  персонажей  раньше  предпочитали  использовать NURBS (Non-Uniform  rationa l  B-Spline —  неоднородный  рациональный би-сплайн), но появление  более  мощных  компьютеров,   SDS-поверхностей и   прочих технологических достижений  вдохнуло новую   жизнь в   реалистичное   моделирование  на  основе много­ угольников.  Сегодня  NURBS применяются в  основном для построения зданий, космиче­ ских  кораблей и   других искусственных  поверхностей. В  продолжение этой  тенденции рассматриваемый  здесь аппарат будет построен именно в  этой  непростой технике. Как бы там ни  было,  NURBS отличаются от  многоугольников  тем, что для эффективной ра­ боты  с  ними   требуется   понимание некоторых  основных концепций.  Большая  часть сложных  математических  механизмов,  связанных с  использованием  сплайнов, скрыта внутри  Майя, но для более полного понимания  процесса знание некоторых  основ  все- таки необходимо. В этой главе описано,  что такое NURBS и  как их использовать для соз­ дания моделей.

•          Кривые

•          Параметризация

•                NURBS-поверхности

•          Моделирование  МакГизмо

Концепция NURBS

Если  многоугольники  представляют скульптурный подход к трехмерному  моделиро­ ванию, то NURBS являются аналогом производственного процесса.  В то время как мно­ гоугольники  режут,  выдавливают,  объединяют и  придают  им  форму,  NURBS  сгибают, сваривают, присоединяют  и   перестраивают  в  процессе, который больше похож на сбо­ рочную линию.  Если  работа с  многоугольниками  близка к скульптурным процессам об­ работки мрамора и глины, то NURBS ближе к такой скульптурной технике, которая под­ разумевает сваривание  листов  металла. И это не совпадение,  существование   NURBS  и всей основанной на сплайнах технологии  уходит своими  корнями  в  автомобильную про­ мышленность.  Благодаря  своей унаследованной  математической точности   NURBS  яв­ ляются наиболее предпочтительной  базой для  большей части  систем автоматизирован­ ного проектирования и  производства  (CAD/CAM) .

Как известно, любое программное обеспечение для работы в  трехмерном  пространст­ ве является визуальным отображением  неких математических  алгоритмов,  заключенных в  их  коде. Для создания кривой  не обязательно  вводить математические   формулы, так как все математические  расчеты Майя  сделает сама. Достаточно просто манипулировать контрольными       вершинами        (Control      Vertex  —       CV),       точками      редактирования       (Edit Point —  ЕР )  и  фрагменты  каркаса  (hull),  а  кривые Майя  нарисует сама.  Вот  с  этого  и начнем.

Кривые

Работа с  кривыми —  это  ключ  к  эффективной  работе  с   NURBS-поверхностями, по­ скольку многие инструменты  создания поверхностей,  такие как Loft (Обтяжка), Boundary (Заполнение контура), revolv e (Вращение)  и  Square (Создание четырехугольника),  стро­ ят поверхности, отталкиваясь от кривых.  На рис. 4.1 представлена  "анатомия"  кривых пер­ вой степени,  или линейных кривых второй  степени  и кривых   третьей степени, или  кубиче­ ских.  Дальнейшая работа в  основном пойдет с кривыми  первой и  третьей степени, но  по­ лезно рассмотреть и  кривые   второй степени, чтобы  знать  их  отличия.  Средняя  и  левая  кривые  были  скопированы с кубической (третьей степени) кривой,  расположенной справа. Затем  они  были  перестроены соответственно  в  кривые  первой и   второй степени. Чтобы минимизировать    искажение,  в     окне    параметров    преобразования  в     разделе    Keep (Сохранять) был установлен флажок CVs (Контрольные вершины).

Перва я степень, линейна я                          Вторая степень                               Третья степень,  кубическая  

Рис. 4.1. "Анатомия" кривых NURBS первой, второй и третьей степени

Обязательно прочитайте главу 3, "Полигональное  моделирование", в  которой  описа­ но создание шаблона из линейных  кривых NURBS. В ней рассматриваются  основы рисо­ вания с  использованием  кривых NURBS  первой  степени, т.е.  линейных. В  настоящей главе эта информация будет дополнена.

Кривы е NURBS : кратки й справочни к для  начинающи х  

Кривые  NURBS  (NURBS   curve)  —  это  топология  моделирования,    состоящая   из   точек  редак­ тирования   (Edit  Point —  ЕР),   или    узлов   (knot),   звеньев   (span),   контрольных   вершин   (Control Vertex — CV) и   фрагментов каркаса  (hull). Точки  редактирования,  или  узлы, задают коорди­ наты  точек  в   пространстве, через  которые  проходит кривая.  Звенья являются отрезками кривых между  соседними   точками   редактирования.   Контрольные вершины отвечают за градус угла  кривой  в  этой точке и  глубину ее прогиба между соседними  точками  редакти­ рования.  Фрагменты каркаса — это линии,  соединяющие  контрольные вершины  и  обеспе­ чивающие  быстрый способ выделения  всей кривой.  Каждая кривая  имеет  направление,  от­ меченное начальной контрольной вершиной,  изображаемой  как пустой квадратик.

Линейная кривая  состоит из  девяти  звеньев, кривая  второй степени —  из  восьми, а исходная кубическая кривая  имеет семь  звеньев. В  этом  и  заключается  компромисс между тремя приведенными кривыми: чем выше степень кривой, тем она глаже, причем с меньшим количеством  звеньев.  Количество  контрольных вершин  для  всех трех кривых одинаково,  а это  означает, что кривые  более высокой степени  имеют больше контроль­ ных вершин на меньшее количество звеньев. Таким образом, у кривых высших  степеней больше возможностей по управлению   ими. Но для получения мелких деталей, т.е. резких изменений направления,  в такие  кривые  необходимо добавлять больше звеньев  и,  следо­ вательно, больше контрольных вершин.  Давайте рассмотрим,  в  какой степени  кривая за­ висит от каждой своей  контрольной вершины.

1.     Откройте файл Three Curve s . mb, который находится на компакт-диске.

2.     Чтобы открыть окно параметров Preferences (Предпочтения), выберите пункт меню Windo w =>Settings/Preferences => Preferences (Окно => Параметры/Пред- почтения =>  Предпочтения),  а  затем  убедитесь, что  для  категории  Display  (Представление) параметр regio n Of Effect (Область влияния) установлен в положение On (Включено).

3.     Удостоверьтесь, что в строке состояния выбран режим Select By Componen t Тур е  (Выделять  по  типу  компонентов)  вместе  с   компонентами   Points  (Точки), Par m  Points (Параметрические  точки)  и  Hulls (Фрагмент каркаса), как показано на рис. 4.2, сверху  (?).

4.     Нажав  клавишу <Shift>, выделите  все компоненты каждой линии.

5.     Нажав клавишу <Shift>, выделите  все точки  (см. рис. 4.2).

Часть линии,  подсвеченная белым  цветом, демонстрирует, на сколь  большую часть линии   влияют выделенные контрольные  вершины. Это   называется областью  влияния (region of effect).  Каждая контрольная  вершина  линейной кривой  влияет  только на два звена; каждая  контрольная  вершина  кривой второй степени —  на  три  звена, а  каждая контрольная  вершина  кубической кривой —  на четыре звена. Этот факт несколько за­ трудняет  управление  кривыми  третьей  степени, потому  что  перемещение  одной  кон­ трольной вершины деформирует  достаточно большую часть  кривой.

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

Область влияни я                                                      Област ь влияния                                                   Област ь  влияни я  

Кривая первой степени                          Кривая второй степен и                             Кривая третье й степен и  

Рис. 4.2. Примеры областей влияния для кривых различных степеней. С возрастанием степени кривой возрастает количество звеньев, зависящих от перемещения контрольной вершины

1.    Чтобы скрыть контрольные вершины,   оставив  видимыми  только точки  редактирова­  ния  и  фрагменты каркаса, отожмите в   строке состояния кнопку  Select  By  Points (Выделять по точкам).

2.     Убедившись,  что инструмент Mov e (Перемещение) не установлен в  режим Normal (Нормаль), выделите и  переместите точку редактирования линейной  кривой.  Линия при этом переместится  вполне предсказуемым образом.

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

4.     Выделите и   переместите точку редактирования  кубической кривой. Обратите  вни­ мание  на то, что кривая хоть и  несколько деформировалась,  но вполне приемлемо.

Учитывая эти  факты, метод работы с кривыми  будет таким: сначала  используем ли­ нейные кривые, а затем при создании поверхностей  перестроим их в кубические.

Параметризация

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

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

Хотя  без  длинных введений в  параметрические уравнения и  другие  математические конструкции   саму  по  себе  концепцию  параметризации   определить  и   понять  довольно сложно,  объяснить, что  такое  правильная  параметризация, довольно легко.  Дл я модели­ рования корректность  параметризации  заключается  в  том,  что  каждая  точка  редактиро­ вания  кривой представлена целым  (х.  0), а  не дробным  (х.ххх)  числом. В  процессе  мо­ делирования  вдоль кривых и  поверхностей  NURBS   могут  быть  вставлены узлы  или  изо- параметрические  линии   (isoparm).   Поскольку   кривые и    поверхности   создаются   между узлами  или  изопараметрическими  линиями  с  целочисленными  номерами,  то  кривые и поверхности  необходимо  перестраивать так,  чтобы  получить целочисленное  количество их  узлов  и  изопараметрических  линий. Проиллюстрируем эту  идею, еще раз  воспользо­ вавшись файлом ThreeCurves . mb.

1.   Если   строка   справки   еще   не   отображена,   выберите пункт   меню  Display   =>  UI  Element s => Help Line (Представление => Элементы пользовательского интерфейса => Строка   справки). Строка   справки   обеспечит  обратную   связь  при   параметризации кривых.

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

3.   Чтобы  отобразить компоненты  кубической кривой (справа), выделите ее  инструмен­ том Select  (Выделение). Если  это сделать  инструментом Mov e (Перемещение), то в дальнейшем  ничего не получится.

4.   Щелкните левой кнопкой  мыши  на любой  точке правой линии  и,  не отпуская  ее,  пе­ ретащите указатель  мыши  вдоль линии.  В том месте,  где  был сделан  щелчок,  появит­ ся  желтая  точка,  представляющая  собой  точку  кривой. Если, удерживая кнопку  мы­ ши,  перетаскивать указатель   вдоль  кривой, то  точка  станет   красной.   Посмотрите вниз, на  строку   справки. Там   будет   выведено сообщение  Curv e Parameter :

2.251 или  что-то  подобное  (рис. 4.3).  Данный  текст  означает,  что  текущая  позиция

находится примерно в четверти пути между третьей (2 . 0) и четвертой (3.0) точка­ ми  редактирования.  (Напомним, что нумерация начинается  с  нуля.)

5.   Теперь  нарушим эту  равномерно  параметрическую  кривую, добавив  в  текущую  по­ зицию узел (т.е. точку редактирования).  Выберите пункт меню Edit Curve s => Insert Knot   •   (Редактировать кривые =>   Вставить   узел   • ) .   Параметр   Insert   Location  (Позиция вставки)  определяет,  где  будет  вставлен узел.  При  значении At  Selectio n (В  месте  выделения)   узел  вставляется в   выделенной  точке  кривой. Дл я  значения Betwee n Selection s (Между выделениями) узел создается  между двумя выделенны­ ми   компонентами.  Числовое поле  Multiplicity   (Кратность)   определяет   количество вставляемых узлов. Для  текущей  задачи  установим  переключатель  Multiplicity  в  по­ зицию Increase  By (Увеличить на), а для числового поля Multiplicity установим зна­ чение 1. Щелкните на кнопке Insert (Вставить).

6.    Узел создан в позиции и [2 .251] , следовательно, параметризация кривой нарушена.

Чтобы убедиться в  этом,  щелкните правой кнопкой  мыши  на линии   и  в  появившемся маркированном контекстном  меню выберите пункт Select  (Выделить).

Рис. 4.3. Пример  параметризации  кривой. В точках редактирования параметр принимает целые значения, и нумерация начинается с пер­ вой контрольной вершины

Любую  точку  поверхности   можно  выделить, передав   в    командной  строке   инструменту Select (Выделение) ее координаты. Чтобы выделить  конкретную  точку поверхности,  введи­ те команду selec t <имякривой>.u[х.ххх.]. Чтобы выделить  конкретную точку редак­ тирования,   введите  команду  select    <имякривой>. ер [х],  а  чтобы  выделить конкретную контрольную  вершину —  selec t   <ииякривой>,cv[x]. Для  выделения диапазона любых компонентов  поставьте двоеточие между значениями.  Например,  чтобы выделить  диапазон точек  редактирования, введите  команду  selec t   <имякривой>. ер [0:3].   При  этом  будут выделены точки, соответствующие значениям параметра о, 1, 2 и  з.

7.    Откройте  редактор  атрибутов   (комбинация клавиш   <Ctrl+A> )  и   убедитесь, что наименьшее и  наибольшее значения параметра (Min Max  Value) линии равны 0.00 0 и  7.00 0 соответственно, а количество звеньев равно 8. При корректной  параметри-

зации  значения параметра  Мах  (Максимум) всегда должно  равняться  количеству звеньев, а наименьшее (Mi n (Минимум)) быть равным 0. Эту кривую следует обяза­ тельно перестроить.

8.   Чтобы увидеть  эту операцию в действии,   при  все  еще выделенной кривой  выберите пункт меню Displa y => NURBS Component s (Представление => Компоненты NURBS) и отобразите точки  редактирования, контрольные вершины и  фрагменты каркаса.

9.    Откройте окно параметров rebuil d Curve (Перестроение  кривой), выбрав пункт ме­ ню Edit Curve s => rebuil d Curve • (Редактировать   кривые =>  Перестроение   кривой •) (рис. 4.4) . Процедура перестроения   кривой стремится  распределить узлы (точки  ре­ дактирования)  более равномерно вдоль кривой  и   изменить  ее форму так, чтобы по возможности  минимизировать  их  количество.  Для этого установите  переключатель rebuil d Тур е (Тип  перестроения)  в  значение  Uniform (Однородно). Для переключа­ теля Paramete r rang e (Диапазон параметра) выберите значение  0 То #Span s (О т О до количества звеньев).  Это установит наименьшее  значение параметра  кривой рав­ ным  0, а наибольшее — равным количеству  звеньев.  Чтобы  минимизировать  сопут­ ствующее перестроению  искажение, в  разделе Keep (Сохранять) установите флажок CVs (Контрольные вершины).

Рис. 4.4. До и пост перестроения кривых. Обратите внимание на измене­ ние расположения точек редактирования

10. Чтобы  внести   изменения, щелкните на  кнопке  rebuil d  (Перестроить).   Обратите  внимание на то, что точки  редактирования  переместились,  а  контрольные вершины остались на своих местах. Перейдите в  режим  выделения точек кривой   и протащите выделенную  точку по линии  возле  созданной точки  редактирования.  Теперь точкам редактирования   соответствуют целые   значения  параметра,   что   свидетельствует о  правильной параметризации  линии.

11. При  все еще выделенной линии  откройте редактор атрибутов. Наибольшее  из  значе­ ний параметров Min Max Valu e (Наименьшее и  наибольшее значение) должно быть равным количеству звеньев.

Источник: Кундерт-Гиббс, Джон,  Ларкинс, Майк,  Деракшани, Дариус, Кунзендорф, Эрик,  и др., Освоение Maya  8.5.:  Пер.  с англ.  – М.:  ООО  «И.Д.  Вильямс», 2007.  – 928  с.:  ил.

По теме:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий