Предисловие

1. ОБЗОР OPENGL
1.1. ВВЕДЕНИЕ
1.2. СОСТАВ OPENGL
1.3. ПРИМИТИВЫ И КОМАНДЫ
1.4. МОДЕЛЬ ИСПОЛНЕНИЯ КОМАНД
1.5. ЗАДАНИЕ ЦВЕТА
1.6. ВИДЕОПИКСЕЛИ
1.7. БУФЕР КАДРА
1.8. ДВОЙНАЯ БУФЕРИЗАЦИЯ
1.9. ЭТАПЫ ВЫПОЛНЕНИЯ КОМАНД
1.10. ПЕРЕДАЧА ДАННЫХ
1.11. ОБЗОР КОМАНД
1.11.1. Синтаксис команд OPENGL
1.11.2. Формирование связанных с
вершинами данных
1.11.3. Преобразование координат вершин
1.11.4. Освещение и закраска
1.11.5. Генерация координат текстуры
1.11.6. Сборка примитивов
1.11.7. Преобразования примитивов
1.11.7.1. Отсечение
1.11.7.2. Преобразование в оконные
координаты
1.11.7.3. Растеризация
1.11.7.4. Операции чад фрагментами
1.11.7.5. Управление пикселями
1.11.7.6. Операции буфера кадра
1.11.7.7. Чтение и копирование
пикселей
1.11.8. Дополнительные команды OPENGL
1.11.8.1. Использование оценщика
1.11.8.2. Выбор и возврат данных
1.11.8.3. Списки команд
1.11.8.4. Управление режимами и
исполнением
1.11.8.5. Получение информации о
характеристиках приложения
1.11.9. Команды GLU-библиотеки
1.11.9.1. Обработка образов при
наложении текстуры
1.11.9.2. Преобразование координат
1.11.9.3. Триангуляция многоугольников
1.11.9.4. Вывод простых поверхностей
1.11.9.5. Вывод NURBS-кривых и
поверхностей
1.11.10. Обработка ошибок
1.12. ОГРАНИЧЕНИЯ БАЗОВОЙ РЕАЛИЗАЦИИ
1.13. ТИПЫ ДАННЫХ OPENGL
1.14. ОРГАНИЗАЦИЯ ДОСТУПА К OPENGL
1.15. ИНИЦИАЛИЗАЦИЯ ОКНА OPENGL
1.16. НАЧАЛЬНЫЕ СВЕДЕНИЯ

2. УПРАВЛЕНИЕ ЦВЕТОМ
2.1. СИСТЕМА ЦВЕТОВ RGB
2.2. СИСТЕМЫ ЦВЕТОВ OPENGL
2.2.1. Задание цвета фона в режиме RGBA
2.2.2. Текущий цвет вывода в режиме RGBA
2.2.3. Задание фона и текущего цвета в
режиме индекса цвета

3. ВЕКТОРНЫЕ ПРИМИТИВЫ
3.1. ВИДЫ ВЕКТОРНЫХ ПРИМИТИВОВ
3.2. ПОРЯДОК СОЕДИНЕНИЯ ВЕРШИН
3.3. ВЕРШИНЫ
3.4. ПРИМЕР ВЫВОДА ПРИМИТИВОВ
3.5. ВЫВОД ПРЯМОУГОЛЬНИКА
3.6. УПРАВЛЕНИЕ РАСТЕРИЗАЦИЕЙ ЛИНИЙ
3.7. УСТРАНЕНИЕ ЛЕСТНИЧНОГО ЭФФЕКТА
3.8. УПРАВЛЕНИЕ РАСТЕРИЗАЦИЕЙ ТОЧЕК
3.9. ДВЕ СТОРОНЫ МНОГОУГОЛЬНИКА
3.10. УПРАВЛЕНИЕ РАСТЕРИЗАЦИЕЙ
МНОГОУГОЛЬНИКОВ
3.11. ФЛАГ РЕБРА
3.12. ЗАПОЛНЕНИЕ МНОГОУГОЛЬНИКА ПО ОБРАЗЦУ
3.13. ЦВЕТ ПРИМИТИВА
3.13.1. Цвет, когда освещенность не
рассчитывается
3.13.2. Цвет как результат расчета
освещенности

