Свет в компьютерной графике. Отражение и преломление. Закон косинусов Ламберта.


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