Скачать презентацию Интерактивная Компьютерная Графика Часть 4 -3 трассировка лучей Скачать презентацию Интерактивная Компьютерная Графика Часть 4 -3 трассировка лучей

Часть 4-3.ppt

  • Количество слайдов: 26

Интерактивная Компьютерная Графика Часть 4 -3 (трассировка лучей) Интерактивная Компьютерная Графика Часть 4 -3 (трассировка лучей)

Прямая трассировка (Direct Ray Tracing) Прямая трассировка (Direct Ray Tracing)

Обратная трассировка (Reverse Ray Tracing) Обратная трассировка (Reverse Ray Tracing)

Обратная трассировка Через каждый пиксель пускаем луч Находим ближайшую точку пересечения Рассчитываем нормаль в Обратная трассировка Через каждый пиксель пускаем луч Находим ближайшую точку пересечения Рассчитываем нормаль в этой точке Рассчитываем освещенность (например, по Фонгу) Учитываем в цвете и материал объекта Призма Строим лучи к зеркальным/преломляющим объектам и перерасчитываем освещенность Зеркало

Обратная трассировка (код на визитке) Обратная трассировка (код на визитке)

v Eye Задание наблюдателя q - положение (Eye) - ориентация (u, v, w) - v Eye Задание наблюдателя q - положение (Eye) - ориентация (u, v, w) - угол зрения (q) - форматное отношение поля зрения: w u N Координаты (r, c)-пиксела: Уравнение луча: t<0 – объект за наблюдателем 0

Пересечение луча с объектом Объект задан Полигональной сеткой 1. Ищем пересечение с плоскостью грани Пересечение луча с объектом Объект задан Полигональной сеткой 1. Ищем пересечение с плоскостью грани 2. Проверяем, что точка принадлежит многоугольнику аналитически неявной функцией F(x, y, z)=0 Решаем уравнение F ( x(t) , y(t) , z(t) ) = 0 относительно t Лучше, если F(x, y, z) имеет наиболее простой вид (канонический вид) Вместо пересечения исходного луча с преобразованным объектом ищут пересечение обратно преобразованного луча с каноническим объектом:

Пересечение луча с объектом Сфера Плоскость Пересечение луча с объектом Сфера Плоскость

Пересечение луча с объектом (конический цилиндр) s=1 – цилиндр s=0 – конус Для боковой Пересечение луча с объектом (конический цилиндр) s=1 – цилиндр s=0 – конус Для боковой поверхности: Для нижнего основания: Для верхнего основания:

Оптимизация трассировки лучей Использование охватывающих оболочек (экстентов): Использование иерархии ограничивающих тел: Оптимизация трассировки лучей Использование охватывающих оболочек (экстентов): Использование иерархии ограничивающих тел:

Достоинства и недостатки обратной трассировки лучей (+) Корректно обрабатывает ü тени ü отражения ü Достоинства и недостатки обратной трассировки лучей (+) Корректно обрабатывает ü тени ü отражения ü преломление ü полупрозрачные объекты (+) Может работать с неполигональными объектами (–) Затратность (–) Нет возможности вычисления вторичного освещения

Достоинства и недостатки обратной трассировки лучей (+) Корректно обрабатывает: ü тени ü отражения ü Достоинства и недостатки обратной трассировки лучей (+) Корректно обрабатывает: ü тени ü отражения ü преломления ü полупрозрачные объекты (+) Может работать с неполигональными объектами (–) Затратность (–) Нет возможности вычисления вторичного освещения

