Рендеринг на основе законов физики: от теории к практике
Покупка
Новинка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Перевод:
Люско И. Л.
Год издания: 2024
Кол-во страниц: 1210
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-93700-237-2
Артикул: 856007.01.99
В книге описывается рендеринг, основанный на рейтрейсинге — алгоритме трассировки лучей, который способен отображать физически реалистичные изображения сложных сцен. Описывается рейтрейсинг как вычислительный метод, основанный на физике процесса; рассматриваются радиометрия, спектры и цвет, представление геометрии сцены, иерархии ограничивающих объемов, текстуры и материалы, семплинг и антиалиасинг, источники света и многое другое. Большое внимание уделяется оптимизации процесса рендеринга, а также использованию графического процессора для ускорения вычислений.
Издание предназначено для разработчиков программного обеспечения, тех, кто занимается исследованиями в области компьютерной графики, а также студентов и аспирантов, обучающихся по данному направлению.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Программирование и алгоритмизация
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Мэтт Фарр, Вензел Джейкоб, Грег Хамфрис Рендеринг на основе законов физики
Physically Based Rendering FROM THEORY TO IMPLEMENTATION MATT PHARR WENZEL JAKOB GREG HUMPHREYS FOURTH EDITION The MIT Press Cambridge, Massachusetts London, England
Москва, 2024 Рендеринг на основе законов физики ОТ ТЕОРИИ К ПРАКТИКЕ МЭТТ ФАРР ВЕНЗЕЛ ДЖЕЙКОБ ГРЕГ ХАМФРИС
УДК 004.35 ББК 32.372 Ф25 Фарр М., Джейкоб В., Хамфрис Г. Ф25 Рендеринг на основе законов физики / пер. с англ. И. Л. Люско. – М.: ДМК ISBN 978-5-93700-237-2 В книге описывается рендеринг, основанный на рейтрейсинге – алгоритме трассировки лучей, который способен отображать физически реалистичные изображения сложных сцен. Описывается рейтрейсинг как вычислительный метод, основанный на физике процесса; рассматриваются радиометрия, спектры и цвет, представление геометрии сцены, иерархии ограничивающих объемов, текстуры и материалы, семплинг и антиалиасинг, источники света и многое другое. Большое внимание уделяется оптимизации процесса рендеринга, а также использовани. графического процессора для ускорения вычислений. Издание предназначено для разработчиков программного обеспечения, тех, кто занимается исследованиями в области компьютерной графики, а также студентов и аспирантов, обучающихся по данному направлению. УДК 004.35 ББК 32.372 Original English language edition published by The MIT Press Cambridge, MA. Copyright © 2022 Physically Based Rendering 4e by Russian-language edition copyright © 2023 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-0-262-04802-6 (англ.) ISBN 978-5-93700-237-2 (рус.) © 2023 Matt Pharr,Wenzel Jacob, and Greg Humphreys © Перевод, оформление, издание, ДМК Пресс, 2024
Дейдре, которая позволила мне заниматься рукописью даже в наш медовый месяц. М. Ф. Олесе, которая подумала, как это мило, что моя любимая книга – компьютерная программа. В. Дж. Изабель и Куинн, двум самым необыкновенным людям, которых я когда-либо встречал. Пусть ваши пиксели никогда не будут маленькими квадратиками. Гр. Х.
СОДЕРЖАНИЕ ОТ ИЗДАТЕЛЬСТВА............................................................................................................... 16 ОБ АВТОРАХ............................................................................................................................. 17 ПРЕДИСЛОВИЕ....................................................................................................................... 18 ГЛАВА 01 ВВЕДЕНИЕ......................................................................................................... 30 1.1 Грамотное программирование........................................................................................ 30 1.2 Фотореалистический рендеринг и алгоритм рейтрейсинга......................................... 33 1.2.1 Камеры и пленка............................................................................................... 35 1.2.2 Пересечения луч–объект.................................................................................. 37 1.2.3 Распределение света......................................................................................... 38 1.2.4 Видимость.......................................................................................................... 40 1.2.5 Поверхности, рассеивающие свет.................................................................... 41 1.2.6 Непрямое пропускание света........................................................................... 41 1.2.7 Распространение луча...................................................................................... 44 1.3 Обзор системы pbrt.......................................................................................................... 45 1.3.1 Этапы выполнения............................................................................................ 46 1.3.2 Функция main() системы pbrt........................................................................... 47 1.3.3 Интерфейс Integrator........................................................................................ 51 1.3.4 ImageTileIntegrator и основной цикл рендеринга.......................................... 53 1.3.5 Реализация RayIntegrator................................................................................. 57 1.3.6 Интегратор случайного блуждания................................................................. 60 1.4 Как изучать материал этой книги................................................................................... 65 1.4.1 Упражнения....................................................................................................... 66 1.4.2 Просмотр изображений.................................................................................... 67 1.4.3 Онлайн-версия.................................................................................................. 67 1.5 Понимание и использование кода.................................................................................. 67 1.5.1 Организация исходного кода........................................................................... 67 1.5.2 Соглашение по наименованиям...................................................................... 68 1.5.3 Указатель или ссылка?...................................................................................... 68 1.5.4 Абстрактность или эффективность?................................................................ 69 1.5.5 Пространство имен pstd................................................................................... 69 1.5.6 Аллокаторы....................................................................................................... 69
Содержание 1.5.7 Динамическая диспетчеризация..................................................................... 70 1.5.8 Оптимизация кода............................................................................................ 71 1.5.9 Отладка и регистрация..................................................................................... 71 1.5.10 Параллелизм и безопасность потоков............................................................. 72 1.5.11 Расширение системы........................................................................................ 73 1.5.12 Программные ошибки...................................................................................... 73 1.6 Краткая история рендеринга на основе законов физики.............................................. 73 1.6.1 Исследования.................................................................................................... 74 1.6.2 Производство.................................................................................................... 76 Дополнительная литература........................................................................................................ 78 Упражнения.................................................................................................................................. 80 ГЛАВА 02 ИНТЕГРИРОВАНИЕ МЕТОДОМ МОНТЕ-КАРЛО................................. 82 2.1 Метод Монте-Карло: основы........................................................................................... 83 2.1.1 Обзор предпосылок и теории вероятностей................................................... 83 2.1.2 Ожидаемые значения....................................................................................... 85 2.1.3 Оценка Монте-Карло........................................................................................ 85 2.1.4 Ошибка в статистических оценках Монте-Карло........................................... 87 2.2 Повышение эффективности............................................................................................ 89 2.2.1 Стратифицированный семплинг..................................................................... 89 2.2.2 Семплинг по значимости................................................................................. 91 2.2.3 Семплинг по множественной значимости...................................................... 93 2.2.4 Русская рулетка................................................................................................. 96 2.2.5 Расщепление..................................................................................................... 97 2.3 Семплинг методом инверсии.......................................................................................... 97 2.3.1 Дискретный случай........................................................................................... 97 2.3.2 Непрерывный случай...................................................................................... 100 2.4 Преобразование между распределениями................................................................... 101 2.4.1 Преобразование в нескольких измерениях.................................................. 102 2.4.2 Семплинг с многомерными преобразованиями.......................................... 103 Дополнительная литература...................................................................................................... 105 Упражнения................................................................................................................................ 106 ГЛАВА 03 ГЕОМЕТРИЯ И ПРЕОБРАЗОВАНИЯ....................................................... 108 3.1 Системы координат........................................................................................................ 108 3.1.1 Направленность системы координат............................................................. 109 3.2 Базовые классы n-кортежей........................................................................................... 110 3.3 Векторы........................................................................................................................... 113 3.3.1 Нормализация и длина вектора..................................................................... 114 3.3.2 Скалярное и векторное произведения.......................................................... 116 3.3.3 Система координат из одного вектора.......................................................... 118 3.4 Точки................................................................................................................................ 119 3.5 Нормали.......................................................................................................................... 120 3.6 Лучи................................................................................................................................. 121 3.6.1 Дифференциалы лучей................................................................................... 123 3.7 Ограничивающие боксы................................................................................................ 124 3.8 Сферическая геометрия................................................................................................. 130 3.8.1 Телесные углы................................................................................................. 130 3.8.2 Сферические полигоны.................................................................................. 131 3.8.3 Сферические параметризации....................................................................... 133 3.8.4 Ограничивающие направления..................................................................... 140 3.9 Преобразования.............................................................................................................. 144 3.9.1 Однородные координаты............................................................................... 145 3.9.2 Оценка класса преобразования..................................................................... 146 3.9.3 Базовые операции........................................................................................... 146 3.9.4 Перемещения (трансляции)........................................................................... 148 3.9.5 Масштабирование........................................................................................... 149 3.9.6 Поворот по осям x, y и z.................................................................................. 150
Содержание 3.9.7 Поворот вокруг произвольной оси................................................................ 152 3.9.8 Поворот одного вектора к другому................................................................ 153 3.9.9 Преобразование точки зрения....................................................................... 154 3.10 Применение преобразований........................................................................................ 155 3.10.1 Точки................................................................................................................ 156 3.10.2 Векторы............................................................................................................ 156 3.10.3 Нормали........................................................................................................... 156 3.10.4 Лучи.................................................................................................................. 157 3.10.5 Ограничивающие боксы................................................................................. 157 3.10.6 Композиция преобразований........................................................................ 158 3.10.7 Преобразования и направленность системы координат............................. 158 3.10.8 Векторные фреймы......................................................................................... 159 3.10.9 Анимированные преобразования................................................................. 160 3.11 Взаимодействия.............................................................................................................. 162 3.11.1 Взаимодействие с поверхностью................................................................... 164 3.11.2 Взаимодействие со средой............................................................................. 166 Дополнительная литература...................................................................................................... 167 Упражнения................................................................................................................................ 168 ГЛАВА 04 РАДИОМЕТРИЯ, СПЕКТРЫ И ЦВЕТ....................................................... 170 4.1 Радиометрия................................................................................................................... 171 4.1.1 Базовые величины.......................................................................................... 172 4.1.2 Функции падающего и исходящего излучений............................................ 175 4.1.3 Радиометрические спектральные распределения....................................... 177 4.1.4 Яркость и фотометрия.................................................................................... 177 4.2 Работа с радиометрическими интегралами................................................................. 178 4.2.1 Интегралы по проекции телесного угла........................................................ 178 4.2.2 Интегралы по сферическим координатам.................................................... 179 4.2.3 Интегралы по площади.................................................................................. 180 4.3 Отражение от поверхности............................................................................................ 181 4.3.1 BRDF и BTDF.................................................................................................... 182 4.3.2 BSSRDF............................................................................................................. 184 4.4 Излучение света.............................................................................................................. 184 4.4.1 Излучение черного тела................................................................................. 186 4.4.2 Стандартные источники света....................................................................... 188 4.5 Представление спектральных распределений............................................................. 189 4.5.1 Интерфейс спектра......................................................................................... 190 4.5.2 Общие спектральные распределения............................................................ 191 4.5.3 Встроенные спектральные данные................................................................ 194 4.5.4 Семплированные спектральные распределения.......................................... 195 4.6 Цвет.................................................................................................................................. 200 4.6.1 Цветовое пространство XYZ........................................................................... 201 4.6.2 Цвет RGB.......................................................................................................... 205 4.6.3 Цветовые пространства RGB.......................................................................... 207 4.6.4 Почему именно спектральный рендеринг?.................................................. 210 4.6.5 Выбор количества длин волн для семплинга................................................ 211 4.6.6 От RGB к спектрам.......................................................................................... 214 Дополнительная литература...................................................................................................... 224 Упражнения................................................................................................................................ 227 ГЛАВА 05 КАМЕРЫ И ПЛЕНКА..................................................................................... 229 5.1 Интерфейс камеры......................................................................................................... 230 5.1.1 Пространства координат камеры................................................................... 232 5.1.2 Класс CameraBase............................................................................................ 235 5.2 Модели проекционных камер....................................................................................... 238 5.2.1 Ортографическая камера............................................................................... 240 5.2.2 Перспективная камера................................................................................... 243 5.2.3 Модель тонкой линзы и глубина резкости.................................................... 246
Содержание 5.3 Сферическая камера....................................................................................................... 252 5.4 Пленка и изображение................................................................................................... 254 5.4.1 Уравнение измерения камеры....................................................................... 254 5.4.2 Моделирование отклика световоспринимающего сенсора......................... 255 5.4.3 Фильтрация семплов изображения............................................................... 264 5.4.4 Интерфейс пленки.......................................................................................... 267 5.4.5 Общая функциональность пленки................................................................. 269 5.4.6 RGBFilm............................................................................................................ 271 5.4.7 GBBufferFilm.................................................................................................... 275 Дополнительная литература...................................................................................................... 276 Упражнения................................................................................................................................ 279 ГЛАВА 06 ФОРМЫ............................................................................................................. 282 6.1 Базовый интерфейс формы........................................................................................... 282 6.1.1 Ограничивающие объемы.............................................................................. 282 6.1.2 Пересечения лучей с границами.................................................................... 283 6.1.3 Проверки пересечения................................................................................... 286 6.1.4 Пространство координат пересечений ......................................................... 287 6.1.5 Одностороннесть............................................................................................. 288 6.1.6 Диффузные источники................................................................................... 288 6.1.7 Семплинг......................................................................................................... 288 6.2 Сферы.............................................................................................................................. 290 6.2.1 Ограничивающие боксы................................................................................. 293 6.2.2 Проверки пересечения................................................................................... 293 6.2.3 Площадь поверхности..................................................................................... 300 6.2.4 Семплинг......................................................................................................... 301 6.3 Цилиндры........................................................................................................................ 306 6.3.1 Площадь и границы........................................................................................ 307 6.3.2 Проверки пересечения................................................................................... 308 6.3.3 Семплинг......................................................................................................... 310 6.4 Диски............................................................................................................................... 311 6.4.1 Площадь и ограничение................................................................................. 312 6.4.2 Проверки пересечения................................................................................... 313 6.4.3 Семплинг......................................................................................................... 315 6.5 Сетки из треугольников................................................................................................. 315 6.5.1 Представление и хранение сетки................................................................... 317 6.5.2 Класс Triangle................................................................................................... 321 6.5.3 Пересечение луч–треугольник....................................................................... 322 *6.5.4 Семплинг......................................................................................................... 332 6.6 Билинейчатые патчи...................................................................................................... 344 6.6.1 Тестирование пересечений............................................................................ 349 6.6.2 Семплинг......................................................................................................... 355 *6.7 Кривые............................................................................................................................. 362 6.7.1 Ограничивающие кривые.............................................................................. 365 6.7.2 Проверки пересечения................................................................................... 366 *6.8 Управление ошибкой округления................................................................................. 374 6.8.1 Арифметика чисел с плавающей запятой..................................................... 375 6.8.2 Консервативные пересечения луч–ограничение......................................... 386 6.8.3 Точные квадратичные дискриминанты........................................................ 387 6.8.4 Надежные пересечения с треугольником...................................................... 389 6.8.5 Ошибка точки пересечения с границей........................................................ 390 6.8.6 Надежные инициированные источники лучей............................................ 397 6.8.7 Избежание пересечений позади источников лучей..................................... 400 6.8.8 Обсуждение..................................................................................................... 402 Дополнительная литература...................................................................................................... 403 Упражнения................................................................................................................................ 407 * Звездочкой отмечены разделы с продвинутым содержанием, которые можно пропустить при первом чтении.
Содержание ГЛАВА 07 ПРИМИТИВЫ И УСКОРЕНИЕ РЕНДЕРИНГА НА ПЕРЕСЕЧЕНИЯХ............................................................................................................. 413 7.1 Интерфейс Primitive и геометрические примитивы................................................... 414 7.1.1 Геометрические примитивы.......................................................................... 414 7.1.2 Инстансирование объекта и примитивы в движении.................................. 418 7.2 Агрегаты.......................................................................................................................... 421 7.3 Иерархии ограничивающих объемов............................................................................ 422 7.3.1 Конструкция BVH............................................................................................ 423 7.3.2 Эвристика площади поверхности.................................................................. 430 7.3.3 Линейные иерархии ограничивающих объемов.......................................... 435 7.3.4 Компактный BVH для обхода......................................................................... 443 7.3.5 Тесты ограничения и пересечения................................................................ 445 Дополнительная литература...................................................................................................... 449 Упражнения................................................................................................................................ 455 ГЛАВА 08 СЕМПЛИРОВАНИЕ И РЕКОНСТРУКЦИЯ............................................. 459 8.1 Теория семплирования.................................................................................................. 459 8.1.1 Частотный интервал и преобразование Фурье............................................. 461 8.1.2 Идеальный семплинг и реконструкция......................................................... 463 8.1.3 Алиасинг.......................................................................................................... 466 8.1.4 Понятие пикселя............................................................................................. 467 8.1.5 Семплинг и алиасинг при рендеринге.......................................................... 468 8.1.6 Спектральный анализ шаблонов семплинга................................................. 470 8.2 Семплинг и интегрирование......................................................................................... 473 *8.2.1 Дисперсный анализ Фурье............................................................................. 474 8.2.2 Низкое расхождение и квази-Монте-Карло.................................................. 478 8.3 Интерфейс cемплирования............................................................................................ 481 8.4 Независимый семплер................................................................................................... 484 8.5 Стратифицированный семплер..................................................................................... 485 *8.6 Семплер Халтона............................................................................................................ 491 8.6.1 Точки Хаммерсли и Халтона.......................................................................... 491 8.6.2 Рандомизация через скремблинг.................................................................. 494 8.6.3 Реализация семплера Халтона....................................................................... 498 8.6.4 Оценка............................................................................................................. 502 *8.7 Семплеры Sobol¢.............................................................................................................. 506 8.7.1 Стратификация по элементарным интервалам........................................... 508 8.7.2 Рандомизация и скремблирование............................................................... 509 8.7.3 Генерация семплов Sobol¢............................................................................... 511 8.7.4 Глобальный семплер Sobol¢............................................................................ 512 8.7.5 Заполненный семплер Sobol¢......................................................................... 515 8.7.6 Семплер синего шума Sobol¢.......................................................................... 517 8.7.7 Оценка............................................................................................................. 523 8.8 Реконструкция изображения......................................................................................... 525 8.8.1 Интерфейс Filter.............................................................................................. 527 8.8.2 FilterSampler.................................................................................................... 529 8.8.3 Прямоугольный фильтр.................................................................................. 531 8.8.4 Треугольный фильтр....................................................................................... 533 8.8.5 Фильтр Гаусса.................................................................................................. 534 8.8.6 Фильтр Митчелла............................................................................................ 535 8.8.7 Оконный фильтр Sinc ..................................................................................... 537 Дополнительная литература...................................................................................................... 539 Упражнения................................................................................................................................ 545 ГЛАВА 09 МОДЕЛИ ОТРАЖЕНИЯ................................................................................ 547 9.1 Представление BSDF....................................................................................................... 549 9.1.1 Геометрические установки и соглашения..................................................... 549 9.1.2 Интерфейс BxDF.............................................................................................. 550