Главная страницаОбратная связьКарта сайта
Best vps hosting switzerland.

DirectX и OpenGL

С появлением операционной системы Windows в разработке приложений, активно использующих графику, возникла проблема. С одной стороны, условия переносимости и независимости от аппаратной платформы требуют использования унифицированного программного API для графических функций (например, Windows GDI). С другой стороны, для разработки сложных программных систем и игр требуется иметь непосредственный доступ к аппаратным возможностям ускорения графики, которые, однако, присутствуют не на любом компьютере. Для разрешения этого противоречия были разработаны два программных пакета — Microsoft DirectX и Silicon Graphics OpenGL. Оба они обеспечивают доступ ко всем современным технологиям графического ускорения, которые имеются на конкретной видеокарте, при этом сохраняется возможность программной эмуляции тех функций, которые отсутствуют на определенном устройстве. Начиная с Windows, DirectX стал ключевой технологией для использования компьютерной графики, звука и прочих мультимедийных возможностей. В этом разделе приводится обзор технологии DirectX и ее компонент, а также краткий обзор OpenGL.

Структура DirectX

DirectX представляет собой программный пакет, состоящий из нескольких прикладных программных интерфейсов (API), который обеспечивает стандартный набор функций для графики, звука и мультимедийных устройств, а также сервисные возможности. Программный пакет DirectX подразделяется на три уровня: фундаментальный уровень, уровень мультимедиа и уровень компонент.

Фундаментальный уровень

Фундаментальный уровень является сердцем программного пакета DirectX. Это набор низкоуровневых прикладных программных интерфейсов, являющийся основой для высокопроизводительных мультимедийных функций операционных систем Windows. С его помощью операционная система Windows может напрямую взаимодействовать с аппаратурой. Фундаментальный уровень включает следующие прикладные интерфейсы:

■     DirectDraw. Осуществляет управление графической поверхностью (например, экраном дисплея).

■     Direct3D. Непосредственный (immediate) режим предоставляет низкоуровневые функции трехмерной графики, используемые в сочетании программой с DirectDraw.

■     Directlnput. Поддерживает широкий набор устройств ввода (включая новые джойстики с силовой обратной связью).

■     DirectSound. Обеспечивает звуковые функции и микширование звука.

■     DirectSound3D. Обеспечивает трехмерных (объемный) звук при использовании соответствующего набора динамиков.

■     DirectSetup. Обеспечивает автоматическую установку программного обеспечения и драйверов.

Уровень мультимедиа

Уровень мультимедиа программного обеспечения DirectX состоит из API-функций прикладного уровня, которые используют преимущества служебных системных программ фундаментального уровня DirectX. Программы этого уровня являются аппаратно независимыми и включают в себя такие функции как анимация, поведение, и управление потоками видеоданных. Данный уровень DirectX включает в себя следующие прикладные интерфейсы:

■     Direct3D. Отложенный (retained) режим предоставляет набор функций построения трехмерной сцены.

■     DirectPlay. Поддерживает игры с несколькими участниками в сети.

■     DirectShow. Управляет операциями и функциями показа слайдов.

■     DirectAnimation. Обеспечивает поддержку анимации.

■     DirectModel. Поддерживает трехмерное моделирование.

■     DirectMusic. Обеспечивает сочинение и воспроизведение музыкальных произведений.

Уровень компонентов

Уровень компонентов является верхним уровнем иерархии программного обеспечения DirectX. Программы уровня компонентов используют все возможности, предоставляемыми двумя другими уровнями. Данный уровень DirectX включает в себя:

■     NetMeeting. Средство коллективного взаимодействия в реальном времени через локальную сеть или Интернет.

■     ActiveMovie. Набор инструментов для визуализации полноэкранного MPEG-видео и поддержки воспроизведения широкого круга видео- и звуковых форматов.

■     NetShow. Разрешает прямую трансляцию мультимедийного содержания через Интернет, а также поддерживает создание трехмерной виртуальной реальности при помощи технологии VRM L.

DirectX 8.x

Программное обеспечение DirectX 8.x и выше включает новые и усовершенствованные функции. Главные компоненты, в основном, остались теми же, но некоторые функции предыдущих версий были объединены. DirectX 8.x включает в себя пять основных компонент: DirectAudio, DirectGraphics, Directlnput, DirectPlay и DirectShow.

