45. Определение направления преломленного луча. - chrislvt/CG GitHub Wiki
В более сложных моделях освещения нам придется учитывать пропускающие свойства поверхностей, т.е. прозрачность этих поверхностей, что приводит к наличию преломленного луча. Для получения вектора преломленного луча воспользуемся законом преломления Снеллиуса, который утверждает, что падающий и преломленной лучи, а также вектор нормали лежат в одной плоскости, а углы падения и преломления связаны следующей формулой:
Как и в предыдущем случае, будем считать, что вектор преломления представляет собой линейную комбинацию вектора падающего света и вектора нормали, т.е.
Поскольку скалярное произведение единичных векторов численно равно косинусу угла между ними, то можно записать следующие два равенства:
Вычислим скалярное произведение единичного вектора преломления самого на себя, которое равно единице:
или
Заменив скалярное произведение вектора падающего света на нормаль через (2), получаем
Равенство (3) перепишем с учетом исходного выражения, определяющего значение вектора преломления:
или
Возведя (0) в квадрат и произведя замену , получим , после замены синуса на косинус получим или
Возведем теперь в квадрат (4) и, заменив неизвестное значение косинуса угла преломления на известное значение косинуса угла падения, получим:
Вычитая из (3) выражение (5), получаем
Из последнего уравнения получаем α = η (второй корень α = -η не подходит по физическому смыслу). Подставив полученное значение α в (5), получим уравнение
Решая это уравнение, получим следующие корни, определяющие неизвестное значение коэффициента
Из двух возможных значений из физического смысла следует взять меньший корень (отрицательный):
В последнем выражении под знаком квадратного корня может стоять отрицательная величина
Это будет означать полное внутреннее отражение, т.е. отсутствие преломленного луча при переходе из оптически более плотной среды в оптически менее плотную среду.