Главная » 2019»Сентябрь»21 » Боресков Алексей Викторович - Программирование компьютерной графики. Современный OpenGL (2019)
10:20
Боресков Алексей Викторович - Программирование компьютерной графики. Современный OpenGL (2019)
Данная книга посвящена основам современной компьютерной графики. Подробно рассматривается ряд чисто математических понятий, таких как матрицы и кватернионы, алгоритмы и API, а также физика освещения. Отдельные главы посвящены методу трассировки лучей и современному OpenGL. Рассматривается реализация ряда специальных эффектов при помощи шейдеров в OpenGL. Весь исходный код доступен в репозитории на github. Издание будет полезно всем, кто планирует работать с компьютерной графикой.
Посвящение Благодарности Введение Предисловие от издательства Глава 1. Координаты и преобразования на плоскости Преобразования на плоскости Масштабирование Отражение Поворот Сдвиг Составные преобразования Использование библиотеки GLM для работы с двухмерными векторами и матрицами Комплексные числа как координаты на плоскости Глава 2. Основные геометрические алгоритмы на плоскости Прямая и ее уравнение Построение прямой, луча и отрезка по двум точкам Определение положения точки относительно прямой или отрезка Определение положения круга по отношению к прямой Прямоугольники со сторонами, параллельными осям координат , и их классификация по отношению к прямой Нахождение расстояния от точки до ААВВ Определение угла между двумя прямыми Вычисление площади треугольника и многоугольника Определение направления обхода многоугольника Проверка многоугольника на выпуклость Нахождение пересечения двух прямых Нахождение пересечения двух отрезков Нахождение расстояния и ближайшей точки от заданной точки к прямой, лучу и отрезку Проверка на попадание точки внутрь многоугольника Отсечение отрезка по выпуклому многоугольнику. Алгоритм Цируса–Бека Алгоритм отсечения Лянга–Барского Отсечение многоугольника. Алгоритм Сазерленда–Ходжмана Отсечение многоугольника по выпуклому многоугольнику Барицентрические координаты Построение выпуклой оболочки, алгоритм Грэхема Триангуляция Делоне. Диаграмма Вороного Реализация булевых операций над многоугольниками . Метод построчного сканирования. Разложение на трапеции Глава 3. Координаты и преобразования в пространстве. Кватернионы Векторы и матрицы в пространстве Преобразования в пространстве. Базовые преобразования Пример: отражение относительно плоскости Однородные координаты Жесткие преобразования Преобразования нормали Проектирование. Параллельное проектирование Перспективное проектирование Углы Эйлера. Задание ориентации в пространстве Понятие линейного пространства и его размерности . Многомерные векторы и преобразования Системы координат в пространстве. Переходы между различными системами координат Ортогонализация Грамма–Шмидта Кватернионы. Задание поворотов и ориентации в пространстве при помощи кватернионов Использование библиотеки GLM для работы с 3- и 4-мерными векторами и матрицами, а также кватернионами Преобразование между кватернионом и базисом касательного пространства Собственные векторы и собственные числа матрицы Глава 4. Основные геометрические алгоритмы в пространстве Задание прямых и плоскостей в пространстве Проекция точки на прямую Проекция точки на плоскость Задание прямой двумя точками. Задание плоскости тремя точками Проведение плоскости через прямую и точку Проверка прямых и отрезков на параллельность и перпендикулярность. Нахождение углов между прямыми и отрезками Проверка, лежит ли отрезок или прямая на заданной плоскости Проверка, пересекает ли отрезок/луч/прямая заданную плоскость Проверка, пересекает ли луч заданный треугольник Нахождение пересечения луча и ОBB Нахождение пересечения луча и сферы Проверка, пересекает ли плоскость заданную сферу Проверка, пересекает ли плоскость заданный ААВВ Телесный угол. Проверка на попадание в него Определение, лежат ли две заданные прямые в одной плоскости Классификация двух прямых в пространстве Нахождение расстояния между двумя прямыми в пространстве Проверка на пересечение двух треугольников в пространстве Глава 5. Структуры для работы с большими наборами геометрических данных Ограничивающие тела Прямоугольный параллелепипед (ААВВ) Сфера k-DOP Ориентированные ограничивающие прямоугольные параллелепипеды (ОВВ) Иерархические структуры Иерархия ограничивающих тел Тетрарные и восьмеричные деревья kD-деревья BSP-деревья R-деревья Равномерное разбиение пространства Глава 6. Цвет и его представление. Работа с цветом Цветовая модель CIE XYZ Цветовая модель RGB Цветовые модели CMY CMYK Цветовая модель HSV Цветовое пространство HSL Гамма-коррекция Цветовые пространства Yuv и YCbCr Цветовые пространства L*u*v* и L*a*b* Цветовое пространство sRGB Соглашения по дальнейшему использованию цветов Глава 7. Растеризация и растровые алгоритмы Класс TgaImage и его использование Понятие связности растровой сетки. 4- и 8-связность Построение растрового представления отрезка. Алгоритм Брезенхейма Алгоритм Брезенхейма для окружности Заполнение треугольника Заполнение области, заданной цветом границы Глава 8. Удаление невидимых линий и поверхностей Лицевые и нелицевые грани Сложность по глубине Загораживание Когерентность Удаление невидимых линий. Алгоритм Робертса Понятие количественной невидимости. Алгоритм Аппеля Удаление невидимых граней. Метод трассировки лучей Метод буфера глубины (z-буфера) Метод иерархического z-буфера Алгоритмы, основанные на упорядочивании. Алгоритм художника Использование BSP-деревьев для определения видимости Метод порталов Множества потенциально видимых граней (PVS). Расчет PVS при помощи порталов Глава 9. Отражение и преломление света. Модели освещения Немного физики Модель Ламберта (идеальное диффузное освещение) Модель Фонга Модель Блинна–Фонга Изотропная модель Уорда Модель Миннаэрта Модель Ломмеля–Зилиджера Модель Страусса Простейшая анизотропная модель Анизотропная модель Уорда Двулучевая функция отражательной способности (BRDF) Физически корректные модели освещения Модель Орена–Найара Модель Кука–Торранса Диффузная модель Диснея Модель Ашихмина–Ширли Image-based lighting Сферические гармоники и их использование Precomputed Radiance Transfer Использование PRT в играх Far Cry 3 и FarCry 4 Глава 10. Трассировка лучей Constructive Solid Geometry Распределенная трассировка лучей Реализация спецэффектов при помощи распределенной трассировки лучей Фотонные карты Monte-Carlo path tracing Глава 11. Взаимодействие с оконной системой. Библиотеки freeglut и GLFW Основы работы оконной системы Работа с библиотекой freeglut Инициализация Создание окна Обработка сообщений Заворачиваем freeglut в класс С++ Работа с библиотекой GLFW Инициализация и обработка ошибок Создание окна Обработка сообщений Пример работы с OpenGL при помощи библиотеки Qt 5 Глава 12. Основы современного OpenGL Основные концепции OpenGL. Графический конвейер Расширения OpenGL Отсечение примитивов Вершинный шейдер Растеризация и система координат экрана Фрагментный шейдер Операции с фрагментами Работа с буферами Атрибуты вершин. Вершинные массивы, VBO, VAO Вершинные массивы, задание атрибутов при помощи вершинных массивов Вывод примитивов Провоцирующая вершина Буфер трафарета и работа с ним Тест глубины Полупрозрачность. Смешивание цветов Текстуры и работа с ними Работа с текстурами Работа с шейдерами Готовое приложение Вспомогательные классы и работа с ними Глава 13. Простейшие эффекты Отражение относительно плоскости Имитация отражения окружающей среды и преломления Точечные спрайты. Системы частиц Проективное текстурирование Реализация основных моделей освещения Построение теней при помощи теневых карт Освещение с учетом микрорельефа (bump mapping) Имитация отражения окружающей среды с учетом карт нормалей Вывод текста при помощи поля расстояний Рендеринг меха Physically Based Rendering (PBR) Приложение. Язык GLSL Предметный указатель
Название: Программирование компьютерной графики. Современный OpenGL Автор: Боресков Алексей Викторович Год: 2019 Жанр: программирование Язык: Русский
Формат: pdf Качество: eBook Страниц: 372 Размер: 12 MB
Скачать Боресков Алексей Викторович - Программирование компьютерной графики. Современный OpenGL (2019)
Xemera.At.Ua - информационный портал! Все ссылки на файлы, указанные на сайте взяты из открытых источников интернета и предоставлены пользователями нашего сайта исключительно в ознакомительных целях.
Если вы являетесь правообладателем какого либо материала и не желаете его свободного распространения, или считаете, что какой-либо из материалов нарушает Ваши авторские права - свяжитесь с Администрацией.
Владельцы и создатели данного сайта не несут ответственность за использование и содержание ссылок и информации, представленных на этом сайте.
Сайт оптимизирован для просмотра с разрешением 1024x768, 1280x800, 1280x1024 и 1600x1200 браузером FireFox или Opera