On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

3D API

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

3D API делятся на универсальные и специализированные.  Универсальный  3D API
позволяет абстрагироваться от конкретного оборудования.  Без  универсального
API, поддерживающих широкий спектр 3D-ускорителей,  разработчиками  пришлось
бы портировать игры под множество плат.  Hаиболее известные универсальные 3D
API - OpenGL и Direct3D.  Специализированный  3D API предназначен для одного
конкретного семейства 3D-ускорителей и ограждает программиста  от низкоуров-
него программирования с помощью прямого доступа к регистрам и памяти. Приме-
ры специализированных  3D API  -  Glide (от 3Dfx),  RRedline (от Rendition),
PowerSGL (от Videologic), RenderGL (от Intergraph).

Direct3D - 3D API компании Microsoft, предназначенный для использования пре-
имущественно в играх.  Direct3D существует только в Windows 95, в скором бу-
дущем появится в Windows NT 5.0.  Direct3D  имеет  два режима:  RM (retained
mode) или абстрактный и IM (immediate mode) или непосредственный. IM состоит
из тонкого уровня, который общается с аппаратурой и обеспечивает самое высо-
кое быстродействие. Абстрактный режим - высокоуровневый интерфейс, покрываю-
щий множество операций для программиста, включая инициализацию и трансформа-
цию. У обоих режимов есть достоинства и недостатки, большинство Direct3D-игр
используют IM.

OpenGL - открытый 3D API,  созданный компанией SGI и контролируемый ассоциа-
цией OpenGL Architecture Review Board,  в  которую  входят  DEC,  E&S,  IBM,
Intel, Intergraph, Microsoft и SGI.  OpenGL реализует широкий диапазон функ-
ций от вывода точки,  линии или полигона  до рендеринга  кривых поверхностей
NURBS, покрытых текстурой.

Использование универсального 3D API предполагает использование драйверов для
этого API.  Hа сегодняшний день наличие драйверов Direct3D и OpenGL является
обязательным требованием ко всем 3D-ускорителям.

Direct3D-драйвер реализует так называемый уровень аппаратной абстракции, HAL
(Hardware Abstraction Layer) - интерфейс,  который взаимодействует непосред-
ственно  с оборудованием и позволяет  приложениям  использовать  возможности
3D-ускорителя с маскимальным быстродействием.  HAL имеет низкоуровневый дос-
туп к 3D-чипу и реализует 3D-функции на аппаратном или программно-аппаратном
уровне. В отличие от HAL,  уровень эмуляции,  HEL (Hardware Emulation Layer)
является программным растеризатором.

OpenGL-драйвер  может быть реализован  в двух вариантах:  как ICD и как MCD.
ICD (Installable Client Driver)  полностью  включает  все  стадии  конвейера
OpenGL,  что дает максимальное быстродействие,  но ICD довольно сложно прог-
раммировать.  MCD (Mini Client Driver) разработан  для внесения абстракции в
конвейер OpenGL.  MCD гораздо  легче программировать,  так  как  разработчик
программирует только те участки кода драйвера, которые он считает нужным оп-
тимизировать для своего чипсета.  Однако MCD  уступает ICD в быстродействии,
плюс ко всему MCD  работает  только  в Windows NT.  Для  широкого  внедрения
OpenGL  на платформе  Windows 95  сейчас  разрабатывается 3D Graphics Device
Driver Kit (Комплект разработчика драйверов устройств для 3D-графики). Hовый
DDK будет включать переработанный SGI ICD DDK и Direct3D DDK и позволит пос-
тавщикам графических микросхем и плат разрабатывать OpenGL-драйвера для Win-
dows 95, Windows NT 4.0, а также Windows 98 и Windows NT 5.0.
Назад       Содержание       Вперёд