Баяковский Ю.М., Игнатенко А.В., Фролов А.И.
Введение 7
Глава 1. Основы OpenGL 9
1.1. Основные возможности 9
1.2. Интерфейс OpenGL 9
1.3. Архитектура OpenGL 11
1.4. Синтаксис команд 13
1.5. Пример приложения 14
Контрольные вопросы: 18
Глава 2. Рисование геометрических объектов 19
2.1. Процесс обновления изображения 19
2.2. Вершины и примитивы 20
2.3. Операторные скобки glBegin / glEnd 22
2.4. Дисплейные списки 26
2.5. Массивы вершин 28
Контрольные вопросы 29
Глава 3. Преобразования объектов 31
3.1. Работа с матрицами 31
3.2. Модельно-Видовые преобразования 33
3.3. Проекции 35
3.4. Область вывода 37
Контрольные вопросы 38
Глава 4. Материалы и освещение 39
4.1. Модель освещения 39
4.2. Спецификация материалов 40
4.3. Описание источников света 42
4.4. Создание эффекта тумана 45
Контрольные вопросы 46
Глава 5. Текстурирование 47
5.1. Подготовка текстуры 47
5.2. Наложение текстуры на объекты 50
5.3. Текстурные координаты 52
Контрольные вопросы 55
Глава 6. Операции с пикселями 56
6.1. Смешивание изображений. Прозрачность 57
6.2. Буфер-накопитель 58
6.3. Буфер маски 60
6.4. Управление растеризацией 62
Глава 7. Приемы работы с OpenGL 63
7.1. Устранение ступенчатости 63
7.2. Построение теней 64
7.3. Зеркальные отражения 69
Глава 8. Оптимизация программ 73
8.1. Организация приложения 73
8.2. Оптимизация вызовов OpenGL 77
Приложение A. Структура GLUT-приложения 86
Приложение A. Примитивы библиотек GLU и GLUT 90
Приложение A. Настройка приложений OpenGL 93
A.1. Создание приложения в среде Borland C++ 5.02 93
A.2. Создание приложения в среде MS Visual C++ 6.0 94
Приложение B. Демонстрационные программы 95
B.1. Пример 1: Простое GLUT-приложение 95
B.2. Пример 2: Модель освещения OpenGL 97
B.3. Пример 3: Текстурирование 101
Приложение C. Примеры практических заданий 108
C.1. Cornell Box 108
C.2. Виртуальные часы 109
C.3. Интерактивный ландшафт 111
Литература 117
Предметный указатель 118
Стандарт OpenGL (Open Graphics Library – открытая графическая библиотека) был разработан и утвержден в 1992 году ведущими фирмами в области разработки программного обеспечения как эффективный аппаратно-независимый интерфейс, пригодный для реализации на различных платформах. Основой стандарта стала библиотека IRIS GL, разработанная фирмой Silicon Graphics Inc.
Библиотека насчитывает около 120 различных команд, которые программист использует для задания объектов и операций, необходимых для написания интерактивных графических приложений.
На сегодняшний день графическая система OpenGL поддерживается большинством производителей аппаратных и программных платформ. Эта система доступна тем, кто работает в среде Windows, пользователям компьютеров Apple. Свободно распространяемые коды системы Mesa (пакет API на базе OpenGL) можно компилировать в большинстве операционных систем, в том числе в Linux.
Характерными особенностями OpenGL, которые обеспечили распространение и развитие этого графического стандарта, являются:
Описывать возможности OpenGL мы будем через функции его библиотеки. Все функции можно разделить на пять категорий: