Основы синтеза фотореалистических изображений: трассировка лучей Боголепов Д.К. Кафедра МОЭВМ ВМК ННГУ Введение в методы визуализации
Часть 1 Введение в методы визуализации
Рендеринг (визуализация) – процесс получения плоского растрового изображения по разработанной трехмерной сцене с помощью компьютерной программы В зависимости от цели используют различные методы визуализации: –рендеринг в реальном времени: применяется в интерактивных приложениях с использованием графических ускорителей (методы растеризации и сканирования строк) –предварительный рендеринг: достаточно медленный, но высококачественный процесс визуализации, применяемый в основном для видео (методы глобального освещения) Введение Нижний НовгородIntel Winter School – 20093
Используется современными графическими ускорителями: объекты сцены (представленные треугольниками) проецируются на экранную плоскость с последующим затенением Упрощенная модель освещения: отсутствуют отражения и преломления, эффекты диффузного переотражения света и каустические эффекты Правдоподобные эффекты освещения очень важны: именно игра света и тени во многом определяет то, насколько живо и натурально выглядит трехмерная виртуальная реальность Метод растеризации Нижний НовгородIntel Winter School – 20094
Введение в растеризацию программируемых блоков – шейдеров – значительно увеличивает качество изображений, но все же им далеко до достижения фотореализма Для правильного моделирования освещения применяются специальные методы, важное место среди которых занимает трассировка лучей Трассировка лучей – метод геометрической оптики для построения изображений трёхмерных сцен путём отслеживания взаимодействия отдельных лучей света с поверхностями Метод трассировки лучей Нижний НовгородIntel Winter School – 20095
Сравнение методов Нижний НовгородIntel Winter School – Метод растеризации (OpenGL API)Метод трассировки лучей
"Christmas Baubles" by Jaime Vives Piqueres (2005)
"A McIntosh in the Kitchen" by Marc Jacquier (2004)
"Pebbles" by Jonathan Hunt (2008)
"Travieso" by Jaime Vives Piqueres (1997)
"Victoria's World" by Douglas Eichenberg (2005)
Часть 2 Обзор классической трассировки лучей
Классическая трассировка лучей (eye-based или backward ray tracing): лучи испускаются из камеры (глаза) через каждый пиксель экранной плоскости на модель сцены Генерация первичного луча Нижний НовгородIntel Winter School –
Первичный луч может не столкнуться ни с одним объектом сцены. Процесс трассировки обрывается, а соответствующий пиксель закрашивается цветом фона Луч не пересекает сцену Нижний НовгородIntel Winter School –
Иначе среди всех точек соударения выбирается ближайшая. Требуется выяснить, находится ли данная точка в тени, а затем рассчитать вклад прямого и вторичного освещения Луч соударяется с объектом Нижний НовгородIntel Winter School –
Для определения, находится ли точка в тени, следует выпустить вторичный теневой луч (shadow ray) из точки к источнику света. Если теневой луч столкнется с объектом сцены, то точка находится в тени Определение затененности точки Нижний НовгородIntel Winter School –
Если лучи от источника света достигают точки, то следует рассчитать вклад прямого освещения от данного источника (используются различные модели локального освещения – эмпирические и физически корректные) Расчет прямого освещения Нижний НовгородIntel Winter School –
Если поверхность объекта обладает отражающими или прозрачными свойствами, то точка может получать дополнительную освещенность через отраженные и преломленные лучи соответственно Расчет вторичного освещения Нижний НовгородIntel Winter School –
Луч отражения (reflection ray) строится на основе закона отражения (геометрическая оптика): r = i – 2 · n · (n · i) Учет отражения света Нижний НовгородIntel Winter School – n P -i r падающий лучотраженный луч θ θ
Луч преломления (transparency ray) строится на основе закона преломления (геометрическая оптика): sin(α) / sin(β) = η 2 / η 1 t = (η 1 / η 2 ) · i – [ cos(β) + (η 1 / η 2 ) · (n · i) ] · n, cos(β) = sqrt [ 1 - (η 1 / η 2 ) 2 · (1 - (n · i) 2 ) ] Учет преломления света… Нижний НовгородIntel Winter School – P n -i t падающий луч преломленный луч α β η1η1 η2η2
При переходе из более плотной среды в менее плотную при некотором α имеет место sin(β) 1, что невозможно. В таком случае происходит полное внутреннее отражение (entire inner reflection): sin(α) η 2 / η 1 Учет преломления света Нижний НовгородIntel Winter School – P n падающие лучи преломленные лучи η1η1 η2η2
Процесс трассировки… Нижний НовгородIntel Winter School – виртуальный наблюдатель пиксель видового окна
Процесс трассировки Нижний НовгородIntel Winter School – виртуальный наблюдатель пиксель видового окна Точка соударения #1 Точка соударения #1-1 Точка соударения #1-2 Точка соударения #1-1-2 Точка соударения #1-2-1 Точка соударения #
Освещенность каждой точки соударения вычисляется по формуле: I total = I local + k reflection · I reflection + k refraction · I refraction, где I total – полная освещенность узла; I local – локальная освещенность узла; k reflection – задает отражающие свойства поверхности; I reflection – освещенность вдоль ветки отражения; k refraction – задает преломляющие свойства поверхности; I refraction – освещенность вдоль ветки преломления Расчет освещенности точки Нижний НовгородIntel Winter School –
Насколько глубоким может быть дерево узлов и как далеко прослеживать вторичные лучи? –Естественным завершением трассировки является выход всех испущенных вторичных лучей за пределы видимой области и их рассеяние на чисто диффузных объектах; –Трассировку лучей можно прекращать, когда вклад от следующего узла ветви становится меньше заданной величины; –Для получения оценочного расчета можно оборвать трассировку лучей после выполнения заданного количества итераций Критерии остановки Нижний НовгородIntel Winter School –
Трассировка лучей – первый метод расчета глобального освещения: визуализация теней, многократных отражений и преломлений Возможность визуализации гладких объектов без интерполяции их полигональными поверхностями (например, треугольниками) Алгоритмическая независимость вычислений – можно параллельно обрабатывать два и более лучей Корректное моделирование различных оптических эффектов (ГРИП – глубина резко изображаемого пространства, ХА – хроматические аберрации) Выводы… Нижний НовгородIntel Winter School –
Не учитываются каустики и вторичное освещение от диффузно отраженного объектами света Низкая скорость и высокая вычислительная стоимость расчетов Несмотря на корректное моделирование ряда оптических эффектов, трассировка лучей не обеспечивает подлинной фотореалистичности изображений Для обеспечения фотореализма необходимо точное решение основного уравнения визуализации: метод излучательности или метод фотонных карт Выводы Нижний НовгородIntel Winter School –