Архитектура и особенности синтаксиса
Архитектура и особенности синтаксиса
С точки зрения архитектуры, графическая система OpenGL является конвейером, состоящим из нескольких этапов обработки данных:
· Аппроксимация кривых и поверхностей
· Обработка вершин и сборка примитивов
· Растеризация и обработка фрагментов
· Операции над пикселами
· Подготовка текстуры
· Передача данных в буфер кадра
Вообще, OpenGL можно сравнить с конечным автоматом, состояние которого определяется множеством значений специальных переменных (их имена обычно начинаются с символов GL_) и значениями текущей нормали, цвета и координат текстуры. Все эта информация будет использована при поступлении в систему координат вершины для построения фигуры, в которую она входит. Смена состояний происходит с помощью команд, которые оформляются как вызовы функций.
Для обеспечения интуитивно понятных названий в OpenGL полное имя команды имеет вид:
type glCommand_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 соответственно.
Command_name имя команды
[1 2 3 4] число аргументов команды
[b s i f d ub us ui] тип аргумента:
символ b означает тип GLbyte (аналог char в СС++),
символ f тип GLfloat (аналог float),
символ i - тип GLint (аналог int) и так далее.
Полный список типов и их описание можно посмотреть в файле gl.h
[v] наличие этого символа показывает, что в качестве параметров функции используется указатель на массив значений
Символы в квадратных скобках в некоторых названиях не используются. Например, команда glVertex2i() описана как базовая в библиотеке OpenGL, и использует в качестве параметров два целых числа, а команда glColor3fv() использует в качестве параметра указатель на массив из трех вещественных чисел.
Больше книг — больше знаний!
Заберите 20% скидку на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