4. РАСТРОВЫЕ ОБЪЕКТЫ
4.1. БИТОВЫЕ ОБРАЗЫ
4.1.1. Порядок вывода битового образа
4.1.2. Интерпретация данных битового
массива
4.1.3. Текущая растровая позиция
4.1.4. Пример вывода битового образа
4.2. ВЫВОД БЛОКА ПИКСЕЛЕЙ
4.2.1. Пиксели и видеопиксели
4.2.2. Порядок вывода прямоугольника
пикселей
4.2.3. Задание карты цветов и трафарета
4.2.4. Упаковка и распаковка пикселей
4.2.5. Задание режимов преобразования
пикселей
4.2.6. Передача пикселей в буфер кадра
4.2.7. Вывод BMP-файлов
4.2.7.1. Структура BMP-файла
4.2.7.2. Особенности вывода 1-битового
BMP-файла
4.2.7.3. Особенности вывода 4-битового
BMP-файла
4.2.7.4. Особенности вывода 8-битового
BMP-файла
4.2.7.5. Особенности вывода
24-битового BMP-файла
4.2.7.6. Программа вывода BMP-файлов
разных типов
4.2.8. Масштабирование пикселя
4.2.9. Копирование и чтение пикселей

5. ОТОБРАЖЕНИЕ ТРЕХМЕРНЫХ ОБЪЕКТОВ НА
ПЛОСКОСТЬ
5.1. ПРЕОБРАЗОВАНИЕ КООРДИНАТ
5.1.1. Схема преобразования координат
5.1.2. Физическая и оконная системы
координат
5.1.3. Мировая система координат
5.1.4. Аффинные преобразования
5.1.5. Порядок перехода из МСК в ОСК
5.2. ПРОЕЦИРОВАНИЕ
5.2.1. Виды проецирований
5.2.2. Ортографическое проецирование
5.2.3. Аксонометрическое проецирование
5.2.4. Центральное проецирование
5.2.5. Ориентация объектов
5.3. ВЫЧИСЛЕНИЕ ОКОННЫХ И МИРОВЫХ КООРДИНАТ
5.4. ОГРАНИЧЕНИЕ ОБЛАСТИ ВЫВОДА
5.4.1. Применение секущих плоскостей
5.4.2. Матрица выбора
5.4.3. Ножницы
5.5. ПРЕДСТАВЛЕНИЕ ТРЕХМЕРНЫХ ОБЪЕКТОВ
5.5.1. Модель трехмерного объекта
5.5.2. Грани и нормали
5.5.2.1. Внутренняя и внешняя нормали
5.5.2.2. Порядок обхода вершин
5.5.2.3. Лицевая и нелицевая стороны
грани
5.5.2.4. Удаление невидимых граней
выпуклого объекта
5.5.2.5. Построение нормали
5.6. ИСПОЛЬЗОВАНИЕ ТУМАНА ДЛЯ СОЗДАНИЯ
ЭФФЕКТА ГЛУБИНЫ

6. ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ
6.1. СПИСКИ КОМАНД
6.2. УПРАВЛЕНИЕ ПЕРЕМЕННЫМИ СОСТОЯНИЯ И
ТЕКУЩИМИ МАТРИЦАМИ
6.3. ОБРАБОТКА СОБЫТИЙ
6.3.1. Изменение размеров окна
6.3.2. События, происходящие с
клавиатурой и мышью
6.3.3. Задание фоновых действии
6.4. ДВОЙНАЯ БУФЕРИЗАЦИЯ
6.5. ВЫБОР И ВОЗВРАТ ДАННЫХ
6.5.1. Режимы растеризации
6.5.2. Выбор данных
6.5.2.1. Порядок выбора дачных
6.5.2.2. Стек имен
6.5.2.3. Буфер выбора
6.5.3. Возврат данных
6.6. СОВЕТЫ ПРОГРАММИСТУ
6.6.1. Обеспечение корректности
функционирования
6.6.2. Оптимизация приложения

7. НЕКОТОРЫЕ ИЗВЕСТНЫЕ ЗD-ОБЪЕКТЫ
7.1. ФИГУРЫ AUX-БИБЛИОТЕКИ
7.2. GLU-КОМАНДЫ ПОСТРОЕНИЯ СФЕРЫ, ЦИЛИНДРА
И ДИСКА

