3.5. ИЗОБРАЖЕНИЕ ЗЕРКАЛЬНЫХ И ПРЕЛОМЛЯЮЩИХ ПОВЕРХНОСТЕЙТрассирование лучей является единственным пригодным инструментом изображения зеркальных и преломляющих поверхностей, что связано с высокой степенью адекватности модели реальным оптическим процессам. В оптике луч (рис.3.5.1), исходящий из источника света и падающий на некоторую поверхность 1, расщепляется на преломленный 1п, отраженный 1з и множество диффузных 1д. Каждый из этих дочерних лучей при встрече с очередной поверхностью вновь дробится на новые вторичные лучи, например, преломленный луч 1п дробится на 2з, 2п и серию лучей 2д. В рецептор наблюдательной системы попадает лишь малая часть циркулирующих в сцене лучей, которые также являются преломленными, отраженными и диффузно рассеянными от участка поверхности, видимого рецептором. Рис. 3.5.1. Расщепление луча, излучаемого источником света Метод трассирования лучей повторяет природу, но в обратном направлении распространения света – от рецептора к объекту, что вполне корректно из-за известного принципа обратимости хода светового луча [8]. Для изображения поверхностей, обладающих одновременно диффузными, зеркальными и преломляющими свойствами, в модели отслеживаются пути светового луча по направлению рецептор – центр проекции – ближайшая поверхность, вторичные лучи – очередная ближайшая поверхность – очередные вторичные лучи и т.д. К сожалению, диффузное отражение приводит к появлению бесконечного числа лучей [8], оттрассировать которые невозможно. Поэтому диффузное отражение не учитывают вовсе или учитывают только для первой к рецептору поверхности. В последнем случае освещенность рассеянного света вычисляют по закону Ламберта. Вторичные лучи, состоящие из зеркальных и преломленных, вновь пересекаются с ближайшими к нам поверхностями, и каждый вновь расщепляется на два (рис.3.5.2). Таким образом, путь луча представляется ветвящимся деревом, "загущенность кроны" которого пропорциональна числу объектов в сцене. Каждый отщепившийся луч ни в природе, ни в модели не отслеживается бесконечно долго: дальнейшее ветвление трассы луча прекращается, когда луч выходит за пределы сцены, или встречается с непрозрачным диффузно рассеивающим телом, или попадает в источник света либо когда интенсивность луча падает ниже порога чувствительности или, наконец, когда число пересечений луча становится слишком большим как для памяти машины, так и для счета. Рис. 3.5.2. Расщепление луча по пути от рецептора к источнику света Многократно зеркально отражающиеся и преломляющиеся лучи на каждом очередном шаге ветвления процесса требуют определения своего пространственного положения. Ниже приводятся правила определения направления преломленного луча и угла зеркальности. Определение вектора преломленного луча. Для определения трассы луча после прохождения границы двух сред с разными показателями преломления и (рис.3.5.3) необходимо определить вектор по известному единичному вектору внешней нормали и направлению единичного вектора на источник падающего луча. В соответствии с рис.3.5.3 [77] можно показать, что , . Так как , (закон синусов [8]), , то можно окончательно получить , (3.5.1) где . Рис. 3.5.3. Преломление луча на границе двух оптически разнородных сред В скалярной форме для компонент вектора справедливы следующие соотношения: ; ; , где ; . Последние выражения получены путем подстановки в (3.5.1) следующих компонент, слагающих основную формулу: , тогда , . Окончательно получаем, вводя обозначение: тогда ; ; . Вычисление вектора и угла зеркальности. Углом зеркальности будем называть угол между текущим лучом визирования и направлением распространения зеркально отраженного луча. Угол зеркальности показывает, на сколько в угловой мере отклонен светочувствительный приемник от положения зеркального луча наибольшей мощности. Световая энергия убывает с увеличением по закону, близкому к зависимости . В машинной графике определение освещенности рецепторов от зеркально отражающих поверхностей производится посредством вычисления значения . Существует несколько способов такого расчета [77,63]. Приведем один из вычислительно простых. Обозначим: – центр рецептора в объектной СК; – точка, видимая из этого рецептора на поверхности; – внешняя нормаль к поверхности в видимой точке; – положение источника света. Введем векторы: , . На рис. 3.5.4 показаны данные векторы в плоскости, проходящей через падающий луч и нормаль . Из законов геометрической оптики известно, что отраженный луч также лежит в этой плоскости и может быть вычислен по правилу [61]: . Раскрывая векторную форму, можно получить где . Рис. 3.5.4. Положение векторов при зеркальном отражении Угол между зеркально отраженным лучом и направлением на текущий рецептор определяется по формуле или в скалярной форме где . В программе BETTA (см. приложение) приведены реализация алгоритма вычисления косинуса зеркального угла по известным направлениям: нормали, на источник и на приемник света.
|