OpenGL. Компьютерная графика. Васильев С.А. - 6 стр.

UptoLike

Составители: 

8
3 СИНТАКСИС КОМАНД
Синтаксис полного имени команды имеет вид:
rt glCom_name[1 2 3 4][b s i f d ub us ui][v] (type1 arg1,…,typeN argN)
Таким образом, имя состоит из нескольких частей:
Gl
Это имя библиотеки, в которой описана эта
функция: для базовых функций OpenGL,
функций из библиотек GLU, GLUT, GLAUX
это gl, glu, glut, aux соответственно.
rt Определяет тип возвращаемого значения и
для каждой команды указывается в явном
виде.
Com_name
Имя команды, например glColor или glVer-
tex.
[1 2 3 4]
Цифра, показывающая число аргументов
команды.
[b s i f d ub us
ui]
Симолы, определяющие тип аргумента:
символ b означает тип GLbyte налог char в
С\С++), символ f – тип GLfloat (аналог float),
символ i – тип GLint (аналог int) и так далее.
Полный список типов и их описание можно
посмотреть в файле gl.h.
[v]
Наличие этого символа показывает, что в
качестве параметров функции используется
указатель на массив значений.
Компоненты, представленные в квадратных скобках в некоторых названиях не используются.
Например, команда для определения вершины, имеющая вид: void glVertex3f(float arg1, float arg2,
float arg3) в представленном синтаксисе записывается в виде void glVertex3[f](atype arg).
Благодаря тому, что OpenGL реализован по модели клиент сервер, то имеется возможность управ-
лять процессом рисования примитивов. Для этого в OpenGL существуют две команды:
void glFinish()
void glFlush()
Команда glFinish() приостанавливает выполнение программы, пока не будут завершены все вызван-
ные перед ней команды OpenGL.
Команда glFlush() вызывает немедленное рисование ранее переданных команд.
4 ПРОЦЕСС РЕГЕНЕРАЦИИ ИЗОБРАЖЕНИЯ
Основной задачей программы, использующей OpenGL, является обработка трехмерной сцены и инте-
рактивное отображение в буфере кадра ее проекции. Для динамической графики приложение OpenGL в
бесконечном цикле должно вызывать функцию регенерации (обновления) изображения.
Обычно функция регенерации изображения состоит из следующих шагов:
1 Очистка буферов ( цвета, глубины сцены и т.п.) OpenGL.
2 Установка положения наблюдателя (виртуальной камеры).
3 Преобразование и рисование геометрических объектов.
Очистка буферов производится с помощью команд:
void glClearColor ( clampf r, clampf g, clampf b, clampf a )
void glClear (bitfield buf)
Команда glClearColor устанавливает цвет, которым будет заполнен буфер кадра. Первые три парамет-
ра команды задают R,G и B компоненты цвета и должны принадлежать интервалу значений [0,1]. Четвер-
тый параметр задает так называемую альфа компоненту (прозрачность). Если этот параметр равен 1, то
цвет не прозрачный. По умолчанию цвет – черный (0,0,0,1).
Команда glClear очищает буферы, а параметр buf определяет какие именно буферы нужно очи-
стить. Данный параметр формируется маску для очистки комбинацией (логической функцией OR) кон-