Статья
Версия для печати
Обсудить на форуме
OpenGL (часть 1)



Добро пожаловать в серию обучалок по 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, как в оконном так и в полноэкранном режиме.
Версия для печати
Обсудить на форуме