На самом деле, компоненты diffuse и specular в этом уравнении для большей реалистичности с точки зрения физики надо разделить на квадрат расстояния до источника света, но обычно этим пренебрегают.
Ослабление света в прозрачной среде учитывается делением на коэффициент
k = exp(beta * l),
где
k | коэффициент ослабления |
beta | коэффициент прозрачности среды |
l | длина пути внутри среды |
Наконец, преломляется луч света по следующему закону:
sin(b) = n1 * sin(a) / n2,
где
a | угол между падающим лучом L и нормалью N |
b | угол между преломленным лучом L' и нормалью N |
n1 | коэффициент преломления среды, в которой проходит луч L |
n2 | коэффициент преломления среды, в которой проходит луч L' |
Вот иллюстрация.
Для воздуха считают beta = 0, n = 1; для всех остальных сред обычно beta > 0, n > 1. Надо отметить, что все эти коэффициенты (отражения, преломления, прозрачности) различны для каждой из трех цветовых компонент R, G, B.