Введение в OpenGL (fb2) читать постранично
[Настройки текста] [Cбросить фильтры]
- 1
- 2
- 3
- . . .
- последняя (13) »
Введение в OpenGL Учебное пособиеСодержание:
Введение
OpenGL является на данный момент одним из самых популярных программных интерфейсов (API) для разработки приложений в области двумерной и трехмерной графики. Стандарт OpenGL был разработан и утвержден в 1992 году ведущими фирмами в области разработки программного обеспечения, а его основой стала библиотека IRIS GL, разработанная Silicon Graphics. На данный момент реализация OpenGL включает в себя несколько библиотек (описание базовых функций OpenGL, GLU,GLUT,GLAUX и другие), назначение которых будет описано ниже. Характерными особенностями OpenGL, которые обеспечили распространение и развитие этого графического стандарта, являются:Стабильность
Дополнения и изменения в стандарте реализуются таким образом, чтобы сохранить совместимость с разработанным ранее программным обеспечением.Надежность и пеыреносимость
Приложения, использующие OpenGL, гарантируют одинаковый визуальный результат вне зависимости от типа используемой операционной системы и организации отображения информации. Кроме того, эти приложения могут выполняться как на персональных компьютерах, так и на рабочих станциях и суперкомпьютерах.Легкость применения
Стандарт OpenGL имеет продуманную структуру и интуитивно понятный интерфейс, что позволяет с меньшими затратами создавать эффективные приложения, содержащие меньше строк кода, чем с использованием других графических библиотек. Необходимые функции для обеспечения совместимости с различным оборудованием реализованы на уровне библиотеки и значительно упрощают разработку приложений.Основные возможности OpenGL
· Набор базовых примитивов: точки, линии, многоугольники и т.п. · Видовые и координатные преобразования · Удаление невидимых линий и поверхностей (z-буфер) · Использование сплайнов для построения линий и поверхностей · Наложение текстуры и применение освещения · Добавление специальных эффектов: тумана, изменение прозрачности,сопряжение цветов (blending), устранение ступенчатости (anti-aliasing). Как уже было сказано, существует реализация OpenGL для разных платформ, для чего было удобно разделить базовые функции графической системы и функции для отображения графической информации и взаимодействия с пользователем. Были созданы библиотеки для отображения информации с помощью оконной подсистемы для операционных систем Windows и Unix (WGL и GLX соответственно), а также библиотеки GLAUX и GLUT, которые используются для создания так называемых консольных приложений. Библиотека GLAUX уступает по популярности написанной несколько позже библиотеке GLUT, хотя они предоставляют примерно одинаковые возможности. В дальнейшем в данном пособии в качестве основной будет рассматриваться библиотека GLUT, предоставляющая широкий набор средств взаимодействия с пользователем. В состав библиотеки GLU вошла реализация более сложных функций, таких как набор популярных геометрических примитивов (куб, шар, цилиндр, диск), функции построения сплайнов, реализация дополнительных операций над матрицами и т.п. Все они реализованы через базовые функции OpenGL.Архитектура и особенности синтаксиса
С точки зрения архитектуры, графическая система 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() описана как базовая в- 1
- 2
- 3
- . . .
- последняя (13) »
Последние комментарии
7 часов 59 минут назад
16 часов 51 минут назад
16 часов 53 минут назад
2 дней 23 часов назад
3 дней 3 часов назад
3 дней 5 часов назад