Практическое пособие по разработке кросс-платформенных шейдеров на языке OpenGL Shader Language (GLSL) в среде RenderMoiikey для использования в операционных системах Windows и Linux с различными версиями библиотеки OpenGL. Рассматривается написание и отладка вершинных и фрагментных шейдеров, использование шумовой функции в моделировании и основных моделей освещения, моделирование преломления и дифракции, обработка изображений на GLSL, работа с полигональными моделями, практическое применение GLSL в программах на C и работа с библиотеками libCamera, libTexture и libTexture3D.
Название: Разработка и отладка шейдеров (+CD) Автор: Боресков А. В. Издательство: БХВ-Петербург Год: 2006 Страниц: 496 Формат: DJVU Размер: 151 МБ ISBN: 5-94157-712-5 Качество: Отличное
Содержание:
Введение ЧАСТЬ 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 Вывод текста Вывод простейших объектов Сфера Куб Конус Top Додекаэдр Октаэдр Тетраэдр Икосаэдр «Чайник» Глава 5. Общие сведения о библиотеках GLH, NV_MATH и NV_UTIL Библиотека GLH Инкапсуляция основных математических классов Объектная надстройка над GLUT Объектная надстройка над OpenGL Библиотека NV_MATH Библиотека NV_UTIL Чтение текстур в формате TGA Чтение текстур в формате JPG Чтение данных из ZIP-архивов Чтение моделей в формате ASE Глава 6. Основные классы для работы с векторами, матрицами и кватернионами Работа с векторами Работа с матрицами Работа с кватернионами Глава 7. Работа с расширениями, библиотека libExt Глава 8. Библиотеки libTexture и IibTexture3D Глава 9. Реализация p-буфера в виде класса, использование расширения EXT_framebuffer_object для создания внеэкранных буферов Работа с p-буфером в Microsoft Windows Непосредственное создание p-буфера Выбор p-буфера как текущей цели для рендеринга Уничтожение p-буфера Обработка переключения видеорежима Копирование данных из p-буфера и текстуру Связывание p-буфера с текстурой Реализация p-буфера для платформы Windows Работа с p-буфером в Linux Использование расширения EXT_framebuffer_object Глава 10. Понятие камеры. Работа с библиотекой libCamera Глава 11. Библиотека libMesh. Работа с полигональными моделями и их загрузка из популярных форматов ЧАСТЬ III. ШЕЙДЕРЫ Глава 12. Введение в GLSL. Описание синтаксиса, простые примеры Основные типы данных и переменных Структуры Массивы Переменные Операторы и выражения Конструкторы Работа с компонентами векторов и матриц Работа со структурами Основные операции над векторами и матрицами Основные операторы и конструкции Стандартные переменные, атрибуты и константы Специальные переменные для вершинных шейдеров Специальные переменные для фрагментных шейдеров Стандартные константы Стандартные атрибуты для вершинного шейдера Стандартные uniform-переменные - параметры состояния OpenGL Стандартные varying-переменные Стандартные функции Тригонометрические функции и функции для работы с углами Экспоненциальные функции (возведение в степень, нахождение логарифмов) Функции общего назначения Геометрические функции Матричные функции Функции для сравнения векторов Функции для доступа к текстурам Функции для работы с производными Шумовые функции Простейший пример использования вершинных и фрагментных шейдеров Глава 13. Простейшие вершинные и фрагментные тендеры Реализация основных моделей освещения Диффузная модель освещения Бликовое освещение по Блинну Бликовое освещение по Фонгу Использование карт нормалей Анизотропные модели освещения Подсветка края Модель освещения Гуч Глава 14. Практическое использование GLSL в программах на C++, необходимые расширения Необходимые расширения Расширение 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. Использование шумовой функции в моделировании. Моделирование облаков, волн и материалов Использование шумовой функции для рендеринга «мыльных пузырей» Искажение нормали при помощи шумовой функции Турбулентность Ржавление Рябь на воде Облака Мрамор Дерево Система «сверкающих» частиц Огонь Приложение. Описание компакт-диска Список литературы и интернет-ресурсов Предметный указатель