OpenGL представляет собой программный интерфейс к графическому оборудованию (хотя существуют и чисто программные реализации OpenGL). Интерфейс насчитывает около 120 различных команд, которые программист использует для задания объектов и операций над ними (необходимых для написания интерактивных трехмерных приложений).

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

OpenGL позволяет:

1. Создавать объекты из геометрических примитивов (точки, линии, грани и битовые изображения).

2. Располагать объекты в трехмерном пространстве и выбирать способ и параметры проектирования.

3. Вычислять цвет всех объектов. Цвет может быть как явно задан, так и вычисляться с учетом источников света, параметров освещения, текстур.

4. Переводит математическое описание объектов и связанной с ними информации о цвете в изображение на экране.

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

Команды OpenGL реализованы как модель клиент-сервер. Приложение выступает в роли клиента - оно вырабатывает команды, а сервер OpenGL интерпретирует Компьютерная графика. Полигональные модели и выполняет их. Сам сервер может находиться как на том же компьютере, на котором находится и клиент, так и на другом.

Хотя OpenGL и поддерживает палитровые режимы, мы их рассматривать не будем, считая, что работа ведется в режиме непосредственного задания цвета (HiColor или TrueColor).

Все команды (процедуры и функции) OpenGL начинаются с префикса gl, а все константы - с префикса GL_. Кроме того, в имена функций и процедур OpenGL входят суффиксы, несущие информацию о числе передаваемых параметров и их типе. В таблице приводятся вводимые OpenGL типы данных, стандартные типы языка С, которым они соответствуют, и суффиксы, которые им соответствуют.

Суффикс

Описание

Tun e C

Тип в OpenGL

b

8-битовое целое

signed char GLbyte
s

16-битовое целое

short GLshort
і

32-битовое целое

long GLint, GLsizei
f

32-битовое число с плавающей точкой

float GLfloat,GLclampf
d

64-битовое число с плавающей точкой

double GLdouble, GLclampd
ub

8-битовое беззнаковое целое

unsigned char GLubyte, GLboolean
us

16-битовое беззнаковое целое

unsigned short GLushort
ui

32-битовое беззнаковое целое

unsigned long GLUint, GLenum, GLbitfield
void GLvoid

Некоторые команды OpenGL оканчиваются на букву v. Это говорит о том, что команда получает указатель на массив значений, а не сами эти значения в виде отдельных параметров. Многие команды имеют как векторные, так и не векторные


⇐ Предыдущая| |Следующая ⇒