Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 634699)
Контекстум
.

OpenGL 4. Язык шейдеров. Книга рецептов (3000,00 руб.)

0   0
Первый авторВольф
ИздательствоМ.: ДМК Пресс
Страниц369
ID794589
АннотацияЯзык шейдеров OpenGL (OpenGL Shading Language, GLSL) является фундаментальной основой программирования с использованием OpenGL. Его применение дает беспрецедентную гибкость и широту возможностей, позволяет использовать мощь графического процессора (GPU) для реализации улучшенных приемов отображения и даже для произвольных вычислений. Версия GLSL 4.x несет еще более широкие возможности, благодаря введению новых видов шейдеров: шейдеров тесселяции и вычислительных шейдеров. В этой книге рассматривается весь спектр приемов программирования на GLSL, начиная с базовых видов шейдеров — вершинных и фрагментных, — и заканчивая геометрическими, вычислительными и шейдерами тесселяции. Здесь приводится множество практических примеров — от наложения текстур, воспроизведения теней и обработки изображений до применения искажений и манипуляций системами частиц. Прочтя ее, вы сможете задействовать GPU для решения самых разных задач, даже тех, что никак не связаны с формированием изображений. Издание предназначено для программистов трехмерной графики, желающих задействовать в своих проектах всю мощь современных программных и аппаратных средств.
ISBN978-5-97060-255-3
УДК004.92;004.42GLSL
ББК32.973
Вольф. OpenGL 4. Язык шейдеров. Книга рецептов / Вольф .— Москва : ДМК Пресс, 2015 .— 369 с. — ISBN 978-5-97060-255-3 .— URL: https://rucont.ru/efd/794589 (дата обращения: 24.04.2024)

Предпросмотр (выдержки из произведения)

