Читать в оригинале

<< Предыдущая Оглавление Следующая >>


3.5. ИЗОБРАЖЕНИЕ ЗЕРКАЛЬНЫХ И ПРЕЛОМЛЯЮЩИХ ПОВЕРХНОСТЕЙ

Трассирование лучей является единственным пригодным инструментом изображения зеркальных и преломляющих поверхностей, что связано с высокой степенью адекватности модели реальным оптическим процессам. В оптике луч  (рис.3.5.1), исходящий из источника света и падающий на некоторую поверхность 1, расщепляется на преломленный 1п, отраженный 1з и множество диффузных 1д. Каждый из этих дочерних лучей при встрече с очередной поверхностью вновь дробится на новые вторичные лучи, например, преломленный луч 1п дробится на 2з, 2п и серию лучей 2д. В рецептор наблюдательной системы попадает лишь малая часть циркулирующих в сцене лучей, которые также являются преломленными, отраженными и диффузно рассеянными от участка поверхности, видимого рецептором.

108.jpg

Рис. 3.5.1. Расщепление луча, излучаемого источником света

Метод трассирования лучей повторяет природу, но в обратном направлении распространения света – от рецептора к объекту, что вполне корректно из-за известного принципа обратимости хода светового луча [8]. Для изображения поверхностей, обладающих одновременно диффузными, зеркальными и преломляющими свойствами, в модели отслеживаются пути светового луча по направлению рецептор – центр проекции – ближайшая поверхность, вторичные лучи – очередная ближайшая поверхность – очередные вторичные лучи и т.д. К сожалению, диффузное отражение приводит к появлению бесконечного числа лучей [8], оттрассировать которые невозможно. Поэтому диффузное отражение не учитывают вовсе или учитывают только для первой к рецептору поверхности. В последнем случае освещенность рассеянного света вычисляют по закону Ламберта. Вторичные лучи, состоящие из зеркальных и преломленных, вновь пересекаются с ближайшими к нам поверхностями, и каждый вновь расщепляется на два (рис.3.5.2). Таким образом, путь луча представляется ветвящимся деревом, "загущенность кроны" которого пропорциональна числу объектов в сцене. Каждый отщепившийся луч ни в природе, ни в модели не отслеживается бесконечно долго: дальнейшее ветвление трассы луча прекращается, когда луч выходит за пределы сцены, или встречается с непрозрачным диффузно рассеивающим телом, или попадает в источник света либо когда интенсивность луча падает ниже порога чувствительности или, наконец, когда число пересечений луча становится слишком большим как для памяти машины, так и для счета.

109.jpg

Рис. 3.5.2. Расщепление луча по пути от рецептора к источнику света

Многократно зеркально отражающиеся и преломляющиеся лучи на каждом очередном шаге ветвления процесса требуют определения своего пространственного положения. Ниже приводятся правила определения направления преломленного луча и угла зеркальности.

Определение вектора преломленного луча. Для определения трассы луча после прохождения границы двух сред с разными показателями преломления  и  (рис.3.5.3) необходимо определить вектор  по известному единичному вектору внешней нормали  и направлению единичного вектора  на источник падающего луча. В соответствии с рис.3.5.3 [77] можно показать, что , . Так как ,  (закон синусов [8]), , то можно окончательно получить

,                     (3.5.1)

где .

110.jpg

Рис. 3.5.3. Преломление луча на границе двух оптически разнородных сред

В скалярной форме для компонент вектора  справедливы следующие соотношения: ; ; , где

 ;

 . Последние выражения получены путем подстановки в (3.5.1) следующих компонент, слагающих основную формулу:

,

тогда

, .

Окончательно получаем, вводя обозначение:

тогда

; ; .

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

В машинной графике определение освещенности рецепторов от зеркально отражающих поверхностей производится посредством вычисления значения . Существует несколько способов такого расчета [77,63]. Приведем один из вычислительно простых. Обозначим:  – центр рецептора в объектной СК;  – точка, видимая из этого рецептора на поверхности;  – внешняя нормаль к поверхности в видимой точке;  – положение источника света. Введем векторы: , . На рис. 3.5.4 показаны данные векторы в плоскости, проходящей через падающий луч  и нормаль . Из законов геометрической оптики известно, что отраженный луч  также лежит в этой плоскости и может быть вычислен по правилу [61]: . Раскрывая векторную форму, можно получить

где .

111.jpg

Рис. 3.5.4. Положение векторов при зеркальном отражении

Угол  между зеркально отраженным лучом  и направлением на текущий рецептор  определяется по формуле  или в скалярной форме

где .

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

 



<< Предыдущая Оглавление Следующая >>