DirectAudio

Интерфейс DirectAudio обеспечивает современную архитектуру для воспроизведения музыкальных и звуковых эффектов. Ее отличают минимальное использование центрального процессора и минимальные требования к аппаратуре трехмерной графики. Хотя DirectAudio включает в себя интерфейсы DirectMusic и DirectSound, отличия между ними небольшие. Интерфейс DirectMusic стал общепринятым для создания интерактивных звуковых эффектов. Синтезатор DirectMusic является основным звуковым генератором для DirectAudio. Он генерирует все звуки, смешивает их и посылает результат для обработки в буфера DirectSound.

DirectGraphics

С введением модуля DirectGraphics в состав программного обеспечения DirectX некоторые функции программы DirectDraw были перемещены в программу Direct 3D. Это относится к созданию ресурсов, таких как текстуры и буфера вершин, индикация выбранного режима и вывод созданных изображений на монитор. Программа DirectGraphics также поддерживает многовыборочную (multisampling) визуализацию, что позволяет осуществлять полноэкранное сглаживание контурных неровностей — FSAA (Full-Scene Anti-Aliasing) и сглаживать движущиеся объекты (motion blur). Программируемая обработка вершин и программируемая обработка пикселов допустима как для общего отображения окружения, так и для попикселного отображения окружения.

Directlnput

Интерфейс Directlnput пакета DirectX обеспечивает пользовательский интерфейс автоматического конфигурирования устройств. Он также обеспечивает прикладным программам прямой доступ к устройствам для создания собственных конфигурационных интерфейсов.

DirectPlay

Модуль DirectPlay пакета DirectX обновляет этот уровень иерархии с целью упрощения и повышения производительности. Этот модуль может обслуживать сотни пользователей в среде со многими игроками. Программа DirectPlay Voice обеспечивает пользователю голосовой интерфейс с выбором узкой или широкой полосы пропускания.

DirectShow

Интерфейс DirectShow пакета DirectX предоставляет единый набор функций для графики, звука и потоковых программ. Приложения, использующие DirectShow, легче разрабатываются и тестируются. Интерфейс позволяетредактировать выводимые на экран изображения в режиме реального времени. В DirectShow улучшена поддержка DVD. Интерфейс также поддерживает видеодиски и диски Караоке.

Версии DirectX

Поскольку программный пакет DirectX является набором функций, каждое приложение, использующее DirectX, написано с использованием конкретной версии DirectX — и для работы приложения необходимо, чтобы в операционной системе Windows были установлены корректные компоненты DirectX. В противном случае, приложение не будет работать. В большинстве случаев программный пакет DirectX обладает обратной совместимостью, поэтому приложения, написанные для Direct 3.x будут работать на компьютере с Direct 8.x. Но приложение, написанное для Direct 8.x, не будет работать в системе с Direct 6.x. Поэтому полезно уметь определять версию программного пакета DirectX, установленную на компьютере:

1.    С помощью программы «Проводник» (Windows Explorer) или «Мой компьютер» (My computer) найдите в папке \Windows\ System32 или \Windows\System файл DDRAW.DLL.

2.    Щелкните правой кнопкой мыши по файлу DDRAW.DLL, затем в открывшемся меню выберите пункт «Свойства» (Properties).

3.    Выберите вкладку «Версия» (Version).

Определение версии файла DDRAW.DLL


4. Сравните номер версии (рис. 18.14) в поле «Версия файла» (File version) со следующим списком (для операционных систем Windows 9х/Ме):

■     4.02.0095       DirectX!

■     4.03.00.1096  DirectX 2

■     4.04.00.0068   DirectX 3 или За

■     4.05.00.0155   DirectX 5

■     4.05.01.1721   DirectX 5.1

■     4.05.01.1998  DirectX 5.2 (Windows 98 и последующие версии)

■     4.06.02.0436   DirectX 6.1

■     4.06.03.0518  DirectX 6.1a

■     4.07.00.0700   DirectX 7

■     4.07.00.0716   DirectX 7a

■     4.07.01.3000   DirectX 7.1

