Формы и Составные Объекты

Shapes (Формы)

Для создания более сложных и реалистичных видов геометрии не всегда хватает набора инструментов из описанных ранее групп примитивов Мах. Такие объекты, как телефонная трубка, фигурная рюмка, стена с дверными и оконными проемами и многие другие едва ли могут быть выполнены набором объектов Standard (Стандартный) и Extended (Расширенный). Для этого требуются более сложные методы моделирования - Лофтинг или Формование, Вращение, Выдавливание, Булевые операции. Почти все эти процедуры требуют создания исходных объектов, называемых Shapes (Формы), которые представляют собой набор двумерных или трехмерных кривых. Эта категория состоит из двух групп объектов - Splines (Сплайнов) и NURBS Curves (Кривых NURBS). Рассмотрим первую из них, как наиболее распространенную и чаще всего используемую группу.

Любая кривая представляет собой набор Vertices (Вершин) соединенных Segments (Сегментами) - прямо- и криволинейными отрезками. Совокупность сегментов составляет Spline (Сплайн), которые в свою очередь и образуют Shape (Форму). Понятия Vertex (Вершина), Segment (Сегмент) и Spline (Сплайн) составляют уровень Sub-Object (Подобъекта) кривых типа Spline и позволяют редактировать их. Остановимся на подобъектах и их особенностях (рис. 5.15).

РИСУНОК 5.15. Сплайн и его Подобъекты

- Vertex (Вершина) - узловые точки сплайна, определяющие изменения его кривизны и степень деталировки. В зависимости от Типа Вершины различают:
- Smooth (Сглаженная) - вершина, плавно соединяющая два смежных сегмента, имеющих равную степень кривизны.
- Corner (Угловая) - вершина, соединяющая два смежных сегмента и образующая прямолинейный излом кривизны.
- Bezier (Безье) - сглаженная вершина, дающая возможность менять кривизну входящих сегментов. При выборе такой вершины возникает инструмент для ее настройки - маркерная касательная линия. Она состоит из двух отрезков, оканчивающихся узлами-маркерами, угол между которыми всегда составляет 180°. Перемещая один из узлов, можно изменять степень кривизны и ориентацию сегментов кривой, в то время как второй узел отображает те же действия центрально симметрично.
- Bezier-Corner (Угловая Безье) - вершина, аналогичная предыдущей, но не имеющая фиксации угла в 180° между отрезками касательной. Перемещение узлов-маркеров происходит независимо, позволяя создавать криволинейные изломы кривизны.

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

- Segment (Сегмент) - прямолинейные или криволинейные участки сплайна, соединяющие его смежные вершины. Криволинейные сегменты образуются совокупностью прямых отрезков, число которых задается счетчиком Steps (Число Шагов) и флажком Adaptive (Адаптивный). В зависимости от Типа Сегмента различают:
- Line (Линейный) - сегмент отрисовывается как кратчайшее расстояние между двумя вершинами, то есть по прямой.
- Curve (Кривая) - сегмент отрисовывается как кривая, в зависимости от типов соединяемых вершин и значений кривизны их касательных.
- Spline (Сплайн) - набор смежных сегментов, образующих непрерывную линию. Сплайны бывают Open (Разомкнутые) и Closed (Замкнутые). В замкнутом сплайне первая и последняя вершина совпадают. В зависимости от Типа Сплайна различают:
- Line (Линейный) - все сегменты сплайна представляют собой одноименный тип при полном отсутствии кривизны.
- Curve (Кривая) - все сегменты сплайна имеют некоторую кривизну.
- Совмещенный, при котором сплайн содержит как первые, так вторые сегменты.

Подобъектный уровень Spline (Сплайн) может содержать одну или несколько кривых.

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

Кривые типа NURBS имеют иную подобъектную структуру, однако рассматривать ее мы не будем.

Все виды сплайнов сосредоточены в одноименной группе из раскрывающегося списка панели Create (Создать) и вызываются кнопкой Shapes I (Формы) (рис. 5.16). Свиток Object Type (Тип Объекта) позволяет выбрать рисование следующих сплайнов:

РИСУНОК 5.16. Вызов группы Shapes (Формы)

- Line (Линия) - основной примитив, позволяющий создать кривую любой нерегулярной формы. Подробнее о работе с кривыми типа Line мы остановимся в Задании 1.

- Circle (Окружность) - рисование окружности по заданному центру или краю и радиусу.

- Arc (Дуга) - инструмент создания сегмента криволинейной формы, с заданием начальной и конечной вершин, а также кривизны или центра.

- Ngon (Многоугольник) - примитив с настраиваемым числом сторон, вписанный или описанный в задаваемый радиус.

- Text (Текст) - объект на основе строк текста с элементами регулирования стиля, полноты, выравнивания и других типографских атрибутов.

- Section (Сечение) - создание сплайнов на основе сечений трехмерных объектов плоскостью.

- Rectangle (Прямоугольник) - часто используемый примитив для рисования прямоугольника или квадрата, с возможностью скругления углов прямыми или кривыми фасками.

- Ellipse (Эллипс) - создает одноименную замкнутую кривую по двум осям.

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

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

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

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

РИСУНОК 5.17. Свитки Interpolation (Интерполяции) и Rendering (Визуализация)

Первая из них регулирует число промежуточных вершин криволинейных сегментов. Чем больше значение счетчика Steps (Число Шагов), тем более плавными будут кривые. Для включения режима автоматического подбора кривизны служит флажок Adaptive (Адаптивный), а для отмены деления промежуточными вершинами прямолинейных отрезков сплайнов предназначен флажок Optimize (Оптимизация). Обычно состояние последнего следует установить во включенное.

Настройки группы Rendering (Визуализация) задают режим видимости сплайна при обсчете сцены. Все объекты этого типа по умолчанию не визуализируются, однако в некоторых случаях удобно использовать и иную возможность. Для этого флажок Renderable (Визуализируемый) следует включить и счетчиком Thickness (Толщина) задать толщину сплайна. Эту величину можно прочувствовать только серией пробных обсчетов сцены, сделанных при разном значении счетчика Thickness (Толщины). И последний флажок, Generate Mapping Coords (Задать Проецирование), необходим при использовании сплайном материала с применением карт текстуры, о чем мы подробнее остановимся в главе «Материалы».