Лекция 13 Метод трассировки лучей Астана 2004
Трассировка лучей через сферическую каплю воды Луч 7 -- луч Декарта [1637]
Прямая трассировка лучей Каждый источник света испускает лучи света в окружающее его пространство. Эти лучи распространяются в пространстве и часть из них покидает сцену (не внося никакого вклада в возникающее изображение), а часть падает на поверхности различных объектов сцены. Попав на поверхность объекта каждый луч порождает вторичные отраженные и преломленные лучи Часть лучей (очень небольшая!) попадает в глаз объектив камеры, формируя там изображение сцены.
Обратная трассировка лучей Будем отслеживать луч в обратном направлении – из объектива фотокамеры через заданный пиксел экрана. Обратная трассировка лучей отслеживает только лучи, вносящие значительный вклад в изображение
Диффузное и зеркальное отражения
Идеальное преломление v – скорость света в среде c – скорость света в вакууме
Полное внутреннее отражение Для некоторых углов падения при выходе из более плотной среды в менее плотную выражение под корнем может получиться отрицательным: Это соответствует случаю полного внутреннего отражения
Диффузное преломление Световая энергия равномерно рассеивается по всем направлениям соответствующего полупространства
Коэффициенты Френеля Доля отраженной энергии для диэлектрических материалов (по отношении к падающей энергии) описывается при помощи коэффициентов Френеля (Fresnel): Доля преломленной энергии (если не происходит полного внутреннего отражения):
Микрофасетная модель Поверхность объекта считается состоящей из множества бесконечно малых случайно ориентированных идеальных микрозеркал n – усредненная нормаль h – нормаль к микрограни – плотность распределения угла между n и h
BRDF (1/2) Доля световой энергии, покидающей точку Р в направлении вектора v и приходящей в эту точку вдоль направления l, задается следующей формулой: BRDF -- Bidirectional Reflection Distribution Function Затеняющее влияние соседних граней:
BRDF (2/2) Доля световой энергии, покидающей точку Р в направлении вектора v вычисляется как интеграл по всем направлениям: В большинстве случаев необходимости интегрировать по всей полусфере в большинстве случаев нет – основная световая энергия приходит из очень небольшого числа направлений, суммарный вклад всех остальных направлений крайне незначителен.
Основная модель трассировки лучей (1/2) 1 Будем считать, что источники света являются либо точечными, либо направленными. 2. Будем разделять (обрабатывать отдельно) первичную и вторичную освещенность. 3 Будем игнорировать зависимость коэффициентов преломления от длины волны 4. Будем считать, что непосредственная освещенность точки может быть представлена в виде суммы диффузной (diffuse) и зеркальной (specular) частей. 5. Для расчета вторичной освещенности, идещей за счет процессов отражения и преломления, будем считать, что имеет место лишь идеальное отражение и преломление.
Основная модель трассировки лучей (2/2) Конечное число направлений – направление на i-ый источник света, направление отраженного луча r и направление преломленного луча t.
Модель освещения (1/2) -интенсивность фонового освещения; -интенсивность i-го источника света; -интенсивность, приходящая по отраженному лучу; -освещенность, приносимая преломленным лучом; -цвет в точке P; -коэффициент фонового освещения; -коэффициент диффузного освещения;
Модель освещения (2/2) -вклад отраженного луча; -коэффициент зеркального освещения; -вклад преломленного луча; n-вектор внешней нормали в точке Р; -единичный вектор направления из точки Р на i-й источник света; -угол отражения (для отраженного луча); -угол преломления; -расстояние, пройденное отраженным лучом; -расстояние, пройденное преломленным лучом; -коэффициент ослабления для отраженного луча; -коэффициент ослабления для преломленного луча.
Модели Холла и Уиттеда Модель Холла: Модель Уиттеда:
Дерево лучей
Затенение объектов
Алгоритм трассировки лучей 1. Через каждый пиксел картинной плоскости выпускается луч в сцену и ищется точка его ближайшего пересечения с объектами сцены. Из этой точки выпускаются лучи ко всем источникам света (для определения их видимости), также выпускаются отраженный и преломленный лучи. 2. Для определения световой энергии, приходящей вдоль отраженного и преломленного лучей, каждый из этих лучей трассируется для определения точки ближайшего пересечения. Затем снова может потребоваться трассировки возникающих отраженных и преломленных лучей. 3. Критерии прекращения рекурсии: заданный уровень рекурсии или заданный вес луча.
Объекты CSG – луч 1. Найдем пересечение луча с каждым из объектов. 2. Применим к полученному семейству отрезков требуемую теоретико-множественную операцию.
CSG и нормали При построении результата теоретико-множественной разности двух объектов необходимо отслеживать правильное направление нормали
Текстурирование Закон наложения текстуры на поверхность объекта: Текстура определяет зависимость одного или нескольких параметров уравнения освещенности от текстурных координат (u,v) или (u,v,w). Параллельное, цилиндрическое и сферическое проецирование:
Процедурные текстуры Процедурная текстура определяет алгоритм вычисления одного или нескольких параметров по координатам (x,y,z) Пример: текстура дерева. Для большей реалистичности к текстуре желательно добавить шум. 1. Шум должен быть случайным 2. Шум должен быть функцией точки (x,y,z)
Шумовая функция Перлина - случайные единичные вектора, заданные в узлах целочисленной сетки
Примеры процедурных текстур
Функция Turbulence
Bump maps
Оптимизация трассировки лучей Использование ограничивающих тел: Использование иерархии ограничивающих тел: