Добро пожаловать в серию обучалок по OpenGl (Open Graphics Library).
Первая статья будет небольшим введением в OpenGl и компьютерную графику.
Как Вы знаете, компьютерная графика - это область информатики в сферу интересов
которой входят все аспекты формирования изображения с помощью компьютера.
Эта область начала развиваться около 40 лет назад.
OpenGl одна из графических библиотек, которая предостовляет нам эти возможности.
В 1982 году в Стенфордском Университете была разработана концепция графической
машины, на основе которой фирма Silicon Graphics в своей рабочей станции
Silicon IRIS реализовала конвейер рендеринга.
Таким образом была разработана графическая библиотека IRIS GL. На основе этой
библиотеки в 1992 году был разработан и утвержден графический стандарт OpenGL.
Разработчики OpenGL это крупнейшие фирмы:
Silicon Graphics, Inc., Microsoft, IBM Corporation, Sun Microsystems, Inc.,
Digital Equipment Corporation (DEC), Evans & Sutherland, Hewlett-Packard Corporation,
Intel Corporation и Intergraph Corporation.
Программы написаные на OpenGL можно переносить практически на любые
платформы (Unix,Linux,Win,Irix,SunOS,MacOS).
Благодаря OpenGl программистам нет необходимости писать под конкретное железо.
Если устройство потдерживает какую-то функцию, то она выполняется апаратно,
иначе она эмулируется программно.
Кстати, в некоторых библиотеках OpenGl имеется возможность изображать результат не только
локально, но и по сети! То есть, приложение которое вырабатывает команды называется
клиентом, а приложение которое получает эти команды и отображает результат - сервером
( знакомая технология, клиент/сервер ).
Основное предназначение OpenGl - это преобразование 2 и 3-х мерных объектов в специальный
формат в специальном буфере.
То есть: Вы определяете объекты, задаете их местоположение, поворот, расстяжение,
задаете свойства этих объектов (текстуры, цвет, материал), положение камеры, и после всего
этого OpenGL отображает конечную картинку на экране.
Все объекты описываются как последовательность точек в пространстве, которые определяют
геометрические объекты, или пикселов которые определяют изображения.
OpenGl предостовляет доступ к контролю операциями 2, 3-х мерной графики.
Это трансформационные матрицы, коэфициэнты уравнений освещений, методы сглаживания,
модифицирование пикселов и вершин.
Можно кратко выделить основные возможности OpenGl:
- Видовые и модельные преобразования;
- Геометрические и растровые примитивы;
- Использование кривых Безье;
- Работа с цветом;
- Удаление невидимых линий и поверхностей. Z-buffer;
- Наложение текстур;
- Сглаживание;
- Освещение;
- Атмосферные еффекты;
- Прозрачность.
Все имена функций начинаются с gl, а заголовки функциий хранятся в файле gl.h,а сами функции
в библиотеке opengl32.lib.
Кроме основной библиотеки существует еще несколько дополнительных:
- Библиотека графических утилит (GLU). В ее состав входят функции формирования
сложных объектов вроде сферы, куба, кривых поверхностей и т.д;
- GLUT (GL Utility Toolkit) содержит функции которые отвечают за взаимодействие с системой окон;
- GLAUX аналог GLUT под Windows от Microsoft;
- GLX используется для X-Windows, имеет возможность сетевого рендеринга.
Кроме OpenGL, существую еще и другие библиотеки:
- Direct3D от Microsoft (работает только под Win);
- Glide от 3Dfx (работает только на ускорителя 3Dfx).
Подведем итоги.
Используя OpenGL мы получаем простоту, использование мощности современных видеокарт,
мультиплатформенность.
Следующая статья будет содержать пример, который будет рассказыват о том, как правильно
инициализировать OpenGl, как в оконном так и в полноэкранном режиме.