45. Определение направления преломленного луча. - p1xelse/CG GitHub Wiki

В более сложных моделях освещения нам придется учитывать пропускающие свойства поверхностей, т.е. прозрачность этих поверхностей, что приводит к наличию преломленного луча. Для получения вектора преломленного луча воспользуемся законом преломления Снеллиуса, который утверждает, что падающий и преломленной лучи, а также вектор нормали лежат в одной плоскости, а углы падения и преломления связаны следующей формулой:

Как и в предыдущем случае, будем считать, что вектор преломления представляет собой линейную комбинацию вектора падающего света и вектора нормали, т.е.

Поскольку скалярное произведение единичных векторов численно равно косинусу угла между ними, то можно записать следующие два равенства:


Вычислим скалярное произведение единичного вектора преломления самого на себя, которое равно единице:

или

Заменив скалярное произведение вектора падающего света на нормаль через (2), получаем

Равенство (3) перепишем с учетом исходного выражения, определяющего значение вектора преломления:

или

Возведя (0) в квадрат и произведя замену , получим , после замены синуса на косинус получим или

Возведем теперь в квадрат (4) и, заменив неизвестное значение косинуса угла преломления на известное значение косинуса угла падения, получим:

Вычитая из (3) выражение (5), получаем

Из последнего уравнения получаем α = η (второй корень α = -η не подходит по физическому смыслу). Подставив полученное значение α в (5), получим уравнение

Решая это уравнение, получим следующие корни, определяющие неизвестное значение коэффициента

Из двух возможных значений из физического смысла следует взять меньший корень (отрицательный):

В последнем выражении под знаком квадратного корня может стоять отрицательная величина

Это будет означать полное внутреннее отражение, т.е. отсутствие преломленного луча при переходе из оптически более плотной среды в оптически менее плотную среду.

Этот же вывод от Курова

image

⚠️ **GitHub.com Fallback** ⚠️