8. АППРОКСИМАЦИЯ КРИВЫХ И ПОВЕРХНОСТЕЙ
8.1. ПОСТРОЕНИЕ КРИВОЙ И ПОВЕРХНОСТИ БЕЗЬЕ
8.1.1. Кривая безье на плоскости
8.1.2. Поверхность безье
8.1.3. Кривые и поверхности на основе
линейных карт
8.2. NURBS-СПЛАЙНЫ
8.2.1. Создание и удаление NURBS-объекта
8.2.2. Обработка NURBS-ошибок
8.2.3. NURBS-кривые
8.2.4. NURBS-поверхности
8.2.5. Изменение свойств NURBS-объектов
8.2.6. Задание матриц разбиения и
отсечения
8.2.7. Построение кривой, обрамляющей
NURBS-поверхность
8.3. ТРИАНГУЛЯЦИЯ
8.3.1. Создание и удаление т-объекта
8.3.2. Подпрограммы t-объекта
8.3.3. Задание области разбиения
8.3.3.1. Вершины контура
8.3.3.2. Задание контура
8.3.3.3. Ограничение области разбиения
8.3.4. Устаревший способ задания области
разбиения
8.3.5. Задание нормали к многоугольнику
8.3.6. Изменение свойств разбиения

9. СОЗДАНИЕ РЕАЛИСТИЧЕСКИХ ИЗОБРАЖЕНИЙ
9.1. ТЕСТ ГЛУБИНЫ
9.1.1. Метод z-буфера
9.1.2. Управление тестом глубины
9.1.3. Маскирование буфера глубины
9.2. УПРАВЛЕНИЕ ЦВЕТОМ МАТЕРИАЛА
9.2.1. Характеристики материала объекта
9.2.2. Изменение одной характеристики
материала
9.3. МОДЕЛЬ СЦЕНЫ
9.4. ОСВЕЩЕНИЕ СЦЕНЫ
9.4.1. Источники света
9.4.2. Модель освещенности
9.5. СМЕШЕНИЕ ЦВЕТОВ
9.5.1. Выбор буфера для передачи цвета
9.5.2. Взаимодействие изображений
9.5.3. Логические операции
9.5.4. Альфа-тест
9.5.5. Маскирование буфера цвета
9.6. ТЕСТ ТРАФАРЕТА
9.6.1. Управление тестом трафарета
9.6.2. Маскирование буфера трафарета
9.7. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ ПО
УВЕЛИЧЕНИЮ КАЧЕСТВА ИЗОБРАЖЕНИЯ
9.7.1. Использование буфера-накопителя
9.7.2. Управление растеризацией

10. ВЫВОД ТЕКСТУРЫ
10.1. ПОНЯТИЕ ТЕКСТУРЫ
10.2. ПАРАМЕТРЫ ТЕКСТУРЫ
10.3. ПАРАМЕТРЫ ОКРУЖЕНИЯ ТЕКСТУРЫ
10.4. ПОДГОТОВКА ОБРАЗА ДЛЯ ТЕКСТУРЫ
10.5. ЗАДАНИЕ ТЕКСТУРЫ
10.5.1. Одномерная текстура
10.5.2. Двумерная текстура
10.6. КООРДИНАТЫ ТЕКСТУРЫ
10.7. ГЕНЕРАЦИЯ КООРДИНАТ ТЕКСТУРЫ
10.8. УРОВНИ ТЕКСТУРЫ
10.9. ТЕКСТУРА И АВТОМАТИЧЕСКИ ГЕНЕРИРУЕМЫЕ
ОБЪЕКТЫ

Приложение 1. ПЕРЕМЕННЫЕ СОСТОЯНИЯ
П. 1.1. ВЫПОЛНЕНИЕ ЗАПРОСОВ
П. 1.2.СОХРАНЕНИЕ И ВОССТАНОВЛЕНИЕ
ПЕРЕМЕННЫХ СОСТОЯНИЯ
П. 1.3. СПИСОК ПЕРЕМЕННЫХ СОСТОЯНИЯ

Приложение 2. ПАРАМЕТРЫ КОМАНД FGLENABLE И
FGLDISABLE

Приложение 3. OPENGL В WINDOWS-ПРИЛОЖЕНИЯХ
ФОРТРАНА
П.3.1. ФОРМАТ ПИКСЕЛЕЙ
п.3.2. WIN32-функции УПРАВЛЕНИЯ ФОРМАТОМ
ПИКСЕЛЕЙ
П.3.3. ФОРМИРОВАНИЕ ПАЛИТРЫ ЦВЕТОВ
П.3.4. ШРИФТ И ТЕКСТ
П.3.5. WGL-ФУНКЦИИ
П.3.6. МНОГОНИТОЧНАЯ СТРАТЕГИЯ OPENGL

Приложение 4. OPENGL В СИ

БИБЛИОГРАФИЯ

ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