Курсовая работа: Построение реалистичного изображения методом обратной трассировки лучей
Для зеркальности:
Id=∑I(l)cosα,
где p – показатель степени от единицы до нескольких сотен (согласно модели Фонга), α – угол между отраженным лучом (обратной трассировки) и направлением на i-й источник света.
Надо заметить, что в модели Уиттеда в чистом виде есть один существенный недостаток. Дело в том, что доля световой энергии отраженной от поверхности объекта зависит от угла падения и преломления. Например, если смотреть вдоль поверхности стекла, то доля отраженного света повысится, а преломленного понизится. Но в модели Уиттеда коэффициенты, отражающие доли интенсивности отраженного и преломленного света в суммарной интенсивности точки поверхности объекта задаются константами (не зависят от угла). В большинстве случаев это дает приемлемый результат. Но при моделировании стекла мы встречаемся с эффектом полного внутреннего отражения. Некоторые лучи света не могут выйти из толщи стекла за заданное фиксированное число итераций. В результате этого по краям стакана возникает четкая черная полоса. Если учесть зависимость интенсивности отраженного и преломленного света от углов падения и преломления, то эффект будет намного более реалистичным. Края черной области размоются.
Для вычисления коэффициента при интенсивности отраженного луча используется следующая формула:
r = 0.5(cos α - Ncos β)2 /(cos α + Ncos β)2 + 0.5(Ncos α – cos β)2 /(Ncos α + cos β)2 ,
где α – угол падения луча, β – угол преломления луча, N – относительный показатель преломления двух сред.
Коэффициент при интенсивности преломленного луча вычисляется по формуле:
t = 1 – r.
Схема рассчета интенсивности. параметры, задающие свойства тел
В связи с недостатками модели Уиттеда в этой программе предлагается следующая система вычисления интенсивности света в точке.
Интенсивность света складывается из интенсивности фоновой подсветки сцены, интенсивности диффузно отраженного света источников, интенсивности бликов от источников («локальные» характеристики освещенности), интенсивности зеркально отраженного луча и интенсивности преломленного луча, если таковые имеются.
Интенсивность фоновой подсветки (IA ) задается некоторой константой.
Интенсивность диффузно отраженного света (ID ) вычисляется по классическому «закону косинуса».
ID = IL cos α,
где IL – интенсивность источника света, α – угол между нормалью к поверхности и направлением на источник.
В случае освещения сцены несколькими источниками Id вычисляется для каждого из них и затем суммируются.
IDi =Σ ILi cos αi .
Интенсивность блика от источника (IS ) вычисляется в соответствии с моделью Фонга.
S = IL cosp β,
где IL – интенсивность источника света (0<=IL <=1), β – угол между отраженным лучом от источника света и направлением на точку, в которой расположена камера (центр проекции), p – некоторая степень от 1 до 200 –влияет на размытость блика. При маленьких значениях p блик более размытый.
Как и при вычислении ID в случае освещения сцены несколькими источниками IS вычисляется отдельно для каждого источника, а затем результаты суммируются.
Si =Σ ILi cosp β i .
Интенсивности зеркально отраженного (IR ) и преломленного (IT ) света рассчитываются для отраженного и преломленного лучей на следующем шаге рекурсии. Если достигнут предел глубины рекурсии, то эти интенсивности берутся нулевыми. От интенсивности IR берется r процентов, а от IT – t = 1 – r (см. предыдущий раздел).
Кроме того, вводятся следующие коэффициенты: KD – коэффициент диффузного отражения поверхности, KS – коэффициент блика.
KD – этот коэффициент является характеристикой неровности отражающей поверхности. Чем больше неровность поверхности, тем меньше света отражается от неё зеркально и меньше света она пропускает, и соответственно больше света она отражает диффузно. 0 <= KD <= 1.
При KD = 0 - весь свет, падающий на поверхность, отражается и преломляется. KD = 1 - весь свет отражается диффузно. На этот коэффициент умножаются интенсивность диффузно отраженного света и интенсивность фоновой подсветки. Интенсивности зеркально отраженного и преломленного света умножаются на (1 – KD ).
KS – этот коэффициент отвечает за яркость блика от источника. 0<=KS<=1. При KS = 0 - блик не виден, при KS = 1 – яркость блика максимальна.
Таким образом, окончательная формула для расчета интенсивности объекта в какой-либо точке будет выглядеть следующим образом: