Сплайн - моделирование в 3ds max
, , (НОЦ НИТ НГТУ)
В современных пакетах геометрического моделирования и компьютерной анимации - 3ds max, Maya, Inventor и др. основными видами интерполяции являются интерполяция на базе В-сплайнов, сплайнов Безье (Bezier) и NURBS. Сплайновое моделирование прекрасно подходит для создания сложных органических форм, таких как лица людей, туловище динозавров или модели инопланетных летающих тарелок. Это связано с тем, что при подобном методе построения форм используются сглаженные и естественные кривые, а не ступенчатые и искусственные полигональные формы.
Моделирование на основе неоднородных рациональных B-сплайнов обладает следующими преимуществами перед другими методами:
- с помощью NURBS проще имитировать поверхности природных объектов или объектов, поверхности которых имеют сложным образом искривленные профили; NURBS-модели обеспечивают лучшее качество визуализации закругленных краев объектов благодаря разбиению на грани, выполняемому с использованием аналитических выражений.
В программе 3dsMax существует 2 различных подхода к моделированию объектов на основе NURBS:
подход заключается в создании NURBS – кривых и генерирования поверхностей на основе. подход заключается в непосредственном создании NURBS – поверхностей нужной формы.Более гибкий из этих двух подходов – 1, основанный на предварительном создании NURBS кривых
Суть NURBS-моделирования состоит в том, что в трёхмерном пространстве рисуются опорные кривые, повторяющие опорные контуры объекта, а затем на них "натягивается" поверхность. В NURBS-моделировании тоже есть несколько методов, таких как в моделировании на основе сплайнов. По сути, сплайн-моделирование - это упрощенный вариант NURBS.
Идеология NURBS подразумевает использование зависимых подобъектов, форма и положение которых зависят от родительских объектов. Подобъекты, в свою очередь, могут иметь другие подобъекты и т. д. Понятие подобъектов NURBS немного отличается от понятия подобъектов для других объектов в3D Studio Max. Если, например, при полигональном моделировании подобъектами являются вершины или грани, то подобъектом NURBS может быть точка, поверхность или кривая, которые в свою очередь могут иметь зависимые подобъекты. Зависимые подобъекты обозначаются зеленым цветом. Поясним на примере зависимость подобъектов. Предположим, зависимая (dependent) поверхность соединяет две другие (№1 и 2), как на рис.1. При изменении положения независимых поверхностей зависимая поверхность тоже изменит свою форму, чтобы сохранить соединение, как на рис.2.

Рис.1.Исходное расположение плоскостей Рис.2. Изменение формы зависимой
поверхности
Для создания NURBS-кривых используем командную панель Create (Создать) > кнопка Shapes (Формы) > раскрывающийся список Nurbs Curves (Nurbs кривые).

Рис.3. Доступ к инструментам создания NURBS
Другой способ создания NURBS кривых обеспечивают кнопки
и
панели Tab
Различают два типа NURBS-кривых:
- Точечная кривая (point curve) – проходит через все контрольные точки, заданные в 3х мерном пространстве; CV кривая (CV curves) – плавно огибает все контрольные точки, заданные в 3х мерном пространстве и называемые управляющими вершинами или узлами решетки деформации

Рис.5. NURBS кривые точечного типа (а) и типа CV (б)
Соответственно подобъектами NURBS кривых точечного типа являются точки (points) и собственно кривые, а NURBS – кривых типа CV – управляющие вершины (curve CVs) и собственно кривые.
Чтобы нарисовать NURBS – кривую, необходимо, как и в случае со сплайнами – линией, зафиксировать положение определенного числа точек-вершин. Точечные кривые проще рисовать, так как они имеют более предсказуемую форму, чем CV кривые. В это же время управлять формой NURBS кривых типа CV в ряде случаев проще, так как перемещение оказывает воздействие на CV - кривую не в столь резкой мере, как перемещение контрольных точек – на форму точечных кривых.
Еще одним преимуществом использования CV – кривых являются возможность присвоения вершинам различных весомых значений, определяющих близость прохождения кривой относительно той или иной вершины, точечные кривые не поддерживают такой возможности.
При работе с кривыми типа NURBS используется ряд функций, аналогичных тем, что применяются при работе со сплайнами.
NURBS кривыёе, как и сплайны, позволяют устанавливать число шагов и степень оптимизации для сегментов, лежащих между вершинами. По умолчанию используется адаптивное значение шага, что позволяет добиваться оптимальных результатов.

Рис.6. Automatic Reparamerization
Установка этого флажка при рисовании NURBS – кривой свободно перемещать курсор из одного окна в другое. В результате получается кривая, располагающаяся не на плоскости, как сплайн-линия, а в 3х мерном пространстве. Для CV - кривых можно установить переключать Automatic Reparamerization – выбор варианта автоматической репараметризации, то есть способа изменения числа опорных точек или управляющих вершин, обеспечивающего сохранение формы кривой
Uniform (Равномерная) – управляющие вершины располагаться равномерно
Chord Length (Длина хорды) – обеспечивает наилучшие результаты (используется алгоритм, основанный на расчете квадратного корня из длины каждого сегмента)
Создавать NURBS поверхности можно либо как стандартные объекты, либо как результат преобразования NURBS кривых. Чтобы создать стандартные NURBS поверхности надо зайти в командную панель Create (Создать) > кнопка Geometry (Геометрия) > раскрывающийся список NURBS Surfaces (NURBS поверхности)

Рис.7. Выбор NURBS Surfaces
В свитке Create Parameters (Параметры создания) выбирается длина (Length) и ширина (Width) создаваемой поверхности, а также число управляющих вершин или по длине (Length Points/CVs) и по ширине (Width Points/CVs).
К выделенным подобъектам NURBS кривых и поверхностей можно применять любые, преобразования, то есть перемещать их, поворачивать и масштабировать. Кроме того, над подобъектами можно выполнять различные операции с помощью специальных инструментов, которые становятся доступными при выборе того или иного подобъекта в свитках командной панели Modify (Изменить)
Существует несколько категорий NURBS-объектов. Все NURBS объекты делятся на зависимые и независимые (исходные). Можно создать 5 незасимых объектов: точка, кривая CV, поверхность CV, поверхность Point. Все другие объекты собраны в группах Dependent (Зависимые).
Ниже приведены примеры готовых моделей выполненных с помощью NURBS-моделирования.

Рис.8. Голова динозавра Рис.9 Колесо
Таким образом, NURBS - моделирование по праву считается наиболее прогрессивным способом, когда речь идет о моделировании объектов с плавными обводами форм. Поэтому в теоретическом курсе геометро-графической подготовки студентов обязательно надо включать NURBS – интерполяцию, что и реализовано в курсе «Вычислительная геометрия» для студентов с направлением подготовки 230200 «Информационные системы».
Литература.
1. Д. Роджерс, Дж. Адамс “Математические основы машинной графики”, Москва «Мир», 2001
2.Дж. Макфарланд, Дж. Саймон. “Autodesk 3ds Max. Версии 8 и 9. Иллюстрированный учебный курс моделирования и анимации. Диалектика. 2006
3. “3ds Max 9. Энциклопедия пользователя”, BHV, 2007


