- •Компьютерная графика
- •Содержание
- •Основы работы в среде AutoCad
- •Построение чертежа по 3d-технологии
- •Типовые соединения деталей
- •Относительные размеры и расчетные формулы для построения чертежа болтового соединения
- •Относительные размеры и расчетные формулы для построения чертежа шпилечного соединения
- •Виды изделий и конструкторских документов
- •Лабораторная работа №2
- •Объекты в 3ds Max
- •Методы преобразования геометрических объектов
- •Лабораторная работа №3
- •Лофтинговое моделирование
- •Деформация моделей, построенных методом лофтинга
- •Лабораторная работа №4
- •Сетчатые оболочки
- •Редактирование сетчатых оболочек
- •Лабораторная работа №5
- •Источники света
- •Съемочные Камеры
- •Материалы
- •Лабораторная работа №6
- •Анимация
- •Движение объектов по заданному пути
- •Лабораторная работа №7
- •Графическое программирование
- •Описание набора драйверов DirectX
- •Описание графической системы OpenGl
- •Основы OpenGl
- •Рисование геометрических объектов
- •Лабораторная работа №8
- •Список литературы
-
Графическое программирование
-
Описание набора драйверов DirectX
-
DirectX представляет собой набор интерфейсов прикладного программирования (Application Programming Interface - API) и программных инструментов, позволяющих создавать Windows-приложения со встроенным доступом к аппаратным компонентам, не зная подробностей аппаратной конфигурации конкретного компьютера. Данный набор мультимедийных драйверов, зачастую без использования стандартных сервисов операционной системы, может напрямую взаимодействовать с конечным оборудованием, используя все его возможности.
Основные компоненты DirectX
-
DirectX Graphics – объединяет компоненты DirectDraw и Direct3D предыдущих версий библиотеки в единый интерфейс API. Компонент специализируется на работе с двухмерной и трехмерной графикой. Благодаря этому компоненту программы получают прямой доступ к видеоадаптеру компьютера, что позволяет им очень быстро переносить изображения из памяти на экран;
-
DirectShow – используется для программирования мультимедиа-приложений, обеспечивает высококачественный «захват» и проигрывание мультимедийных потоков данных;
-
DirectInput – обеспечивает поддержку устройствами ввода;
-
DirectMusic и DirectSound – объединены в компонент DirectX Audio и предназначены для работы с устройствами воспроизведения звука, позволяет синхронизировать графические данные со звуковыми эффектами, создавать объемные звуковые эффекты;
-
DirectPlay – стандартный интерфейс для сетевого взаимодействия на базе различных сетевых протоколов.
Использование примитивов в Direct3D
Элементарным примитивом в Direct3D является полигон – замкнутая трехмерная фигура построенная, как минимум, по трем точкам. Простейшим случаем полигона является треугольник. Каждый трехмерный объект в DirectX задается набором вершин, между которыми строятся треугольники. Каждая вершина задается набором координат и несколькими дополнительными параметрами, например, цветом.
Необходимо отметить, что DirectX оптимизирует работу программы, чтобы уменьшить нагрузку на аппаратуру. В первую очередь это достигается за счет того, что невидимые, по мнению Direct3D, поверхности не отображаются. Каждый из треугольников имеет лицевую и оборотную сторону. При этом лицевая сторона отображается нормально, а оборотная, как правило, не отображается (фактически, является прозрачной).
Структура программы с использованием Direct3D
При создании любой программы, использующей возможности DirectX Graphics, необходимо обеспечить реализацию следующих основных этапов:
-
инициализация - создание главного окна приложения, определение данных необходимых приложению, и т.п.;
-
вывод графики (render) - как правило, является функцией, постоянно вызываемой в цикле. Поскольку каждый кадр строится заново, необходимо вначале очистить экран. На самом же деле, происходит не очищение, а заполнение экрана цветом, указанным пользователем. Для этого используется функция Clear. Все изображение формируется отдельной функцией или функциями в невидимом буфере (backbuffer), и в функции рендера необходимо после формирования изображения показать этот буфер;
-
завершение работы - освобождение объектов Direct3D. Происходит перед выходом из программы в обратной последовательности по отношению к той, в которой они создавались.
Текстурирование с использованием функций DirectX
Основным достоинством использования средств DirectX для отображения текстур является возможность их динамического изменения в соответствии с изменением модели. Чтобы получить возможность работы с текстурой, ее необходимо загрузить. При этом можно использовать как текстуру, включенную в файл, так и внешний файл, содержащий необходимое изображение.
Необходимо отметить, что DirectX предусматривает возможность накладывать до восьми текстур на один объект, смешивая их попиксельно, согласно определенной формуле. Таким образом, можно добиться реалистичного качества изображения. Это стало возможным при использовании аппарата пиксельных шейдеров и создает значительную вычислительную нагрузку.
Материалы и освещение в DirectX
Механизм материалов необходим для определения свойств внешнего вида объекта. В первую очередь, это касается реакции объекта на освещение.
Освещение играет большую роль при визуализации, так как помогает лучше передать характер поверхности объекта, его форму, сделать изображение более реалистичным. В DirectX существуют три типа освещения: свет исходит от источника одинаково во всех направлениях на определенную дистанцию, свет исходит от источника в виде конуса, свет исходит от источника в указанном направлении на неограниченную дистанцию.