Часть 4-3.ppt
- Количество слайдов: 26
Интерактивная Компьютерная Графика Часть 4 -3 (трассировка лучей)
Прямая трассировка (Direct Ray Tracing)
Обратная трассировка (Reverse Ray Tracing)
Обратная трассировка Через каждый пиксель пускаем луч Находим ближайшую точку пересечения Рассчитываем нормаль в этой точке Рассчитываем освещенность (например, по Фонгу) Учитываем в цвете и материал объекта Призма Строим лучи к зеркальным/преломляющим объектам и перерасчитываем освещенность Зеркало
Обратная трассировка (код на визитке)
v Eye Задание наблюдателя q - положение (Eye) - ориентация (u, v, w) - угол зрения (q) - форматное отношение поля зрения: w u N Координаты (r, c)-пиксела: Уравнение луча: t<0 – объект за наблюдателем 0
Пересечение луча с объектом Объект задан Полигональной сеткой 1. Ищем пересечение с плоскостью грани 2. Проверяем, что точка принадлежит многоугольнику аналитически неявной функцией F(x, y, z)=0 Решаем уравнение F ( x(t) , y(t) , z(t) ) = 0 относительно t Лучше, если F(x, y, z) имеет наиболее простой вид (канонический вид) Вместо пересечения исходного луча с преобразованным объектом ищут пересечение обратно преобразованного луча с каноническим объектом:
Пересечение луча с объектом Сфера Плоскость
Пересечение луча с объектом (конический цилиндр) s=1 – цилиндр s=0 – конус Для боковой поверхности: Для нижнего основания: Для верхнего основания:
Оптимизация трассировки лучей Использование охватывающих оболочек (экстентов): Использование иерархии ограничивающих тел:
Достоинства и недостатки обратной трассировки лучей (+) Корректно обрабатывает ü тени ü отражения ü преломление ü полупрозрачные объекты (+) Может работать с неполигональными объектами (–) Затратность (–) Нет возможности вычисления вторичного освещения
Достоинства и недостатки обратной трассировки лучей (+) Корректно обрабатывает: ü тени ü отражения ü преломления ü полупрозрачные объекты (+) Может работать с неполигональными объектами (–) Затратность (–) Нет возможности вычисления вторичного освещения
Проблемы трассировки лучей ü Солнца нет (скрыто за облаками) → освещение почти полностью рассеянное ü Теней вообще нет (дальние деревья просто скрываются в темноте чащи леса ü Рябь на воде
Проблемы трассировки лучей Отображение сцены с помощью стандартной растеризации 1. Деревья: ü модели стволов и основных веток изобразить с помощью треугольников ü ветки изобразить спрайтами ü дальние деревья скрыть туманом 2. Вода: ü отрендерить сцену с точки зрения воды – и наложить ее текстурой ü рябь на воде сымитировать искажением текстуры или Texture Mapping
Проблемы трассировки лучей Отображение сцены с помощью трассировки лучей 1. Деревья: ü каждый луч придется пересекать с массой объектов (мелких веточек, листиков, …. ) 2. Освещение: ü нельзя просто провести луч к Солнцу и проверить на затенение ü нужно учесть множество отражений от деревьев, листвы, воды ü придется пускать много лучей в разные стороны и учитывать многочисленные рассеивания/отражения/поглощения 3. Вода: ü Из-за кривизны поверхности придется пускать много лучей через пиксель → но отражения получатся достоверными
Пример в real-time Особенности: ü только один автомобиль (Bugatti) Демонстрация в 2009 г. от Nvidia в режиме real-time на совокупности нескольких четырёхпроцессорных профессиональных карт
Пример в real-time Главные проблемы: ü рассеивание в приповерхностном слое кожи ü неровность кожи ü волоски на теле Демонстрация в 2010 г. от Intel в режиме real-time на совокупности систем большой мощности
Пример в real-time Anti. Planet 2 - мир сфер динамические освещение и тени корректная прозрачность real-time на обычной системе: • 2 х ядерный процессор • видеокарта класса Ge. Force GTX + Nvidia CUDA
Трассировка первичных лучей (ray casting) трассировка только первичных лучей (пришедших напрямую от источника) трассировка и вторичных лучей (отраженных и преломленных)
Трассировка путей (path tracing) При попадании луча на поверхность испускается два новых луча: один - в произвольном направлении, а другой – до источника света
Трассировка путей (MLT и BDPT ) Bidirectional Path Tracing (испускает лучи одновременно от источника света и из камеры) Metropolis Light Transport (учитывает значимость луча)
Излучательность (radiosity ) Ограничения: 1. весь свет – диффузионный 2. система – замкнута (суммарная энергия в системе должна сохраняться ) Алгоритм: 1. все поверхности сцены делятся на патчи (фрагменты, элементарные единицы) 2. для каждого патча итерационно вычисляется доля излученной и поглощенной энергии
Фотонные карты (Photon mapping ) Алгоритм: 1. Испускаются лучи (фотоны) от источника • при столкновении с поверхностями, фотоны отдают часть своей энергии и отражаются в некотором направлении • информация о полученной поверхностями энергии сохраняется в так называемой фотонной карте 2. Испускаются лучи из камеры • при попадании луча на поверхность интенсивность рассчитывается исходя из ближайших значений в фотонной карте
Растеризация
Растеризация


