API (Application Programming Interface).
API (Application Programming Interface) – графический интерфейс программ - предоставляeт разработчикам аппаратного и программного обеспечения средства создания драйверов и программ, работающих быстрее на большом числе платформ.
3D API позволяет программисту создавать трехмерное программное обеспечение, использующее все возможности 3D-ускорителей не прибегая к низкоуровнему программированию. 3D API делятся на стандартные (универсальные: OpenGL, Direct 3D и др.) и собственые (специализированные: Glide, Rredline и др.).
Стандартные API поддерживают широкий спектр 3D-ускорителей и освобождают программистов от низкоуровнего программирования. Собственный 3D API предназначен для одного семейства 3D-ускорителей и освобождает программистов от программирования на физическом уровне. Использование 3D API требует применения драйверов для этого 3D API. Наличие драйверов для Direct 3D и OpenGL для Windows 98 является обязательным требованием ко всем 3D-ускорителям. В настоящее время существует несколько API:
- OpenGL (фирма SGI),
- Direct 3D (фирма Microsoft),
- Glide (фирма 3Dfx).
Glide поддерживается только набором микросхем, выпускаемым фирмой 3Dfx, а остальные API поддерживаются большинством современных видеоадаптеров. Direct 3D является частью API, называемого DirectX. Современное программное обеспечение широко использует графические интерфейсы Х Windows и OpenGL.
API Direct 3D.
Этот API предназначен для облегчения программирования игровых программ. Direct 3D имеет два режима: RM (Retained mode) – абстрактный и IM (Immediale) – непосредственный. IM состоит из тонкого уровня, который взаимодействует с аппаратурой и обеспечивает самое высокое быстродействие. RM является высрокоуровневым интерфейсом, обеспечивающим для программиста множество графических операций, включая инициализацию и трансформацию. Большинство 3D-игр используют режим IM.
API OpenGL.
API OpenGL является открытым 3D API, который поддерживается ассоциацией крупнейших фирм таких как DEC, E&S, IBM, INTEL, INTERGRAPH, Microsoft , SGI. Этот API реализует широкий диапазон функций от вывода точки, линии, полигона - до рендеринга кривых поверхностей NURBS, покрытых текстурой. OpenGL-драйвер может быть реализован в трех вариантах: ICD, MCD и мини порт. ICD (Installable Client Driver) полностью включает все стадии конвейера OpenGL, что обеспечивает максимальное быстродействие, но разработка такого драйвера очень трудоемкий и сложный процесс. MCD (Mini Client Driver) разработан для внесения абстракции в конвейер OpenGL, и поэтомунаписание драйвера менее трудоемко(MCD работает только в Windows NT). Драйвер мини-порт предназначен для одной конкретной игры, обычно для GLQuake и Quake 2. Мини-порт может работать по принципу ICD(Rage Pro), через собственый API (Voodoo 2) или через Direct3D. В последнем случае он называется враппером.
Microsoft DirectX.
Этот программный интерфейс был разработан для операционных систем Windows. С помощью этого API увеличивается быстродействие игр, деловой графики, трехмерного звука и т.д. Несмотря на то, что DirectX предназначен для игр, он также используется в программах NetMeeting, ActiveMovie и NetShow. Поскольку DirectX относится к уровню аппаратных абстракций (Hardware Abstraction Layer - HAL), разработчикам программного обеспечения необходимо использовать функции DirectX, а не обращаться напрямую к видеоадаптеру, звуковой карте, джойстику и другому аппаратному обеспечению. DirectX также относится к уровню аппаратной эмуляции (Hardware Emulation Layer - HEL), что позволяет разработчику программно эмулировать те функции, которые не реализованы аппаратным обеспечением. Уровень HEL «медленнее», чем HAL. Отношения между аппаратным, программным обеспечением и DirectX можно продемонстрировать следующей схемой:
(Аппаратное обеспечение) à (Direc+X) à (Программное обеспечение)
Обновление DirectX можно выполнять независимо от операционной системы. DirectX состоит из «основного» слоя, который обеспечивает доступ к звуковым устройствам, устройствам двухмерной и трехмерной графики, устройствам ввода и процедурам установки. Пример состава программного интерфейса DirectX приведен в табл. 1. Программный интерфейс DirectX содержит слой Media, который состоит из API, приведенных в табл. 2.
Таблица 1
Название API |
Функция |
DirectDraw
|
Поддержка двухмерной графики
|
Direct3D
|
Поддержка трехмерной графики
|
Directlnput
|
Поддержка джойстиков, игровых рулей и других устройств ввода
|
DirectSound
|
Основной звук и эффекты
|
DirectSound3D
|
Создание трехмерного звука
|
DirectSetup
|
Автоматическая установка программного обеспечения и драйверов
|
DirectMusic
|
Поддержка динамической интерактивной музыки
|
Таблица 2. Состав слоя Media DirectX
Название API |
Функция |
|
|
DirectS how
|
Ранее известен как ActiveMovie; позволяет воспроизводить потоки медиаданных, выполнять захваты аудио- и видеоданных.
|
DirectAnimation
|
Ранее известен как анимация ActiveX; создание анимации, с помощью Dynamic HTML, аплетов Java и сценариев.
|
DirectX Transform
|
Позволяет манипулировать одним или несколькими изображениями для Web и приложений.
|
Слой Media DirectX предоставляет удобный сервис для разработчиков компьютерных игр, Web и интерактивных медиапрограмм. Самая последняя версия DirectX обычно доступна для бесплатной загрузки с Web-узла фирмы Microsoft.