Nurbs моделирование 3d max. Знакомство с технологией NURBS моделирования. Кривая Безье как частный случай 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. Нажав клавишу , выделите все компоненты каждой линии.

5. Нажав клавишу , выделите все точки (см. рис. 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. Узел создан в позиции и , следовательно, параметризация кривой нарушена.

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

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

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

7. Откройте редактор атрибутов (комбинация клавиш ) и убедитесь, что наименьшее и наибольшее значения параметра (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 моделирование осуществляется на основе трех разных форматов: неоднородных рациональных сплайнов Безье (о них мы поговорим в этой главе), сеток полигонов (они являются предметом обсуждения следующей главы) и поверхностей с иерархическим разбиением (этот усовершенствованный метод будет представлен в главе 6). Хотя традиционным методом является именно NURBS-моделирование, проще всего описать процесс создания объектов на основе полигональных сеток. Поэтому начнем мы именно с него.

Полигональное моделирование

Полигоны, или многоугольники, состоят из граней (faces). Одна грань представляет собой плоскую поверхность, полученную соединением трех точек, называемых вершинами (vertex). Положение вершин определяет форму и размер грани. Линии, соединяющие вершины друг с другом, называются ребрами (edges). Как правило, полигональные грани имеют три вершины, но могут иметь и четыре вершины и, соответственно, как треугольную, так и четырехугольную форму.

Грани соединяются друг с другом вдоль ребер, формируя более сложную поверхность (рис. 4.2).

Рис. 4.2. Полигональная сфера и составляющие ее подобъекты

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

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

Практические навыки моделирования на основе полигонов вы получите в главе 5.

NURBS-моделирование

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

Как уже упоминалось, аббревиатура NURBS расшифровывается как «неоднородные рациональные сплайны Безье». NURBS-геометрия основана на кривых, математическая концепция которых была разработана французским инженером Пьером Безье. Кривые Безье располагаются между управляющими вершинами (CV - control vertices) и основаны на уравнениях третьего порядка.

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

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

Рис. 4.3. Кривая Безье и ее компоненты

В то время как управляющие точки контролируют кривизну сплайна Безье, сами сплайны, называемые изопараметрическими кривыми (isoparams), определяют Кривизну NURBS-поверхности (рис. 4.4). Расстояние между двумя изопараметрическими кривыми называется интервалом (span). Чем больше количество интервалов, тем более детализированной является поверхность. Однако имейте В Виду, что наличие в сцене поверхностей с высокой детализацией замедляет процесс визуализации.

Рис. 4.4. NURBS-поверхность создается между изопараметрическими кривыми; отредактировать ее форму можно перемещением управляющих вершин

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

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

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

Рассмотрим процесс создания NURBS-кривой. Выберите в меню File (Файл) команду New (Создать) и разверните на весь экран окно проекции Perspective (Перспектива). Выберите в меню Create (Создать) команду CV Curve Tool (Построение CV-кривой) и обратите внимание на то, как при этом изменится форма указателя мыши. Несколько раз щелкните в разных точках координатной плоскости, формируя кривую. Как легко заметить, кривая Безье создается между управляющими вершинами. Нажмите клавишу Enter, чтобы закончить кривую.

Рис. 4.5. Результат сгиба NURBS-цилиндра (слева) и полигонального цилиндра (справа). NURBS-цилиндр остался гладким, в то время как полигональная модель приобрела фасеточный вид

Поверхности с иерархическим разбиением

Поверхности с иерархическим разбиением приобрели лучшие черты NURBS-no-верхностей и полигональных сеток. Они совмещают простоту создания модели и гладкость ее формы.

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

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

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

Выбор формата

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

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

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

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

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

Сначала расшифруем аббревиатуру NURBS. NURBS – это Non-Uniform Rational B-Spline или по-русски неоднородные рациональные B-сплайны. NURBS-кривые обладают одной особенностью: они всегда имеют гладкую форму. В 3d max есть два вида NURBS-кривых: P-кривые и CV-кривые.

P-кривые (point curves) – такие кривые задаются вершинами, лежащими непосредственно на самой кривой. По сути они похожи на обычные сплайны.

CV-кривые (control vertices curves) – форма таких кривых задается управляющими вершинами, лежащих на вспомогательной кривой (на рисунке желтого цвета).

Чтобы создать одну их этих кривых, надо на вкладке Create перейти на вкладку Shape, затем в выпадающем списке выбрать NURBS Curves и нажать на одну из кнопок в зависимости от вида кривой:

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

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

NURBS-поверхности формируются из NURBS-кривых и, так же как кривые, могут быть двух типов: P-поверхности (point surfaces) и CV-поверхности (control vertices surfaces). Как не сложно догадаться эти типы отличаются, друг от друга тем же, чем отличаются два вида кривых.

Есть несколько способов создания NURBS-поверхности.

Можно создать прямоугольный кусок NURBS-поверхности на вкладке Create (Create->Geometry->NURBS Surfaces):

Можно преобразовать в NURBS-поверхность созданный каким-то другим способом объект. Для этого надо щелкнуть правой кнопкой мыши по объекту и выбрать в появившемся меню Convert To:->Convert to NURBS.

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

Если вы создадите NURBS-кривую или поверхность, и перейдете на вкладку Modify, то откроется панель с инструментами NURBS

Если панель не открылась, то ее можно открыть, нажав кнопку NURBS Creation Toolbox:

Эта панелька состоит из разделов для управления вершинами (Points), кривыми (Curves) и поверхностями (Surfaces). Наибольший интерес для нас представляют инструменты управления поверхностями, поэтому рассмотрим некоторые из них.

Create CV Surface, Create Point Surface:

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

Create Blend Surface:

Создает плавный переход между двумя поверхностями:

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

Create Mirror Surface:

Отражает поверхность.

Create Extrude Surface:

Выдавливает поверхность из кривой. Например, из такой кривой:

Можно выдавить такую поверхность:

Create Lathe Surface:

Создает поверхность вращения, подобно модификатору Lathe из урока №3

Create Cap Surface:
Создает поверхности ограниченной некоторой замкнутой кривой. Например, для созданной чуть выше поверхности можно создать такую крышку:

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

Create UV Loft Surface:

Создает поверхность UV-лофтинга из двух групп разомкнутых NURBS-кривых. При этом должно выполняться два правила:
- кривые из одной группы должны лежать вдоль одной из осей создаваемого тела и быть параллельными друг другу;
- концы кривых из одной группы должны располагаться на крайних кривых, входящих в другую группу.
Например, имеем две группы кривых (выделенные и не выделенные):

На основе этих кривых получаем поверхность:

Некоторые остальные инструменты будут рассмотрены в практической части.

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

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

И так начнем с создания вспомогательной линии. Желательно создать ее в виде NURBS-кривой (любого типа), чтобы понять как они создаются. Но это не принципиально и можно использовать обычный сплайн, ибо прямого участия в моделировании эта линия принимать все равно не будет. Я же использовал CV-кривую:

Теперь сделайте копию этой кривой и поверните ее на 90 грудсов вокруг оси Z:

Таким образом мы создали как бы ограничивающие кривые будущей мыльницы. Теперь перейдите на вид сверху и создайте P-кривую в виде овала:

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

В результате получится овал, который скорее всего у вас будет располагается вот так:

Необходимо поднять этот овал до пересечения с вспомогательными кривыми:

Теперь сделайте копию этого овала и опустите его вниз:

А потом промасштабируйте овал до пересечения c другой вспомогательной кривой:

Сделайте еще несколько копий этого овала и промасштабируйте их указанным способом:

А потом еще несколько, с пересечением внутренней поверхности мыльницы:

В результате должно получиться нечто такое:

Теперь необходимо соединить все созданные кривые. Для этого выделите одну из кривых, на вкладке Modify в свитке General найдите кнопку Attach:

Нажмите эту кнопку и прокликайте все остальные кривые. В результате они все объединятся в один объект.

Далее мы создадим на основе этих кривых поверхность с помощью инструмента U-Loft. Выделите кривые, перейдите на вкладку Modify на панели NURBS инструментов, нажмите кнопку Create U Loft Surface:
И начинайте щелкать на каждую кривую по порядку, начиная с самой нижней и заканчивая внутренними кривыми. В конце создания нажмите правую кнопку мыши.
Если в процессе создания вы случайнее перепутали последовательность следования кривых, то их поменять можно на панели справа. Возможно, полученная поверхность получится черной, в этом случае надо поставить галку рядом с Flip Normals:

Если все стало нормально, то нажмите еще раз правую кнопку чтобы зафиксировать результат. Должно получиться примерно вот так:

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

И щелкните по кривой, которое образует днище, а затее по кривой внутри мыльницы:
Если полученная поверхность будет черной, то поставьте галку рядом с Flip Normals:

Теперь создадим закругление на дне мыльнице, для этого используйте инструмент Create Fillet Surface:

Затем щелкните сначала по боковой поверхности мыльницы, а затем по днищу. Сразу после этого необходимо поставить две галки рядом с Trim Surface. После этого могут исчезнуть одна или обе плоскости, в этом случае надо поставить галку рядом с Flip Trim. Далее необходимо увеличить значение радиуса фаски:

Щелкните правой кнопкой мыши, чтобы зафиксировать результат:

Некоторые сплайны могут быть конвертированы в NURBS-кривые, главное, чтобы в их составе не было вершин типа Corner и Bezier Corner. Также в NURBS-кривые могут быть преобразованы четыре стандартных сплайна: Circle, Ellipse, Arc и Star. Именно этим условием мы сейчас воспользуемся, создайте на виде сверху эллипс с помощью сплайна Ellipse:

Затем поверните этот эллипс на градусов 25-30:

Сделайте копию эллипса и увеличьте параметр Length (или Width) на вкладке Modify, чтобы увеличить размер эллипса:

Сделайте еще несколько копий:

Теперь выделите нашу мыльницу и с помощью кнопки Attach, присоедините эти эллипсы к ней. Далее перейдите в режим редактирования кривых:

Выделите все эллипсы:

И поднимете их над поверхностью мыльницы:

Вернитесь в вид сверху. Выберете инструмент Create Vector Projected Curve:

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

С помощью этого инструмента создаются отверстия в NURBS-поверхностях. Кликните по поверхности мыльницы рядом с будущем отверстием, а затем по элипсу-проекции на этой поверхности. Если после этого исчезло не то, что должно было исчезнуть, то поставьте галку рядом с Flip Trim:

В результате должно получиться отверстие:

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

Теперь выделите первоначальные эллипсы и опустите их немного ниже уровня отверстий:

С помощью уже знакомого нам Create U Loft Surface создайте поверхность внутри отверстий:

И последний завершающий штрих – создание фаски тем же методом, что и фаска на днище мыльницы (с помощью Create Fillet Surface):

На этом создание геометрии мыльницы можно считать законченным:

Создание материала мыльницы

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

Цель работы : Знакомство c принципами NURBS моделирования в программе 3D Studio Max .

Общие сведения

NURBS (Non-Uniform Rational B-Splines ) переводится как «неоднородный рациональный В-сплайн». Это особая технология, предназначенная для создания плавных органических форм и моделей, основанная на сложном математическом аппарате. Всего существует около 1500 уравнений для описания всех геометрических элементов, от простейших кривых до сложных поверхностей.

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

Существует два типа NURBS кривых и поверхностей: Point (рис. 1), и CV (Control Vertex ) (рис. 2). Разница между ними заключается лишь в способе управления. Объект Point управляется точками, лежащими непосредственно на самом объекте, другими словами, объект проходит через эти точки. Объект CV управляется вершинами, которые располагаются вне объекта и связаны между собой линиями. Это напоминает управляющие вершины Безье, которые применяются в технологии моделирования на основе лоскутов. Однако существует важное отличие: управляющие очки Безье влияют сразу на всю поверхность, тогда как управляющие вершины NURBS воздействуют на локальную область, размером которой можно управлять, используя вес.
Рисунок 1. Поверхность типа Point.
Рисунок 2. Поверхность типа CV.
Чем больше вес вершины, тем сильнее влияние этой вершины на поверхность или кривую.

Иначе говоря, чем больше вес, тем сильнее меняется форма. На рисунке 3 показано, как две точки с разными весами, перемещенные на одинаковые расстояния, по-разному влияют на поверхность.

Рисунок 3. Вес вершины влияет на силу ее воздействия. Одна поверхность или кривая не могут одновременно управляться как точками, так и вершинами, но внутри одного объекта NURBS могут содержаться как подобъекты Point , так и CV (рис. 4).
Рисунок 4. Кривые Point и CV. Итак, мы познакомились с NURBS моделирования в программе 3D Studio Max . В следующих уроках более подробно будут рассмотрены создание объектов NURBS .

Основной способ создания NURBS -поверхностей — это моделирование поверхностей на основе кривых. В Maya существует несколько методов получения поверхностей из кривых. Одним из самых простых является метод вращения кривой вокруг опорной точки. Этот метод применяется при создании осесимметричных объектов, таких как вазы, рюмки, дверные ручки, яблоки (идеальной формы), бутылки и т.п.

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

Для начала необходимо создать кривую, определяющую форму вазы. Кривую нужно создавать на виде Front или Side . Команды создания и редактирования NURBS-объектов становятся доступны после перехода в режим Surfaces (клавиша F4 ).

Инструменты для создания кривых находятся в меню Create :

  • CV Curve Tool (создание кривой по управляющим вершинам);
  • EP Curve Tool (создание кривой по редактирующим точкам);
  • Pencil Curve Tool (рисование кривой от руки).

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

Переходим на вид Front и вызываем инструмент CV Curve Tool . Полученную кривую будем поворачивать вокруг оси Y, следовательно, для того, чтобы в поверхности не появилось лишних отверстий, первая точка кривой должна лежать строго на оси Y. Значит первую точку кривой (также как и последнюю) нужно ставить с привязкой к сетке, нажав на пиктограмму в строке состояния или удерживая клавишу x .

В процессе построения кривой можно изменять положение поставленных вершин. Для этого нужно нажать клавишу Insert, затем выделить нужную вершину и переместить ее с помощью инструмента Move Tool .

После того как положение всех вершин будет отредактировано, нужно еще раз нажать клавишу Insert (для удаления последней поставленой вершины используется клавиша Delete ). Завершается создание кривой нажатием клавиши Enter .

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

Для создания поверхности вращения на основе полученной кривой используется команда меню Surfaces > Revolve . В данном случае команда применяется с настройками по умолчанию. Рассматривать получившуюся поверхность удобнее в виде Perspective .

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