■     4.08.00.0400   DirectX 8.0 (Дата 04.11.2000)

■     4.08.00.0400   DirectX 8.0a (Дата 16.01.2001)

■     4.08.01.0881   DirectX 8.1 (Windows 9x/Me)

■     4.08.01.0901   DirectX 8.1b (Windows 9x/Me)

Программные пакеты DirectX версий З и За используют одну и туже версию файла DDRAW.DLL. Для того чтобы узнать, какая из версий (3 или За) установлена на компьютере, используйте предыдущую процедуру для проверки версии файла D3DRGBXF.DLL:

Для операционных систем Windows 2000/ХР версия файла отличается от приведенного, так как первая цифра определяет семейство операционных систем (4 — Windows 9х/Ме, 5 — Windows 2000/ХР), что и показано на рис. 18.12. Для определения версии пакета DirectX в современных операционных системах рекомендуется использовать средство диагностики DXDIAG, как описано ниже. — Прим. ред.




Рис. 18.15 Окно программы «Средство диагностики DirectX»

Начиная с версии 6.1, в состав DirectX входитутилита DXDIAG — «Средство диагностики DirectX». Она выдаст подробную информацию о компонентах DirectX и драйверах, установленных в системе (рис. 18.15). Также при помощи нее можно проверить функционирование программ, решить диагностические проблемы и изменить конфигурацию системы.


Графическая библиотека OpenGL

Появившись в 1992 году, программный пакет OpenGL стал еще одним популярным межплатформенным (совместимый с несколькими операционными системами) стандартом для аппаратного ускорения трехмерной графики. Спецификация OpenGL определяется независимой группой OpenGL Architecture Review Board. В настоящее время эта группа включает в себя представителей компаний ATI, Compaq, NVIDIA, Microsoft и др. Последний выпуск версии OpenGL 1.2 доступен для операционных систем Windows, MacOS, Linux и UNIX. Программный пакет OpenGL используется для аппаратного ускорения трехмерной фафики во многих популярных ифах — Quake III, Baldurs Gate, Descent 3 и MDK2. OpenGL предоставляет те же функции визуализации трехмерных сцен, которые были описаны в разделе DirectX: функции преобразования и освещения, отсечения по фаницам области и визуализации. OpenGL поддерживает трехмерные эффекты, такие как вуалирование в реальном режиме, наложение неровностей, трехмерные текстуры и другие.

Профаммный пакет OpenGL используется также для создания трехмерной фафики и эффектов в производстве телевизионных профамм и кинокартин. Он интефирован в разработку многих программ виртуальной реальности. Популярность этой системы также связана с поддержкой, которую она оказывает операционной системе Linux. Многие ифы стали доступными для выполнения в среде операционной системы Linux благодаря использованию аппаратного ускорения трехмерной фафики системы OpenGL. OpenGL также совместим с операционными системами Windows 9x/Me, NT, 2000, ХР.

Для работы профаммного пакета OpenGL необходима поддержка и операционной системы, и видеокарты. Большинство современных производителей фафических ускорителей (NVIDIA, ALI, Matrox, и другие) поддерживают пакет OpenGL. Необходимые для конкретного адаптера драйверы имеются на установочном компакт диске и доступны на сайте производителя адаптера. Файлы системы OpenGL, необходимые для работы конкретных прикладных профамм, должны находиться на установочном компакт-диске вместе с программой установки приложения. Пакет OpenGL можно также зафузить и установить непосредственно из Интернета. Профамма установки системы OpenGL (GLSetup) автоматически проведет распознавание имеющейся аппаратуры и установит только те файлы, которые требуются для работы этой аппаратуры. Полная профамма установки системы OpenGL, которая поддерживает большинство фафических процессоров, имеет объем свыше 85 Мбайт и требует нескольких часов для загрузки через модемное соединение.
^


Компания Microsoft не включила библиотеки OpenGL в исходную версию операционной системы Windows 95. Эти библиотеки были включены в операционные системы Windows, начиная с Windows 95 OSR2.

Обсудить статью на форуме


Если прочитаная статья из нашей обширной энциклопедия компьютера - "DirectX и OpenGL", оказалась полезной или интересной, Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по статье через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2017 Дискета.info