Графическое программирование. Описание набора драйверов DirectX. Основные компоненты DirectX

Страницы работы

Фрагмент текста работы

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ ТЕХНИЧЕСКОЙ КИБЕРНЕТИКИ

Компьютерная графика

Лабораторная работа №8

Санкт-Петербург

2007


1.  Графическое программирование

Описание набора драйверов 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

Механизм материалов необходим для определения свойств внешнего вида

Похожие материалы

Информация о работе