API (Application Programming Interface) – графический интерфейс программ - предоставляeт разработчикам аппаратного и программного обеспечения средства создания драйверов и программ, работающих быстрее на большом числе платформ.
3D API позволяет программисту создавать трехмерное программное обеспечение, использующее все возможности 3D-ускорителей не прибегая к низкоуровнему программированию. 3DAPI делятся на стандартные (универсальные: 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 еще в операционной системе Windows NT 5.0. Direct 3D имеет два режима: RM (Retained mode) – абстрактный и IM (Immediale) – непосредственный. IM состоит из тонкого уровня, который взаимодействует с аппаратурой и обеспечивает самое высокое быстродействие. RM является высрокоуровневым интерфейсом, обеспечивающим для программиста множество графических операций, включая инициализацию и трансформацию. Большинство 3D-игр используют режим IM.
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 (Intel 740). В последнем случае он называется враппером.
Microsoft DirectX - этот программный интерфейс был разработан для операционных систем начиная с Windows 95, Windows 98 и Windows NT/2000. С помощью этого API увеличивалось быстродействие игр, деловой графики, трехмерного звука и т. д. Несмотря на то, что DirectX был предназначен для игр, он также использовался в программах NetMeeting, ActiveMovie и NetShow. Поскольку DirectX относится к уровню аппаратных абстракций (Hardware Abstraction Layer - HAL), разработчикам программного обеспечения было необходимо использовать функции DirectX, а не обращаться напрямую к видеоадаптеру, звуковой карте, джойстику и другому аппаратному обеспечению. DirectX также относится к уровню аппаратной эмуляции (Hardware Emulation Layer - HEL), что позволяет разработчику программно эмулировать те функции, которые не реализованы аппаратным обеспечением. Уровень HEL был "медленнее", чем HAL, но всегда лучше иметь нереализованную аппаратно функцию (пусть даже медленную), чем не иметь ничего. DirectX состоит из "основного" слоя, который обеспечивает доступ к звуковым устройствам, устройствам двухмерной и трехмерной графики, устройствам ввода и процедурам установки. Отношения между аппаратным, программным обеспечением и DirectXможно продемонстрировать следующей схемой: (Аппаратное обеспечение) - (Direc+X) (Программное обеспечение). Обновление DirectX можно было выполнять независимо от операционной системы.
Слой Media DirectX предоставлял сервис для разработчиков игр, Web интерактивных Медиапрограмм. Последние версии DirectX были доступны для бесплатной загрузки с Web-узла фирмы Microsoft. Кроме того, DirectX уже являлась частью таких продуктов, как Internet Explorer 4/5, Windows 95 OSR 2.x, Windows 98 и Windows 2000.
Некоторые производители аппаратного обеспечения поставляли вместе со своими продуктами последние версии DirectX. Перед инсталляцией некоторые программы проверяют номер версии установленного программного интерфейса. Если установленная версия устарела, то пользователю будет предложено установить последнюю версию. Программный интерфейс DirectX обратно совместим, т.е. последняя версия поддерживает функции всех предыдущих. Для корректной работы всех программ необходимо использовать последнюю версию программного интерфейса DirectX. Работа DirectX с конкретным аппаратным обеспечением обычно описывается в его документации или на Web-узле этого производителя.