Использование OpenGL

1 АНАЛИЗ ВЫБРАННОГО ИНСТРУМЕНТАРИЯ

1.3 Краткий обзор основных 3D API

На сегодняшний день, можно перечислить множество графических библиотек, но для краткости рассмотрим только наиболее распространённые библиотеки:

  1. OpenGL - на мой взгляд, наилучшая библиотека. Она базируется на библиотеке IRIS GL фирмы Silicon Graphics. OpenGL - стандарт переносимой графической библиотеки, принятый всеми ведущими производителями аппаратного обеспечения и разработчиками операционных систем и действующий уже 7 лет. Она обладает стабильностью, надёжностью, переносимостью, простотой использования. При наличии графического акселератора эта библиотека автоматически использует все его возможности для аппаратного ускорения графики. Текущая версия библиотеки 1.2 [1].
  2. Mesa - разновидность OpenGL, разрабатываемая как полностью открытая графическая библиотека, в отличие от запатентованной SGI OpenGL. Эта библиотека является стандартной для открытых Unix-систем типа Linux, FreeBSD и т. п. Есть версии библиотеки для операционных систем Microsoft Windows NT/9x, BeOS, OS/2 и даже MS-DOS. В основном соответствует стандарту OpenGL 1.2.
  3. Direct3D. Интерфейс, разработанный фирмой Microsoft для операционных систем Windows 9x/NT. Существует два уровня данного интерфейса: Текущая версия библиотеки и SDK - 7.0. При наличии расширенного набора команд процессора, например, MMX, KNI, 3DNow!, библиотека использует их при геометрических преобразованиях и растеризации.
  4. Glide - интерфейс, предложенный фирмой 3Dfx Interactive для разработки приложений под графические ускорители Voodoo1, 2, 3, Rush, Banshee. Обеспечивает разработчика минимальным набором функций, реализованных аппаратно, необходимых для реализации полноценного 3D приложения. Обеспечивает максимальную производительность (до 10 млн. треугольников в секунду) [3].
  5. MeTaL - интерфейс, предложенный фирмой S3 Inc. для разработки приложений под графические ускорители Savage3D, Savage4. Обеспечивает наиболее полное использование возможностей плат Savage4, в частности, использование собственного метода компрессии текстур для увеличения пропускной способности шины при работе с текстурами больших размеров (вплоть до 2048x2048). Следует отметить, что компрессия текстур доступна в качестве расширения основного набора функций в таких API, как OpenGL и Direct3D.

Т. к. и Glide и MeTaL рассчитаны на работу с конкретными семействами ускорителей и являются сильно ограниченными API, то далее будет приведен сравнительный анализ только OpenGL и Direct3D.