OpenGL

29.01.2000


Определения

Графика
— визуальное отображение объектов.
OpenGL
— API для вывода графики.

Что такое OpenGL?

OpenGL — это набор функций для вывода графики, преимущественно трехмерной. Игры используют его как интерфейс к трехмерному ускорителю.

Многие говорят, что он многоплатформенный (т.е. если программа написана под Windows, то она пойдет и под Linux), но это не совсем правда. Инициализация/деинициализация OpenGL зависит от платформы. А это половина всего кода, который будет работать с OpenGL.

Расширения OpenGL

Расширения — это новые функции, добавленные к стандартным, чтобы дать программам использовать новые возможности трехмерного ускорения. За написанием своих расширений замечено очень большое количество фирм, даже существует несколько вариантов от разных фирм одного и того же расширения.

Существуют несколько комиссий и комитетов по стандартизации расширений.

Родители

Самый первый из создателей OpenGL — это корпорация SGI, известная своими мощными графическими станциями.

Потом к ней добавились SUN, HP, IBM... Microsoft... Свои расширения OpenGL пишут некоторые производители трехмерных ускорителей. nVIDIA, например, недавно написала расширение, позволяющее в полной мере задействовать возможности карты GeForce256, которая может ускорять освещение.

Документация

Документация OpenGL, к сожалению, не такая хорошая, как у Direct3D. Какая есть, может быть найдена на www.opengl.org. Там также содержится много ссылок на различные ресурсы по OpenGL, и новейшие драйвера OpenGL.

OpenGL vs Direct3D

Уже некоторое время существует Direct3D — вариант трехмерного драйвера для Windows от Microsoft. Многие программисты обеспокоены новым стандартом. Пока Direct3D набирает популярность... Лично я изучал Direct3D 5-7, и могу свидетельствовать, что с каждой версией он становится все проще. Однако он еще не настолько прост в использовании, как OpenGL. И, хотя уже много людей изучают Direct3D, найдется не так много народа, перешедшего на него с OpenGL.

Главный недостаток Direct3D по сравнению с OpenGL заключается в том, что он слишком сложен. Второй недостаток — это что со сменой версии Direct3D программисту приходится почти заново изучать работу с этим драйвером, так как каждый раз в Direct3D изменяется почти все. Преимущество Direct3D над OpenGL заключается в том, что Direct3D хорошо документирован. Еще одно преимущество Direct3D — это Microsoft.

Пока есть отличные от Windows платформы — будет и OpenGL. Пока есть достаточное количество ленивых ;-) программистов — будет OpenGL для Windows.

Благодаря фирме ID Software, OpenGL для Windows не загнулся. GLQuake, Quake2, Quake3Arena не только поддерживают трехмерное ускорение через OpenGL, но и начисто игнорирует Direct3D. MDK2 тоже использует исключительно этот драйвер. Так что еще есть шанс, что OpenGL для Windows продержится долго.

Я планирую перевести Elfish на Direct3D с выходом версии 8.

Следующая страница: Инициализация OpenGL


(c) 2000 Константин Михеев — проект "Elfish Engine"