
86e96b29824b412b4ad1fda7a8f8e374.ppt
- Количество слайдов: 79
Трассировка лучей. Алгоритмы поиска пересечений Алексей Игнатенко Лекция 8 30 ноября 2006
На прошлой лекции n Полигональные модели q Текстура используется как средство передачи освещения и параметров материала n n n Проективные текстуры Световые поля как текстуры Точечные модели n Подходят для сложных моделей q n 30 ноября 2006 Проще в обработке, быстрее в визуализации Проблема реконструкции поверхности приближении Основы синтеза изображений 2
На лекции n n Трассировка лучей. Сравнение с алгоритмами растеризации Методы поиска пересечений Интерактивная трассировка лучей 30 ноября 2006 Основы синтеза изображений 3
Часть 1/3 ТРАССИРОВКА VS. РАСТЕРИЗАЦИЯ 30 ноября 2006 Основы синтеза изображений 4
Экранизация в компьютерной графике Два основных подхода Растеризация: Трассировка лучей: Прямая проекция геометрии 30 ноября 2006 Обратная проекция пикселей изображения Основы синтеза изображений 5
Растеризация n Конвейер q q n Успешная технология Аппаратная поддержка Достоинства q q q Приложение Вершинная программа Простой и проверенный алгоритм Растеризация Все быстрее и быстрее Фрагментная программа Полная программируемость уже скоро Фрагментные тесты Буфер кадра 30 ноября 2006 Основы синтеза изображений 6
Растеризация: особенности n Базовая операция всей компьютерной графики q n Построчное сканирование по треугольнику Последовательная обработка всех треугольников по одному q è Невозможно работать более, чем с одним треугольником за раз Но большинство реалистичных эффектов требуют доступа ко всей сцене: тени, отражения, глобальное освещение! 30 ноября 2006 Основы синтеза изображений 7
Трассировка лучей Генерация луча Трассирование луча Пересечение Тонирование Буфер кадра 30 ноября 2006 Основы синтеза изображений 8
Трассировка лучей Генерация луча Трассирование луча Пересечение Тонирование Буфер кадра 30 ноября 2006 Основы синтеза изображений 9
Трассировка лучей Генерация луча Трассирование луча Пересечение Тонирование Буфер кадра 30 ноября 2006 Основы синтеза изображений 10
Трассировка лучей: трассирование луча Генерация луча Трассирование луча Пересечение Тонирование Буфер кадра 30 ноября 2006 Основы синтеза изображений 11
Трассировка лучей : трассирование луча Генерация луча Трассирование луча Пересечение Тонирование Буфер кадра 30 ноября 2006 Основы синтеза изображений 12
Трассировка лучей Генерация луча Трассирование луча Пересечение Тонирование Буфер кадра 30 ноября 2006 Основы синтеза изображений 13
Трассировка лучей Генерация луча Трассирование луча Пересечение Тонирование Буфер кадра 30 ноября 2006 Основы синтеза изображений 14
Трассировка лучей Генерация луча Трассирование луча Пересечение Тонирование Буфер кадра 30 ноября 2006 Основы синтеза изображений 15
Трассировка лучей Генерация луча Трассирование луча Пересечение Тонирование Буфер кадра 30 ноября 2006 Основы синтеза изображений 16
Трассировка лучей Генерация луча Трассирование луча Пересечение Тонирование Буфер кадра 30 ноября 2006 Основы синтеза изображений 17
Трассировка лучей Генерация луча Трассирование луча Пересечение Тонирование Буфер кадра 30 ноября 2006 Основы синтеза изображений 18
Трассировка лучей Генерация луча Трассирование луча Пересечение Тонирование Буфер кадра 30 ноября 2006 Основы синтеза изображений 19
Трассировка лучей Генерация луча Трассирование луча Пересечение Тонирование Буфер кадра 30 ноября 2006 Основы синтеза изображений 20
Трассировка лучей: свойства • Глобальное освещение • Параллелизм • Расширямость • Вычисления только по запросу • Попиксельные операции 30 ноября 2006 Основы синтеза изображений 21
Растеризация vs. Трассировка лучей n Определение: растеризация Дан набор лучей и притимивов, вычислить подмножество лучей, пересекающихся с примитивом 2 D сетка (экран) как индекс n Определение: трассировка лучей Дан луч и набор примитивов, вычислить подмножество примитивов, пересекающихся с лучом 3 D иерархическая структура как индекс 30 ноября 2006 Основы синтеза изображений 22
Растеризация vs. Трассировка лучей n 3 D индекс в мировом пространстве q q q n Ограничивает динамику сцены (перестройка) Масштабируемость O(log n) Произвольные наборы лучей 2 D сетка в пространстве экрана q Регулярная дискретизация 30 ноября 2006 Основы синтеза изображений 23
Растеризация vs. Трассировка лучей n Слияние: 2 D-сетка + 3 D-структура в мировом пространстве q q Растеризация становится ближе к трассировке Те же самые ограничения (динамика сцены) n q Но индекс может быть менее детализированным Вычисления делятся на аппаратные и программные è Увеличение сложности, вопросы обмена данными. . . 30 ноября 2006 Основы синтеза изображений 24
Растеризация vs. Трассировка лучей n Попиксельная эффективность q q Функции тонирования имеют одинаковую сложность Растеризация n Инкрементное вычисление между пикселями q n q Строчная развертка Лишние операции из-за z-буфера (overdraw) Трассировка n n Нет инкрементных вычислений Нет лишних операций 30 ноября 2006 Основы синтеза изображений 25
Растеризация vs. Трассировка лучей n Достоинства вычислений «по запросу» q Только требуемые вычисления n n q Не требуется передискретизация данных n q эффективность Пример: не нужно вычислять всю карту освещения точность Подгрузка данных только по требованию ресурсы 30 ноября 2006 Основы синтеза изображений 26
Растеризация vs. Трассировка лучей n Аппаратная поддержка q Растеризация имеет полную аппаратную поддержку n n q Быстрое развитие Высокая производительность, параллелизм, поточная обработка Трассировка в основном реализуется программно n Требуются гибкие потоки управления, рекурсия, гибкий ввод/вывод Требуется виртуальная память, инкреметная подгрузка Требуется полная поддержка циклов Сильно зависит от кэширования n Нет аппаратной поддержки n n n 30 ноября 2006 Основы синтеза изображений 27
Часть 2/3 ОСНОВЫ ТРАССИРОВКИ И АЛГОРИТМЫ ПОИСКА ПЕРЕСЕЧЕНИЙ 30 ноября 2006 Основы синтеза изображений 28
Трассировка поверхностей n n Предположение: пустое пространство полностью прозрачно Поверхности q n Материалы поверхностей q n Трехмерные геометрические модели объектов Отражение, поглощение, пропускание и т. п. Освещение q Положение и характеристики источников света 30 ноября 2006 Основы синтеза изображений 29
Основные шаги n Генерация первичных лучей q n Трассировка лучей q n Rays from viewpoint into 3 D scene Первое пересечение с геометрией сцены Тонирование q q Излучение (radiance) переносится с лучом В точке пересечения входящее излучение вычисляется с помощью дополнительных лучей 30 ноября 2006 Основы синтеза изображений 30
Генерация лучей n Камера-обскура q q q o: Центр проекции (наблюдатель) f: Вектор зрения (фокусное расстояние) x, y: Оконные координаты xres, yres: Размер изображения x y u d f o 30 ноября 2006 Основы синтеза изображений 31
Ray Generation n Камера-обскура for (x= 0; x < xres; x++) for (y= 0; y < yres; y++) { d= f + 2(x/xres - 0. 5) x + 2(y/yres - 0. 5) y; d= d/|d|; // Normalize col= trace(o, d); write_pixel(x, y, col); } x y u d f o 30 ноября 2006 Основы синтеза изображений 32
Представления луча и объектов n Луч: r(t)=o+t d q n o=(ox, oy, oz), d=(dx, dy, dz) Геометрия сцены q Plane: (p-a)·n=0 n q Sphere: (p-c)·(p-c)-r 2=0 n q Implicit definition (n : surface normal, a : point one surface ) c : sphere center, r : sphere radius Triangles: Plane plus 2 D coordinates 30 ноября 2006 Основы синтеза изображений 33
Пересечение луча со сферой n Сфера q q q Сфера в начале координат (x 2 + y 2 + z 2 - 1= 0) Подставляем уравнение для луча t 2(dx 2 + dy 2 + dz 2) + 2 t (dxox + dyoy + dzoz) + (ox 2 + oy 2 + oz 2) – 1 = 0 Вариант: геометрическая задача d 30 ноября 2006 Основы синтеза изображений R o 34
Пересечение луча с плоскостью n Плоскость q Уравнение плоскости: p·n - D = 0, |n| = 1 n n n 30 ноября 2006 Неявное представление Нормаль: n Перпендикуляр до (0, 0, 0): D Заменяем o + td на p (o + td)·n – D = 0 Решаем для t: Основы синтеза изображений 35
Пересечение луча с треугольником n Барицентрические координаты q q q Невырожденный трк. ABC P= 1 A + 2 B + 3 C 1 + 2 + 3 = 1 3 = (APB) / (ACB) etc n Relative area C 1 P 0 3 B A n Пересечение, если все i >= 0 30 ноября 2006 Основы синтеза изображений 36
Пересечение луча с треугольником n n Пересечение с плоскостью треугольника Дана 3 D-точка пересечения q q q n Спроецировать точку на плоскость xy, xz, yz Можно использовать любую n плоскостью Плоскость и 2 D-положения вершин можно вычислить заранее Провести барицентрический тест 30 ноября 2006 Основы синтеза изображений 37
Проблема точности 30 ноября 2006 Основы синтеза изображений 38
Ускорение трассировки n Пересечение луча со всеми объектами и сортировка для поиска ближайшего пересечения q n Ускорение алгоритма пересечения q n Очень дорого! Небольшой эффект Уменьшение количества пересечений q Разбиение пространства (часто иерархическое) n n Сетки, октодеревья, BSD и kd-деревья, деревья ограничивающих объемов 5 D разбиение (позиция и направление) 30 ноября 2006 Основы синтеза изображений 39
Сетки n Построение сетки q q n Начинаем с описывающего параллелепипеда Треугольники разбиваются по вокселям Трассировка q q Алгоритм Брезенхема в 3 D Останавливаемся, если пересечение найдено в текущем вокселе 30 ноября 2006 Основы синтеза изображений 40
Сетка: проблемы n Обход сетки q q n Перечисление вокселей вдоль луча Очень простой алгоритм, возможна аппаратная реализация Разрешение сетки q q Очень сильно зависит от сцены Невозможна адаптация к локальной плотности примитивов n q Проблема «Чайника на стадионе» Возможное решение: иерархические сетки 30 ноября 2006 Основы синтеза изображений 41
Сетка: проблемы n Объекты в нескольких вокселях q q Хранить только ссылки на объекты Хранить информацию о найденных пересечениях в кэше n 30 ноября 2006 Предел: хранить индекс луча в каждом треугольнике Основы синтеза изображений 42
Иерархические сетки n Простой алгоритм построения q q n Рекурсивное создание сеток в вокселях с высокой плотностью Проблема: какое должно быть разрешение на каждом уровне? Улучшения алгоритма q q Разделить сетки для объектов Проблема: что считать объектами? 30 ноября 2006 Основы синтеза изображений 43
Октодерево n Иерархическое разбиение пространства q n Адаптивное рекурсивное разбиние пространства на 8 равных частей Проблемы q q Достаточно сложный алгоритм обхода Сложные регионы сходятся медленно 30 ноября 2006 Основы синтеза изображений 44
Описывающие объемы n Идея q n Вычислять пересечение с объектом только если луч пересекает простой описывающий объем Возможные описывающие объемы: q q q Сфера Выровненный по осям описывающий параллелепипед Описывающий параллелепипед 30 ноября 2006 Основы синтеза изображений 45
Иерархия описывающих сфер n Идея: q n Преимущества: q q n Разбиваем рекурсивно Очень хорошая адаптивность Эффективный обход O(log N) Проблемы q Как располагать описывающие объемы? 30 ноября 2006 Основы синтеза изображений 46
BSP- и Kd-деревья n n Рекурсивное разбиение пространства на полупространства Двоичное разбиение пространства (BSP): q n Разбиение плоскостями в произвольных положениях Kd-деревья q 1. 1. 2. 1 1 1. 2 Разбиение выровненными относительно осей плоскостями 1. 1. 1 30 ноября 2006 Основы синтеза изображений 1. 1 47
Построение k. D-дерева 30 ноября 2006 Основы синтеза изображений 48
Построение k. D-дерева 30 ноября 2006 Основы синтеза изображений 49
Построение k. D-дерева 30 ноября 2006 Основы синтеза изображений 50
Построение k. D-дерева 30 ноября 2006 Основы синтеза изображений 51
ТРАССИРОВКА: ИНТЕРАКТИВНАЯ ТРАССИРОВКА 30 ноября 2006 Основы синтеза изображений 52
Интерактивная трассировка лучей n n n В: Что такое интерактивная трассировка лучей? О: Это обычная трассировка + оптимизации, оптимизации. . . Оптимизации могут быть и алгоритмическими! 30 ноября 2006 Основы синтеза изображений 53
Что можно оптимизировать? n n n 1. Построение пространственного индекса 2. Алгоритм трассирования луча 3. Вычисление освещения 30 ноября 2006 Основы синтеза изображений 54
Оптимизации: построение пространственного индекса n k. D-деревья q q q Адаптивны Компактны Быстрый обход n За счет хорошо построенного дерева можно получить увеличение скорости в несколько раз! n Проблема: где провести разбивающую плоскость? q n Учет вероятностей попадания луча в разные полуплоскости Проблема: где остановить разбиение? 30 ноября 2006 Основы синтеза изображений 55
Оптимизации: Алгоритм трассирования луча n Оптимизация структуры данных для узла дерева q n Учет процессорного кэша Оптимизация цикла трассировки q q Никаких рекурсий Минимизация операцией со стеком Параллелизация: SIMD, многоядерность Когерентность 30 ноября 2006 Основы синтеза изображений 56
Оптимизации: Алгоритм трассирования луча n n Трассировка луча все равно очень дорога Два варианта: q Трассировать больше лучей в секунду n q рассмотрели Трассировать меньше лучей на кадр n n n 30 ноября 2006 Использование растеризационной аппаратуры Технологии на основе изображений Интерполяция результатов трассирования Основы синтеза изображений 57
Алгоритм трассирования луча: корректирующие текстуры 30 ноября 2006 Основы синтеза изображений 58
Оптимизации: Вычисление освещения n n Проблема: вычисление интеграла Подходы: q q Квази-статические (квази Монте-Карло) Гибридные n n 30 ноября 2006 Использование растеризационной аппаратуры Технологии на основе изображений Основы синтеза изображений 59
Почему сейчас? n Успех растеризации и отсутствие прогресса остановили развитие алгоритмов трассировки лучей в 90 е q n В начале 2000 х развитие алгоритмов позволило догнать аппаратные методы q q n Мало низкоуровневой оптимизации, не использовалась когерентность и т. п. За счет софтверной оптимизации В основном на сложных сценах Сейчас программируемые аппаратные ускорители позволили еще более ускорить трассировку q q Все равно неудобно – ориентация на растеризацию Надежды на следующее поколение 30 ноября 2006 Основы синтеза изображений 60
Причины использования интерактивной трассировки n n n Реалистичные изображения по умолчанию Физическая корректность Поддержка массивных сцен Интеграция различных типов примитивов Декларативное описание сцен Интерактивное глобальное освещение 30 ноября 2006 Основы синтеза изображений 61
Реалистичные изображения по умолчанию 30 ноября 2006 62 Основы синтеза изображений Volkswagen Beetle with correct shadows and (multi-)reflections on curved surfaces
Физическая корректность 30 ноября traced car head lamp, faithful visualization requires up to 50 rays per pixel 63 Основы синтеза изображений Fully ray 2006
Физическая корректность 30 ноября 2006 64 Rendered directly from trimmed Основы синтеза изображенийwith smooth environment lighting NURBS surfaces,
Физическая корректность Textured Phong for comparison Rendered with accurately measured BTF data Основы that 30 ноября 2006 for micro lighting effects синтеза изображений accounts 65 BTF Data Courtesy R. Klein, Uni Bonn
Физическая корректность 66 Основы синтеза изображений VR 30 ноября 2006 scene illuminated from realtime video feed, AR with realtime environment lighting
Поддержка массивных сцен 30 ноября 2006 Основы синтеза изображений 67
Интеграция различных типов примитивов 30 ноября 2006 Основы синтеза изображений Triangles, Bezier splines, and subdivision surfaces fully integrated 68
Интеграция различных типов примитивов Volume visualization using multiple iso-surfaces in combination with surface rendering 30 ноября 2006 69 Основы синтеза изображений
Интеграция различных типов примитивов 24 MPoints, 2. 1 fps with shadow @ 640 x 480 30 ноября 2006 Realtime ray tracing of point clouds (1 Mpoints each) Основы синтеза изображений On one dual-Opteron 2. 4 GHz: 4 -9 fps 70
Декларативное описание сцен n Декларативный интерфейс задания сцены q q n Приложение задает всю сцену за раз Экранизация полностью выполняется на уровне трассировщика (например, в железе) Достоинства q q Сильно упрощает программирование Возможно полное аппаратное ускорение 30 ноября 2006 Основы синтеза изображений 71
Глобальное освещение Conference 30 ноября 2006 room (380 000 tris, 104 синтеза изображений global illumination in realtime 72 Основы lights) with full
Глобальное освещение 250 k / 3 fps 25 M / 11 fps Light pattern from a car head lamp computed in realtime using photon mapping: Left: realtime update, middle: accumulatedизображенийright: photograph of real pattern 30 ноября 2006 73 Основы синтеза in 30 s,
Глобальное освещение 250 k / 3 fps 25 M / 11 fps Photograph Light pattern from a car head lamp computed in realtime using photon mapping: Left: realtime update, middle: accumulatedизображенийright: photograph of real pattern 30 ноября 2006 74 Основы синтеза in 30 s,
Проблемы интерактивной трассировки лучей n Динамические сцены q n Изменения геометрии обновление пространственного индекса Подходы q q Деление сцен исходя из темпоральных характеристик «Ленивый» индекс 30 ноября 2006 Основы синтеза изображений 75
Проблемы интерактивной трассировки лучей n Эффективное устранение ступенчатости и блестящие (glossy) отражения q Нужно много лучей для корректного результата 30 ноября 2006 Основы синтеза изображений 76
Проблемы интерактивной трассировки лучей n Аппаратная поддержка q n Сейчас вся mainstream-поддержка разрабатывается под растеризацию Возможные решения q q Многоядерные CPU – перспективно! Cell: Нет кэша GPU: ограничения на поток управления Специальная аппаратура 30 ноября 2006 Основы синтеза изображений 77
Итоги n n n Трассировка лучей = быстрый поиск пересечения Трассировка vs. Растеризация Интерактивная трассировка лучей = оптимизация 30 ноября 2006 Основы синтеза изображений 78
Материалы n В презентации использованы слайды из курса “Interactive Ray Tracing”, представленнего на конференции SIGGRAPH’ 2005 30 ноября 2006 Основы синтеза изображений 79