Проблемы трассировки лучей ü Солнца нет (скрыто за облаками) → освещение почти полностью рассеянное Проблемы трассировки лучей ü Солнца нет (скрыто за облаками) → освещение почти полностью рассеянное ü Теней вообще нет (дальние деревья просто скрываются в темноте чащи леса ü Рябь на воде

Проблемы трассировки лучей Отображение сцены с помощью стандартной растеризации 1. Деревья: ü модели стволов Проблемы трассировки лучей Отображение сцены с помощью стандартной растеризации 1. Деревья: ü модели стволов и основных веток изобразить с помощью треугольников ü ветки изобразить спрайтами ü дальние деревья скрыть туманом 2. Вода: ü отрендерить сцену с точки зрения воды – и наложить ее текстурой ü рябь на воде сымитировать искажением текстуры или Texture Mapping

Проблемы трассировки лучей Отображение сцены с помощью трассировки лучей 1. Деревья: ü каждый луч Проблемы трассировки лучей Отображение сцены с помощью трассировки лучей 1. Деревья: ü каждый луч придется пересекать с массой объектов (мелких веточек, листиков, …. ) 2. Освещение: ü нельзя просто провести луч к Солнцу и проверить на затенение ü нужно учесть множество отражений от деревьев, листвы, воды ü придется пускать много лучей в разные стороны и учитывать многочисленные рассеивания/отражения/поглощения 3. Вода: ü Из-за кривизны поверхности придется пускать много лучей через пиксель → но отражения получатся достоверными

Пример в real-time Особенности: ü только один автомобиль (Bugatti) Демонстрация в 2009 г. от Пример в real-time Особенности: ü только один автомобиль (Bugatti) Демонстрация в 2009 г. от Nvidia в режиме real-time на совокупности нескольких четырёхпроцессорных профессиональных карт

Пример в real-time Главные проблемы: ü рассеивание в приповерхностном слое кожи ü неровность кожи Пример в real-time Главные проблемы: ü рассеивание в приповерхностном слое кожи ü неровность кожи ü волоски на теле Демонстрация в 2010 г. от Intel в режиме real-time на совокупности систем большой мощности

Пример в real-time Anti. Planet 2 - мир сфер динамические освещение и тени корректная Пример в real-time Anti. Planet 2 - мир сфер динамические освещение и тени корректная прозрачность real-time на обычной системе: • 2 х ядерный процессор • видеокарта класса Ge. Force GTX + Nvidia CUDA

Трассировка первичных лучей (ray casting) трассировка только первичных лучей (пришедших напрямую от источника) трассировка Трассировка первичных лучей (ray casting) трассировка только первичных лучей (пришедших напрямую от источника) трассировка и вторичных лучей (отраженных и преломленных)

Трассировка путей (path tracing) При попадании луча на поверхность испускается два новых луча: один Трассировка путей (path tracing) При попадании луча на поверхность испускается два новых луча: один - в произвольном направлении, а другой – до источника света

Трассировка путей (MLT и BDPT ) Bidirectional Path Tracing (испускает лучи одновременно от источника Трассировка путей (MLT и BDPT ) Bidirectional Path Tracing (испускает лучи одновременно от источника света и из камеры) Metropolis Light Transport (учитывает значимость луча)

Излучательность (radiosity ) Ограничения: 1. весь свет – диффузионный 2. система – замкнута (суммарная Излучательность (radiosity ) Ограничения: 1. весь свет – диффузионный 2. система – замкнута (суммарная энергия в системе должна сохраняться ) Алгоритм: 1. все поверхности сцены делятся на патчи (фрагменты, элементарные единицы) 2. для каждого патча итерационно вычисляется доля излученной и поглощенной энергии

Фотонные карты (Photon mapping ) Алгоритм: 1. Испускаются лучи (фотоны) от источника • при Фотонные карты (Photon mapping ) Алгоритм: 1. Испускаются лучи (фотоны) от источника • при столкновении с поверхностями, фотоны отдают часть своей энергии и отражаются в некотором направлении • информация о полученной поверхностями энергии сохраняется в так называемой фотонной карте 2. Испускаются лучи из камеры • при попадании луча на поверхность интенсивность рассчитывается исходя из ближайших значений в фотонной карте

Растеризация Растеризация

Растеризация Растеризация