Руководство по работе с графической библиотекой OpenGL. Руководство разработано с учетом опыта чтения курса Компьютерная графика
Скачать 0.66 Mb.
|
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ М.В. ЛОМОНОСОВА Ю.М. Баяковский, А.В. Игнатенко НАЧАЛЬНЫЙ КУРС OPENGL i планета знаний ПЛАНЕТА ЗНАНИИ Москва 2007 УДК 681.3.07 ББК 32.973.26-018.2 Б34 Банковский Ю.М., Игнатенко А.В. Начальный курс OpenGL. М.: „Планета Знаний", 2007.— 221с. ISBN 978-5-903242-02-3 Настоящая книга представляет собой практическое руководство по работе с графической библиотекой OpenGL. Руководство разработано с учетом опыта чтения курса «Компьютерная графика» на факультете ВМиК МГУ им. М.В. Ломоносова. Книга включает в себя описание базовых возможностей OpenGL и приемы работы с библиотекой, вопросы оптимизации приложений и использования OpenGL в различных средах программирования. Книга снабжена вопросами и практическими заданиями. Руководство рассчитано на читателей, знакомых с языками программирования С/СН—Ь и имеющих представление о базовых алгоритмах компьютерной графики. Рекомендуется студентам математических и прикладных специальностей, аспирантам, научным сотрудникам и всем желающим изучить OpenGL в сжатые сроки. Издание подготовлено в рамках образовательной программы «Формирование системы инновационного образования в МГУ». Рецензенты: Шикин Е.В., профессор, доктор физ.-мат. наук, ф-т ВМиК МГУ Крылов А.С., кандидат физ.-мат. наук, ф-т ВМиК МГУ ISBN 978-5-903242-02-3 © Банковский Ю.М., Игнатенко А.В. © ООО „Планета Знаний", 2007 Оглавление Предисловие 7 Введение 11 I Основы OpenGL 15 1. Графический процесс и OpenGL 17 Графический процесс 17 Геометрические модели 19 Анимация 20 Материалы 21 Освещение 22 Виртуальная камера 22 Алгоритм экранизации 23 2. Введение в OpenGL 25 Основные возможности 25 Интерфейс OpenGL 26 Архитектура OpenGL 28 Синтаксис команд 30 Пример приложения 31 Контрольные вопросы 36 3 4 Оглавление 3. Рисование геометрических объектов 39 Процесс обновления изображения 39 Вершины и примитивы 41 Операторные скобки glBegin / glEnd 43 Дисплейные списки 47 Массивы вершин 49 Контрольные вопросы 51 4. Преобразования объектов 55 Работа с матрицами 56 Модельно-видовые преобразования 58 Проекции 60 Область вывода 63 Контрольные вопросы 64 5. Материалы и освещение 65 Модель освещения 65 Спецификация материалов 67 Описание источников света 69 Создание эффекта тумана 73 Контрольные вопросы 74 6. Текстурирование 77 Подготовка текстуры 77 Наложение текстуры на объекты 81 Текстурные координаты 84 Контрольные вопросы 87 7. Операции с пикселями 89 Смешивание изображений и прозрачность 90 Буфер-накопитель 93 Буфер маски 94 Управление растеризацией 96 Контрольные вопросы 98 Оглавление 5 II Приемы работы с OpenGL 99 8. Графические алгоритмы на основе OpenGL 101 Устранение ступенчатости 101 Построение теней 103 Зеркальные отражения 109 Контрольные вопросы 113 9. Оптимизация программ 115 Организация приложения 115 Оптимизация вызовов OpenGL 120 Контрольные вопросы 128 III Создание приложений с OpenGL 131 lO.OpenGL-приложения с помощью GLUT 133 Структура GLUT-приложения 133 GLUT в среде Microsoft Visual C++ 6.0 137 GLUT в среде Microsoft Visual C++ 2005 139 GLUT в среде Borland C++ Builder 6 140 GLUT в среде Borland C++ Builder 2006 141 11.Использование OpenGL в MFC и VCL 145 Контекст устройства 146 Установка формата пикселей 147 Контекст рисования (render context) 148 Класс GLRC 149 Использование OpenGL с MFC 150 Использование OpenGL с VCL 153 12.OpenGL в .NET 157 GLUT в среде Microsoft Visual C# 2005 157 Использование OpenGL в WindowsForms 160 6 Оглавление IV Приложения 163 A. Примитивы библиотек GLU и GLUT 165 Б. Демонстрационные программы 169 Б.1. Пример 1: Простое GLUT-приложение 169 Б.2. Пример 2: Модель освещения OpenGL 173 Б.З. Загрузка BMP файла 178 Б.4. Пример 3: Текстурирование и анимация 186 Б.5. Класс для работы с OpenGL в Win32 195 |