Количество страниц:496
Практическое пособие по разработке кросс-платформенных шейдеров на языке OpenGL Shader Language (GLSL) в среде RenderMonkey для использования в операционных системах Windows и Linux с различными версиями библиотеки OpenGL. Рассматривается написание и отладка вершинных и фрагментных шейдеров, использование шумовой функции в модели-ровании и основных моделей освещения, моделирование преломления и дифракции, обработка изображений
на GLSL, работа с полигональными моделями, практическое применение GLSL
в программах на С++ и работа с библиотеками libCamera, libTexture и libTexture3D
Оглавление
Введение
ЧАСТЬ I. ЭВОЛЮЦИЯ OPENGL
Глава 1. Развитие OpenGL
Версия 1.1
Версия 1.2
Версия 1.3
Версия 1.4
Версия 1.5
Сводка изменений в версиях OpenGL
Глава 2. Расширения ARB_vertex_program и ARB_fragment_program. Появление Cg
Глава 3. Появление OpenGL 2.0 и GLSL
ЧАСТЬ II. ДОПОЛНИТЕЛЬНЫЕ БИБЛИОТЕКИ
Глава 4. Библиотека GLUT
Инициализация
Начало цикла обработки сообщений
Работа с окнами
Работа с меню
Установка обработчиков сообщений
Получение информации о текущем состоянии GLUT
Вывод текста
Вывод простейших объектов
Сфера
Куб
Конус
Тор
Додекаэдр
Октаэдр
Тетраэдр
Икосаэдр
"Чайник"
Глава 5. Общие сведения о библиотеках GLH, NV_MATH и NV_UTIL
Библиотека GLH
Инкапсуляция основных математических классов
Объектная надстройка над GLUT
Объектная надстройка над OpenGL
Библиотека NV_MATH
Библиотека NV_UTIL
Чтение текстур в формате TGA
Чтение текстур в формате JPG
Чтение данных из ZIP-архивов
Чтение моделей в формате ASE
Глава 6. Основные классы для работы с векторами, матрицами и кватернионами
Работа с векторами
Работа с матрицами
Работа с кватернионами
Глава 7. Работа с расширениями, библиотека libExt
Глава 8. Библиотеки libTexture и libTexture3D
Глава 9. Реализация р-буфера в виде класса, использование расширения EXT_framebuffer_object для создания внеэкранных буферов
Работа с р-буфером в Microsoft Windows
Непосредственное создание р-буфера
Выбор р-буфера как текущей цели для рендеринга
Уничтожение р-буфера
Обработка переключения видеорежима
Копирование данных из р-буфера в текстуру
Связывание р-буфера с текстурой
Реализация р-буфера для платформы Windows
Работа с р-буфером в Linux
Использование расширения EXT_framebuffer_object
Глава 10. Понятие камеры. Работа с библиотекой libCamera
Глава 11. Библиотека libMesh. Работа с полигональными моделями и их загрузка из популярных форматов
ЧАСТЬ III. ШЕЙДЕР
Глава 12. Введение в GLSL. Описание синтаксиса, простые примеры
Основные типы данных и переменных
Структуры
Массивы
Переменные
Операторы и выражения
Конструкторы
Работа с компонентами векторов и матриц
Работа со структурами
Основные операции над векторами и матрицами
Основные операторы и конструкции
Стандартные переменные, атрибуты и константы
Специальные переменные для вершинных шейдеров
Специальные переменные для фрагментных шейдеров
Стандартные константы
Стандартные атрибуты для вершинного шейдера
Стандартные uniform-переменные — параметры состояния OpenGL
Стандартные varying-переменные
Стандартные функции
Тригонометрические функции и функции для работы с углами
Экспоненциальные функции (возведение в степень, нахождение логарифмов)
Функции общего назначения
Геометрические функции
Матричные функции
Функции для сравнения векторов
Функции для доступа к текстурам
Функции для работы с производными
Шумовые функции
Простейший пример использования вершинных и фрагментных шейдеров
Глава 13. Простейшие вершинные и фрагментные шейдеры. Реализация основных моделей освещения
Диффузная модель освещения
Бликовое освещение по Блинну
Бликовое освещение по Фонгу
Использование карт нормалей
Анизотропные модели освещения
Подсветка края
Модель освещения Гуч
Глава 14. Практическое использование GLSL в программах на С++, необходимые расширения
Необходимые расширения
Расширение GL_ARB_shading_language_100
Расширение GL_ARB_shader_objects
Расширение GL_ARB_vertex_shader
Расширение GL_ARB_fragment_shader
Получение информации о поддержке GLSL
Простейшая программа, использующая GLSL
"Заворачиваем" шейдеры на GLSL в класс
Глава 15. Разработка шейдеров на GLSL в интегрированной среде RenderMonkey
Настройка RenderMonkey
Создание нового проекта
Глава 16. Использование основных моделей освещения, моделирование преломления и дифракции, обработка изображений на GLSL
Использование шейдеров из главы 13
Использование шейдеров для анимации
Моделирование преломления
Моделирование дифракции света
Обработка изображений средствами GLSL
Фильтр Sepia
Гамма-коррекция
Фильтр выделения границ
Коррекция цвета в пространстве HSV
Размытие изображения
Глава 17. Использование шумовой функции в моделировании. Моделирование облаков, волн и материалов
Использование шумовой функции для рендеринга "мыльных пузырей"
Искажение нормали при помощи шумовой функции
Турбулентность
Ржавление
Рябь на воде
Облака
Мрамор
Дерево
Система "сверкающих" частиц
Огонь
Приложение. Описание компакт-диска
Список литературы и интернет-ресурсов
Предметный указатель
VI Оглавление VII Оглавление |