Сетки кусков (Patch Grids) Безье — это поверхности, сформированные из треугольных или четырехугольных кусков (patches). Каждый кусок Безье состоит из четырехугольной или треугольной рамки (framework), построенной из сплайнов Безье, и поверхности (surface), заключенной в пределы этой рамки и представляющей собой просто-напросто фрагмент полигональной сетки. Изначально такие куски создаются как плоские, но могут быть преобразованы в трехмерные за счет манипулирования вершинами (vertices), расположенными по углам куска, и исходящими из этих вершин касательными векторами (vectors) с маркерами (handles) на концах. Эти касательные векторы и их влияние на форму сплайнов, составляющих рамку куска, совершенно аналогичны касательным векторам обычных двумерных сплайнов, которые рассматриваются в следующей главе. Внутренние вершины и ребра куска Безье недоступны ни для выделения, ни для редактирования. Таким образом, удобство использования кусков состоит именно в том, что с помощью всего лишь четырех угловых вершин можно полностью управлять формой фрагмента сетки, включающего по умолчанию 49 вершин. Для модификации формы куска к нему следует применить модификатор Edit Patch (Правка куска) или преобразовать его к типу Editable Patch (Редактируемый кусок). С помощью этого же модификатора отдельные куски Безье можно скреплять друг с другом для наращивания площади сетки.
NURBS-поверхности (NURBS Surfaces) — это поверхности, форма которых описывается математическими выражениями — неоднородными рациональными В-сплайнами (Non-Uniform Rational B-Splines — NURBS). Такие поверхности, являющиеся всего-навсего конструкционным материалом для создания объектов сложной формы, изначально также создаются как плоские, а затем их форма изменяется на этапе модификации. Отдельные фрагменты NURBS-поверхностей можно прикреплять друг к другу для наращивания общей площади. Различают два типа NURBS-поверхностей:
· точечная поверхность (point surface) проходит через все опорные точки, заданные в трехмерном пространстве;
· CV-поверхность (CV surface) плавно огибает все опорные точки, заданные в трехмерном пространстве и называемые управляющими вершинами (Control Vertices - CV).
Задание 21. Создание сетки кусков Безье
Для создания сеток кусков Безье выполните следующие действия:
1. Щелкните на кнопке Geometry (Геометрия) командной панели Create (Создать) и выберите в раскрывающемся списке разновидность объектов Patch Grids (Сетки кусков). В свитке Object Type (Тип объекта) появятся две кнопки с надписями, соответствующими двум типам сеток: Quad Patch (Четырехугольный кусок) и Tri Patch (Треугольный кусок).
2. Щелкните на кнопке объекта нужного типа. В нижней части командной панели Create (Создать) появятся два свитка: Keyboard Entry (Клавиатурный ввод) и Parameters (Параметры).
3. Щелкните в той точке любого из окон проекций, где должен располагаться один из углов куска, и перетащите курсор в произвольном направлении по диагонали, растягивая сетку. Следите за значениями параметров Length (Длина) и Width (Ширина). Отпустите кнопку мыши, чтобы зафиксировать размеры куска. Примеры кусков Безье приведены на рис. 2.30.
Рис. 2.30. Куски Безье
4. Сетка Tri Patch (Треугольный кусок) не имеет иных параметров, кроме длины и ширины (за исключением стандартного флажка Generate Mapping Coords (Проекционные координаты)). Наименование примитива — Tri Patch (Треугольный кусок) — не совсем справедливо, так как на деле этот прямоугольный фрагмент плоскости состоит из двух треугольных кусков, разделенных общим диагональным ребром. Для сетки типа Quad Patch (Четырехугольный кусок) можно дополнительно задать число сегментов по координатам длины и ширины, используя счетчики Length Segs (Сегментов по длине) и Width Segs (Сегментов по ширине). Максимальное число сегментов составляет 100 на каждую сторону.
Задание 22. Создание NURBS-поверхностей
Для создания NURBS-поверхностей выполните следующие действия:
1. Щелкните на кнопке Geometry (Геометрия) командной панели Create (Создать) и выберите в раскрывающемся списке разновидность объектов NURBS Surfaces (NURBS-поверхности). В свитке Object Type (Тип объекта) появятся две кнопки с надписями, соответствующими двум типам поверхностей: Point Surf (Точечная поверхность) и CV Surf (CV-поверхность).
2. Щелкните на кнопке объекта нужного типа. В нижней части командной панели Create (Создать) появятся два свитка: Keyboard Entry (Клавиатурный ввод) и Parameters (Параметры).
3. Щелкните в той точке любого из окон проекций, где должен располагаться один из углов поверхности, и перетащите курсор в произвольном направлении по диагонали, растягивая поверхность. Следите за значениями параметров Length (Длина) и Width (Ширина). Отпустите кнопку мыши, чтобы зафиксировать размеры. Оба типа NURBS-поверхностей имеют одинаковый набор параметров и после создания внешне практически ничем не отличаются дуг от друга. Различия проявляются только на этапе модификации формы таких поверхностей. Примеры NURBS-поверхностей приведены на рис. 2.31.
Рис. 2.31. Точечная NURBS-поверхность (вверху) и NURBS-поверхность типа CV (внизу)