Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы САПР Норенков по теме.doc
Скачиваний:
13
Добавлен:
01.04.2025
Размер:
5 Мб
Скачать
☆

5.5. Поверхностные модели

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

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

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

Процесс построения 3D-изображения в виде полигональных сеток можно представить состоящим из трех этапов. На первом этапе поверхность преобразуется в множество многоугольников (полигонов). Далее выполняются геометрические преобразования и установки освещения. На заключительном третьем этапе, так называемом "рендеринг" (rendering), создается двумерное изображение из полученных на предыдущих этапах многоугольников.

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

Знакомство с этими формами удобно выполнить, показав их применение для описания геометрических объектов первого уровня — пространственных кривых.

Примечание 1

Геометрическими объектами нулевого, первого и второго уровней называют соответственно точки, кривые, поверхности.

В подсистемах графики и геометрического моделирования используются параметрически задаваемые кубические кривые

 (1)

где . Такими кривыми описывают сегменты аппроксимируемой кривой, т.е. аппроксимируемую кривую разбивают на сегменты и каждый сегмент аппроксимируют уравнениями (1).

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

В случае формы Безье коэффициенты в (1) определяются, во-первых, подстановкой в (1) значений и и координат заданных концевых точек и соответственно, во-вторых, подстановкой в выражения производных

тех же значений и и координат точек и , задающих направления касательных векторов (рис. 1). В результате для формы Безье получаем

 (2)

где — вектор-строка, матрица представлена в табл. 1, — вектор координат точек , , и , аналогично , — векторы координат , тех же точек.

Таблица 1    

-1

3

-3

1

3

-6

3

0

-3

3

0

0

1

0

0

0

Рис. 1.  Кривая Безье

В случае B-сплайнов аппроксимируемая кривая делится на участков, выделяемых последовательными точками . Участок между парой соседних точек и аппроксимируется B-сплайном, построенным с использованием четырех точек . B-сплайн на участке может быть представлен выражениями, аналогичными (2),

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

Примечание 2

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

Для участка в той же точке имеем и

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

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

Таблица 2    

-1/6

1/2

-1/2

1/6

1/2

-1

1/2

0

-1/2

0

1/2

0

1/6

2/3

1/6

0

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

5.6. DirectX

Microsoft DirectX — это графический интерфейс прикладного программирования (Application Programming Interface, API). До появления API каждый производитель графических процессоров использовал собственный механизм общения с приложением, и разработчикам приложений приходилось писать отдельный код для каждого графического процессора, который они хотели поддержать. Поэтому для каждого приложения указывалось, какие именно видеокарты оно поддерживает. Чтобы решить проблему совместимости разных прикладных программ с видеокартами, был выполнена унификация интерфейсов - разработан специальный графический API.

Исторически существует два типа API: Microsoft DirectX и OpenGL.

Стандарт DirectX включает API для звука, музыки, устройств ввода и т.д. За 3D-графику в DirectX отвечает API Direct3D, и когда говорят о видеокартах, то имеют в виду именно его (поэтому понятия DirectX и Direct3D взаимозаменяемы).

Примеры функций в Direct3D: масштабирование, перемещение и вращение объектов, представленных матрицами; мировое преобразование (трансформации координат объектов, заданных в локальных системах, в мировую систему координрат); проецирование (перспективное и ортогональное); инициализация и очистка z-буфера; переход в систему координат камеры и др.

Стандарт DirectX постоянно обновляется. В настоящее время большинство игр поддерживает DirectX 7.0, DirectX 8.0 и DirectX 9.0. Последняя версия DirectX — это DirectX 9.0с, а с выходом операционной системы Windows Vista появится и DirectX 10.

Каждая версия DirectX поддерживает определенные версии шейдеров - программ обработки вершин (Vertex Shader) и пикселов (Pixel Shader). Эти версии шейдеров называются Shader Model. К примеру, DirectX 8 поддерживает Pixel Shader от 1.0 до 1.3 и Vertex Shader 1.0, а DirectX 8.1 — Pixel Shader 1.4 и Vertex Shader 1.1.

В DirectX 9 поддерживаются Pixel Shader 2.0 и Vertex Shader 2.0, а в DirectX 9.0c — Pixel Shader 3.0.

Как уже отмечалось, первый графический процессор с поддержкой API DirectX 10 — это NVIDIA GeForce 8800.

Список литературы