Рассмотрим реальную сцену (Рис.1) состоящую из источника света и ряда объектов. Свет, распространяясь от источника по прямым линиям может изменять свое направление. При этом, в зависимости от типа объекта через который проходят лучи, свет может преломиться, уйти внутрь или отразиться. Процесс идет непрерывно, пока часть в конце концов не попадет в глаз наблюдателя, формируя изображение на сетчатке глаза. Если поместить воображаемую плоскость перед глазом, то, проходя через нее, каждый луч пересекает свою точку, оставив соответвующее изображение на ней. Поэтому, для определения построенного образа достаточно проследить ход лучей.
Для описания этого процесса нужно построить на деле строят схематическую модель хода (трассировки) лучей. При попадании луча на границу отслеживают, как их, так и вторичные лучи (порожденные в ходе преломления или отражения). Главная идея метода трассировки лучей заключается в том, что наблюдатель видит любой объект посредством испускаемого неким источником света, который падает на объект, и затем каким-то образом доходящим до наблюдателя. При этом не учитывается характер поверхности объектов, в связи с чем его называют методом грубой силы.
Существует два типа процесса:
1) прямая трассировка лучей (дает возможность получить описание сцены, но требует значительных вычислительных затрат);
2) обратная трассировка лучей (ход лучей от наблюдателя к объекту).
Цвет точки экрана будет определяться долей световой энергии попавшей и покинувшей точку в направлении глаза. Для определения энергии надо определить освещенность точки экрана. Определение освещенности и той части световой энергии, которая уходит и является ключевой задачей метода. Энергия складывается из непосредственной первичной освещенности (энергии получаемой от источников) и вторичный (энергии поступающей от других объектов). Отбрасываемая энергия состоит из той энергии, которая отражается или преломляется в заданном направлении.
Некотрые сведения из физики процесса распространения света.
Свет — физическое явление, обладающее дуализмом (поток частиц распространяющихся по прямолинейным траекториям и в то же время электромагнитные волны). Интенсивность света определяется амплитудой волны, цвет — частотой или длиной волны. Математически описывается уравнениями Максвелла.
Произвольный луч — сумма волн с разными длинами, распространяющихся в одном направлении. Вклад волны с длиной l определяется функцией I(l), т.е. функцией спектральной кривой (характеристикой) данного луча света.
В реальности человеческий глаз воспринимает цвет от множества источников с разными I(l). Однако при анализе ограничиваются конечным набором значений l, используя комбинации базовых (RED, GREEN, BLUE) цветов.
Процесс распространения света состоит из двух частей:
— распространения света в однородной среде;
— взаимодействие с границей раздела сред.
В однородной среде свет распространяется вдоль прямой с V=CONST. Отношение скорости света в вакууме к этой скорости — коэффициент преломления (индекс рефракции) среды h. Обычно он зависит от l.
При распространении в среде присутствует экспоненциальное затухание с коэффициентом e-bl, где l — расстояние, пройденное лучом в среде, а b — коэффициент затухания.
При взаимодействии с границей происходит отражение или преломление. Ситуации для идеальных моделей, с плоской границей, могут быть следующими:
1. Зеркальное отражение (Рис.2). Отраженный луч падает в точку P в направлении i и полностью отражается в направлении r согласно закону -r , i , n ? одной плоскости, q i = q r. Здесь n – единичный вектор внешней нормали к поверхности r = i — 2(i , n)n
2. Диффузное отражение.
Идеальный вариант описывается законом Ламберта, согласно которому падающий свет распространяется во все стороны с I = const. Все направления равноправны и освещенность пропорциональна доле площади, видимой от источника.
3. Идеальное преломление. Луч, падающий в точку P в направлении вектора I преломляется внутри второй среды в направлении t по закону Снеллиуса. Справедливо соотношение для углов: hisinqi = h tsinqt
4. Диффузное преломление.
Аналогично диффузному отражению, но при этом уже преломленный луч идет по всем направлениям t : (t , n) < 0 с одинаковой интенсивностью.
Рассмотрим распределениесветовой энергии при отражениии и преломлении. Известно, что доля отраженной энергии задается коэффициентами Френеля
— применяется для диэлектриков
— применяется для проводников, причем — индекс поглощения
На практике имеем объекты состоящие из множества случайно ориентированных микрограней, с заданным законом распределения (Рис.3). Здесь n — нормаль к поверхности (ее средней линии), h — вектор нормали к микрограни, a — угол между ними (a=arccos(n,h)).
Для описания поверхности используем функцию D(a), задающую плотность рапределения случайной величины a (для гладкой поверхности D(a) совпадает с — функцией Дирака). Существует несколько моделей D(a):
— рапределение Гаусса; — рапределение Бекмена
Параметр m характеризует степень неровности поверхности (чем меньше, тем более гладкая).
Рассмотрим отражение луча света, падающего в т.P вдоль направления, задаваемого вектором l. Пусть n — вектор внешней нормали к поверхности. Ввиду разной ориентации граней, напрвление отраженных лучей различно. Определим долю энергии уходящей в направлении V для т.P. Нормаль в этой точке должна удовлетворять условию:
. Доля отраженной энергии определится коэффициентом Френеля Fr(l,q), где q = arccos (h, V) = arccos (h, l). Кроме этого воздействие соседних микрограней будет вызывать затеняющее действие, и описывается функцией:
. В итоге результирующая интенсивность определится формулой:
. Для того чтобы практически расчитать величину отраженной энергии вводят ряд ограничений на описываемую сцену:
— источники света точечные;
-при трассировании преломленного луча мгнорируется зависимость его направления от длины волны;
-освещенность объекты состоит из зеркальной и диффузной частей с заданными весами;
-для компенсации неучитываемых величин введем т.н. фоновое освещение — равномерное освещение со всех сторон.
Ввиду сложности формулы на практике используют более простые модели. Например, модель Холла: или модель Уиттеда (с применением интерполяции для нахождения коэффициентов Френеля в сочетании с табличным методом задания):
Тем самым приходим к следующей схеме трассировки лучей: через каждый пиксел экрана луч трассируется до ближайшего пересечения с объектами сцены. Из точки пересечения выпускаются ко всем источникам света для проверки их видимости и определения непосредственной освещенности точки пересечения. Выпускаются также отраженный и преломленный лучи, которые трассируются, в свою очередь, до ближайшего пересечения с объектами сцены, и так далее. Получается рекурсивный алгоритм трассировки. Критерием остановки процесса обычно используется отсечение по глубине (не более заданного количества уровней рекурсии) и по весу (чем дальше, тем меньше вклад каждого луча в итоговый цвет пиксела, и, как только этот вклад опускается ниже некоторого порога, дальнейшая трассировка прекращается).