Графика трехмерной компьютерной игры на основе OpenGL
книга

Графика трехмерной компьютерной игры на основе OpenGL

Автор: Алексей Боресков

Форматы: PDF

Издательство: Диалог-МИФИ

Год: 2004

Место издания: Москва

ISBN: 5-86404-190-4

Страниц: 383

Артикул: 41447

Возрастная маркировка: 16+

Электронная книга
100

Краткая аннотация книги "Графика трехмерной компьютерной игры на основе OpenGL"

Книга посвящена основам программирования трехмерной графики в играх. В ней подробно рассматривается написание графического ядра для трехмерной игры, позволяющей в реальном времени перемещаться по заданной сцене. Достаточно подробно рассматриваются математические вопросы работы с координатными пространствами, преобразования и проектирование. Также приводится ряд геометрических алгоритмов для решения типовых задач и оптимизации. В книге подробно рассматривается организация работы с ресурсами, включая загрузку как текстур в ряде форматов (bmp, jpg, png, gif, tga, wal, pcx), так и загрузку трехмерных моделей (ase, md2, md3). Рассмотрение материала сопровождается примерами на языке C++ (для среды MS Visual C++ 6) и UML-диаграммами. Весь исходный код для книги доступен в Интернете по адресу www.steps3d.narod.ru.

Содержание книги "Графика трехмерной компьютерной игры на основе OpenGL"


ПРЕДИСЛОВИЕ
Глава 1. КООРДИНАТЫ И ИХ ПРЕОБРАЗОВАНИЯ
Основные преобразования в R2
Аффинные преобразования в R3
Однородные координаты
Системы координат
Задание ориентации
Кватернионы
Проектирование
Глава 2. УДАЛЕНИЕ НЕВИДИМЫХ ПОВЕРХНОСТЕЙ
Методы оптимизации
Метод трассировки лучей
Метод z-буфера
Алгоритмы упорядочения
Метод порталов
Множества потенциально видимых граней (PVS)
Глава 3. ПРОСТЕЙШИЕ ГЕОМЕТРИЧЕСКИЕ АЛГОРИТМЫ И СТРУКТУРЫ
Быстрая оценка длины вектора
Нахождение расстояния от точки до прямой
Ограничивающие тела
Проверка пересечения луча с многоугольником
Проверка пересечения двух многоугольников
Иерархические структуры
Область видимости
Глава 4. ОСНОВЫ БИБЛИОТЕКИ OpenGL
Использование библиотеки glut
Рисование геометрических объектов
Рисование точек, линий и многоугольников
Преобразование объектов в пространстве. Камера
Дисплейные списки
Работа с z-буфером
Задание моделей закрашивания
Освещение
Полупрозрачность. Использование ?-канала
Вывод битовых изображений
Ввод-вывод цветных изображений
Наложение текстуры
Управление наложением текстуры
Работа с буфером трафарета
Сохранение параметров
Глава 5. ОБЪЕКТНАЯ МОДЕЛЬ. ОСНОВНЫЕ КЛАССЫ
Глава 6. ОСНОВНЫЕ КЛАССЫ ДЛЯ РЕНДЕРЕРА. РАБОТА С РЕСУРСАМИ
Класс Polygon3D
Класс Texture
Класс ResourceManager
Глава 7. ПИШЕМ ПОРТАЛЬНЫЙ РЕНДЕРЕР (часть I)
Схема "Модель – контроллер – вид"
Класс Timer
Класс Camera
Метод порталов
Глава 8. ПИШЕМ ПОРТАЛЬНЫЙ РЕНДЕРЕР (часть II)
Работа с полупрозрачными гранями
Консоль
Обработка столкновений
Глава 9. ПИШЕМ ПОРТАЛЬНЫЙ РЕНДЕРЕР (часть III)
Глава 10. РАБОТА С КАРТАМИ ОСВЕЩЕННОСТИ
Глава 11. ПИШЕМ РЕНДЕРЕР УРОВНЕЙ QUAKE II
Глава 12. ДОБАВЛЯЕМ ЭФФЕКТЫ
Небо
Объемный туман
Микрофактурные текстуры
Панели (billboard)
Системы частиц
Хало, блики на линзах
Глава 13. ДОБАВЛЯЕМ МОДЕЛИ
Модели
Шейдеры
НАПУТСТВИЕ
Приложение. ВЕКТОРНАЯ И МАТРИЧНАЯ АЛГЕБРА
ЛИТЕРАТУРА
ИСТОЧНИКИ В ИНТЕРНЕТЕ

Все отзывы о книге Графика трехмерной компьютерной игры на основе OpenGL

Чтобы оставить отзыв, зарегистрируйтесь или войдите

Отрывок из книги Графика трехмерной компьютерной игры на основе OpenGL

Глава 1. Координаты и их преобразования 23 else { roll = atan2 ( ro2, r00 ); yaw = 0; } Однако при использовании углов Эйлера может произойти неприятное явление, называемое gimbal lock. При этом происходит потеря одной из имеющихся степеней свободы. Рассмотрим, например, случай, когда 2pπ=. В этом случае матрица поворота (1.38) примет следующий вид: ()()()()()cos0sin,,sin0cos2010y ry rR yry ry r++⎛⎞⎜⎟π=+−+⎜⎟⎜⎟⎝⎠. (1.40) Таким образом, матрица поворота (1.40) зависит только от суммы двух углов и одна степень свободы была утеряна, т. е. поворот вокруг оси Oy приведет к кому же, к чему приводит и поворот вокруг оси –Oz на тот же угол. Эйлером также было показано, что из одной ориентации в трехмерном пространстве можно всегда прийти к любой другой путем одного поворота вокруг определенной оси (зависящей от обеих этих ориентаций). Таким об-разом, произвольная ориентация может быть представлена как угол и ось поворота, т. е. при помощи четырех чисел. Однако непосредственное использование такого представления (как и применение углов Эйлера) для работы с ориентациями в трехмерном про-странстве (что постоянно возникает в задаче анимации) весьма затрудни-тельно. Для этого обычно используют весьма простой и элегантный подход, основанный на использовании так называемых кватернионов. Кватернионы Одним из очень удобных средств для представления ориентации являются так называемые кватернионы. Кватернионы впервые были введены еще в 1843 г. Гамильтоном как расширение комплексных чисел, но впервые были использованы в компью-терной графике только в 1985 г.