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