OpenGL_4._Язык_шейдеров._Книга_рецептов.pdf
УДК 004.92;004.42GLSL ББК 32.973 В72 В72 OpenGL 4. Язык шейдеров. Книга рецептов / пер. с англ. А. Н. Киселева. – М.: ДМК Пресс, 2015. – 368 с.: ил. Вольф Д. ISBN 978-5-97060-255-3 Язык шейдеров OpenGL (OpenGL Shading Language, GLSL) является фундаментальной основой программирования с использованием OpenGL. Его применение дает беспрецедентную гибкость и широту возможностей, позволяет использовать мощь графического процессора (GPU) для реализации улучшенных приемов отображения и даже для произвольных вычислений. Версия GLSL 4.x несет еще более широкие возможности, благодаря введению новых видов шейдеров: шейдеров тесселяции и вычислительных шейдеров. В этой книге рассматривается весь спектр приемов программирования на GLSL, начиная с базовых видов шейдеров – вершинных и фрагментных, – и заканчивая геометрическими, вычислительными и шейдерами тесселяции. Здесь приводится множество практических примеров – от наложения текстур, воспроизведения теней и обработки изображений до применения искажений и манипуляций системами частиц. Прочтя ее, вы сможете задействовать GPU для решения самых разных задач, даже тех, что никак не связаны с формированием изображений. Издание предназначено для программистов трехмерной графики, желающих задействовать в своих проектах всю мощь современных программных и аппаратных средств. УДК 004.92;004.42GLSL ББК 32.973 Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-78216-702-0 (анг.) ISBN 978-5-97060-255-3 (рус.) Copyright © 2013 Packt Publishing © Оформление, перевод, ДМК Пресс, 2015
Стр.5
Содержание Предисловие .................................................................12 Глава 1  Введение в GLSL ..............................................18 Введение ............................................................................................................................................................18 Использование загрузчика функций для доступа к новейшей функциональности OpenGL ......................................................................................................................................................21 Использование GLM для математических вычислений ..................................................................25 Использование типов GLM для передачи данных в OpenGL ........................................................26 Определение версий GLSL и OpenGL....................................................................................................27 Компиляция шейдера ...................................................................................................................................29 Компоновка шейдерной программы .......................................................................................................33 Передача данных в шейдер с использованием вершинных атрибутов и вершинных буферных объектов ...............................................................................................................................36 Получение списка активных атрибутов и их индексов ...................................................................45 Передача данных в шейдер с использованием uniform-переменных ..........................................48 Получение списка активных uniform-переменных ............................................................................51 Использование uniform-блоков и uniform-буферов ..........................................................................53 Получение отладочных сообщений .........................................................................................................59 Создание класса C++, представляющего шейдерную программу ...............................................62 Рассеянное отражение с единственным точечным источником света ........................................68 Глава 2  Основы шейдеров GLSL ....................................66 Введение ............................................................................................................................................................66 Фоновый, рассеянный и отраженный свет ..........................................................................................73 Использование функций в шейдерах......................................................................................................80 Реализация двустороннего отображения ..............................................................................................83 Реализация модели плоского затенения ................................................................................................87 Использование подпрограмм для выбора функциональности в шейдере ................................89 Отбрасывание фрагментов для получения эффекта решетчатой поверхности .......................94 Глава 3  Освещение, затенение и оптимизация ................98 Введение ............................................................................................................................................................98 Освещение несколькими точечными источниками света ..............................................................98 Освещение источником направленного света ................................................................................. 101 Пофрагментное вычисление освещенности для повышения реализма ................................... 104 Использование вектора полупути для повышения производительности .............................. 107 Имитация узконаправленных источников света ............................................................................. 110 Придание изображению «мультяшного» вида ................................................................................. 113 Имитация тумана ........................................................................................................................................ 116 Настройка проверки глубины ................................................................................................................ 119 Глава 4  Текстуры ......................................................122 Введение ......................................................................................................................................................... 122 Наложение двухмерной текстуры ......................................................................................................... 123 Наложение нескольких текстур ............................................................................................................ 128
Стр.6
6  Содержание Использование карт прозрачности для удаления пикселей ........................................................ 131 Использование карт нормалей ............................................................................................................... 134 Имитация отражения с помощью кубической текстуры .............................................................. 140 Имитация преломления с помощью кубической текстуры ......................................................... 147 Наложение проецируемой текстуры .................................................................................................... 152 Отображение в текстуру ........................................................................................................................... 157 Использование объектов-семплеров ................................................................................................... 162 Глава 5  Обработка изображений и приемы работы с экранным пространством ............................................165 Введение ......................................................................................................................................................... 165 Применение фильтра выделения границ ........................................................................................... 166 Применение фильтра размытия по Гауссу ......................................................................................... 172 Преобразование диапазона яркостей HDR с помощью тональной компрессии ................. 179 Эффект размытости на границах ярких участков .......................................................................... 184 Повышение качества изображения с помощью гамма-коррекции ........................................... 189 Сглаживание множественной выборкой ............................................................................................ 192 Отложенное освещение и затенение .................................................................................................... 197 Реализация порядконезависимой прозрачности ............................................................................ 203 Глава 6  Использование геометрических шейдеров и шейдеров тесселяции .................................................215 Введение ......................................................................................................................................................... 215 Отображение точечных спрайтов с помощью геометрического шейдера ............................... 220 Наложение каркаса на освещенную поверхность .......................................................................... 225 Рисование линий силуэта с помощью геометрического шейдера ............................................. 233 Тесселяция кривой ..................................................................................................................................... 242 Тесселяция двухмерного прямоугольника ......................................................................................... 247 Тесселяция трехмерной поверхности .................................................................................................. 252 Тесселяция с учетом глубины ................................................................................................................ 257 Глава 7  Тени ............................................................261 Введение ......................................................................................................................................................... 261 Отображение теней с помощью карты теней ................................................................................... 261 Сглаживание границ теней методом PCF .......................................................................................... 272 Смягчение границ теней методом случайной выборки ................................................................. 275 Создание теней с использованием приема теневых объемов и геометрического шейдера .................................................................................................................................................. 282 Глава 8  Использование шума в шейдерах .....................291 Введение ......................................................................................................................................................... 291 Создание текстуры шума с использованием GLM ......................................................................... 293 Создание бесшовной текстуры шума ................................................................................................... 296 Создание эффекта облаков ...................................................................................................................... 298 Создание эффекта текстуры древесины ............................................................................................. 300 Создание эффекта разрушения .............................................................................................................. 303 Создание эффекта брызг краски............................................................................................................ 305
Стр.7
Содержание  7 Создание эффекта изображения в приборе ночного видения .................................................... 308 Глава 9  Системы частиц и анимация ............................312 Введение ......................................................................................................................................................... 312 Анимация поверхности смещением вершин ..................................................................................... 313 Создание фонтана частиц ........................................................................................................................ 316 Создание системы частиц с использованием трансформации с обратной связью ............. 322 Создание системы частиц клонированием ........................................................................................ 331 Имитация пламени с помощью частиц ............................................................................................... 334 Имитация дыма с помощью частиц ...................................................................................................... 337 Глава 10  Вычислительные шейдеры ............................340 Введение ......................................................................................................................................................... 340 Реализация системы частиц с помощью вычислительного шейдера ....................................... 344 Имитация полотнища ткани с помощью вычислительного шейдера....................................... 348 Определение границ с помощью вычислительного шейдера ..................................................... 355 Создание фракталов с помощью вычислительного шейдера ...................................................... 360 Предметный указатель ..................................................364
Стр.8

Облако ключевых слов *


* - вычисляется автоматически
.