УДК 681.3.513
Е.А. Никулин
КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ ОПТИЧЕСКИХ ЭФФЕКТОВ
Нижегородский государственный технический университет им. Р.Е. Алексеева
Модернизированы формулы, методы и алгоритмы построения высокореалистичных изображений сцен как с простыми, так и сложными оптическими эффектами: глобальным освещением, полутенями, многократными отражениями и преломлениями. Направления лучей в пересекающихся объектах определяются с помощью приоритетного стека трассировки.
Ключевые слова: освещение, тень, отражение, преломление, трассировка лучей, стек, приоритет.
Создание фотореалистичных изображений сложных сцен, включающих множество объектов и источников освещения с разнообразными оптическими свойствами, невозможно без изучения физических процессов взаимодействия света с материалами и средами распространения, а также без разработки и использования адекватных этим процессам моделей и алгоритмов.
Целью компьютерного моделирования оптических процессов является получение изображения, в котором цвет каждого пиксела рассчитан с учетом суммарной световой энергии, пришедшей в соответствующий светочувствительный рецептор наблюдателя.
Наибольшими возможностями моделирования распространения света обладает метод трассировки лучей (МТЛ). В его обратном варианте от наблюдателя проводятся первичные лучи pj + Vjt, приведенные к центрам каждого из n х m рецепторов виртуальной проективной плоскости pj (рис. 1). В зависимости от удаленности наблюдателя от сцены выбираются формулы расчета вектора направления луча Vj и проекции сцены:
• в сцене с дальним наблюдателем, удаленным в бесконечность по вектору S, все лучи с параметром t е (-да, да) идут в одном и том же направлении Vj = -S, образуя параллельную проекцию сцены. Лучи, проходящие через угловые рецепторы проективной плоскости, ограничивают призму видимости с двумя бесконечно удаленными основаниями;
• в сцене с ближним наблюдателем все лучи выходят из точки S и идут в разных направлениях Vj = pj - S с параметром t е (-1, да), создавая перспективную проекцию. Угловые лучи ограничивают пирамиду видимости с вершиной S и бесконечно удаленным основанием.
Рис. 1. Обратная трассировка лучей:
а - дальний наблюдатель; б - ближний наблюдатель
Рассмотрим задачи, решаемые компьютерной трассировкой световых лучей на основе трех законов геометрической оптики [ 1 ] (четвертый закон обратимости хода луча положен в
© Никулин Е.А., 2011.
основу выбора направления трассировки - обратного ходу реальных лучей), а также их способность моделировать простые оптические эффекты.
1. Распространение луча в однородной среде по принципу Ферма происходит прямолинейно. Отсюда возникает первая и главная в МТЛ комплексная задача: нахождение точек пересечения лучей с объектами сцены. В этот комплекс входят:
• расчет параметров и точек пересечения неограниченной прямой с неограниченными поверхностями объектов сцены;
• тест принадлежности одного из параметров I интервалу определения луча О^
• тест принадлежности найденных точек ограниченным областям поверхностей П;
• выбор из множества точек пересечений луча с разными поверхностями ближайшей к его началу точки q с минимальным значением параметра V,
• расчет вектора нормали N в точке q ближайшей поверхности.
Пересечение луча = р + Vt, I е Оь с поверхностью, описываемой неявной моделью У^) = 0, находится решением уравнения У(р + У^ = 0 относительно параметра t, проверкой условия t е Qt и получением искомой точки q = 1(^. Как показано на рис. 2, а, одни лучи (7) могут проходить мимо поверхности (тогда уравнение не имеет действительного решения), другие (2) удаляются от нее (уравнение имеет недопустимое решение t £ О^. Если же решение допустимо, но не единственно, то луч (3) пересекает поверхность в нескольких точках, из которых берется ближайшая к началу луча с минимальным параметром t. Пересечение лучом (4) поверхности вне области П обнаруживается специальными пространственными тестами принадлежности q е П.
В частном случае бесконечная плоскость, заданная точкой о и вектором нормали N (рис. 2, б), описывается неявной функцией Уд) = ^ - о) ° N. При условии V о N Ф 0 непараллельности плоскости и прямой существуют параметр и точка их пересечения:
(о - р)о N..
Я=р—^— V.
f=(o - p)° N V ° N
VоN (1)
Принадлежность точки q ограниченному участку плоскости П, например, полигональной грани полиэдра, определяется тестами ориентации, рассмотренными в [2].
Пересечение прямой с параметрической поверхностью q(т, 9) находится решением векторного уравнения р + Vt = q(т, 9) относительно параметров t, т и 9, проверкой их попадания в допустимые области О^ ОТ9 и расчетом точки q = с минимальным значением t. В частности, бесконечная плоскость, заданная точкой о и направляющими векторами и и W (рис. 2, б), описывается параметрической функцией q(т, 9) = о + ит + W9 с неограниченными параметрами т и 9. При непараллельности плоскости и прямой (невырожденности матрицы, составленной из векторов V, и и W) существуют параметры и точка пересечения:
[t т e]=(o - p)
V
- U
- W
-1
^ q = p + Vt.
(2)
+/P т
f q) - 4
W// о№ q
б) в) Рис. 2. Пересечение луча с поверхностью
q3
W
U Ч
г)
Знание параметров т и 9 позволяет заменить сложный пространственный тест q е П простой проверкой {т, 9} е От9. К примеру, треугольник qlq2qз и параллелограмм qlq2qзq4 (из этих плоских фигур можно составить большинство полигональных граней 3d-объектов) задаются точкой о = q1 и векторами и = q2 - q1 и W = q3 - q2, а область допустимых параметров определяется следующими неравенствами:
• у треугольника 0 < 9 < т < 1 (рис. 2, в);
• у параллелограмма 0 < т < 1 и 0 < 9 < 1 (рис. 2, г).
Вектор нормали неявной поверхности = 0 есть вектор градиента К^) = 4/я)^, а нормаль параметрической поверхности в точке q(т,9) находится как векторное произведение К(т,9) = и(т,9) х W(т,9) направляющих векторов и(т,9) = ^/дт и W(т,9) = ^/Ш.
На расчете пересечений основаны алгоритмы геометрической визуализации - нахождения и вывода на экран только видимых элементов объектов сцены - и построения простого оптического эффекта - тени одного объекта на другой. В алгоритме визуализации в экранный пиксел ру выводится суммарная освещенность ближайшей видимой точки щ всеми источниками света с учетом ее собственного цвета (см. рис. 1).
В алгоритме тенеобразования из найденной точки qг■7■ выпускается теневой зонд qij + Тф. В случае ближнего расположения источника света в точке Ь вектор направления луча берется равным Ту = Ь - qy, а параметр луча - в отрезке I е [0, 1]. К дальнему источнику, удаленному в бесконечность по вектору Ь, все зондирующие лучи идут в одном направлении Ту = Ь, а параметр определен в интервале I е [0, да). В отсутствие пересечения зонда с объектами сцены к освещенности точки qy добавляется цвет источника I. В противном случае в этой точке будет пониженная освещенность, присущая области тени.
Работу рассмотренных алгоритмов иллюстрируют изображения, построенные на рис. 3: визуализация системы непересекающихся (а, в) и пересекающихся (б, г) тел, а также построение всех физически возможных простых теней в сценах (в, г) с одним источником света.
а) б) в)
Рис. 3. Оптические эффекты визуализации и простой тени
В сцене с несколькими точечными источниками света возможно появление сложной тени (рис. 4, а): в точках типа q1, экранированных от всех источников, возникает полная тень, окрашенная лишь фоновым освещением. В частично экранированных точках типа q2 появляется полутень. Этот оптический эффект иллюстрирует рис. 4, б. Пространственно протяженный линейный либо площадный источник аппроксимируется системой точечных источников и создает размытые границы теней (рис. 4, в).
Ь
а)
Рис. 4. Оптический эффект сложной тени
Вторая задача состоит в обнаружении прохождения луча через точку Ь, где расположен источник света интенсивности I, и прекращении его дальнейшей трассировки с выводом на экран изображения источника. Основные затруднения:
• ни один из приведенных лучей не проходит точно через бесконечно малую точку;
• даже если «притянуть» точечную проекцию источника к центру ближайшего рецептора, то изображение размером в один пиксел будет с трудом различимо в окне вывода;
• выводу на экран подлежит источник, не заслоненный никакими объектами;
• близкие к наблюдателю источники должны выглядеть крупнее, чем дальние.
Для разрешения этих проблем заменим точечный источник сферой радиуса р, вычислим по [2] расстояние от точки Ь до луча и параметр ее проекции на вектор V (рис. 5):
й=|(ь-р)х V, ^ = (Ъ-Р)оХ.
Г ь V о V
Рис. 5. Прохождение луча через источник
Если луч р + Vt пересекает какие-нибудь объекты сцены, то в (1) или (2) уже найден параметр tq е Оt самой близкой точки пересечения q (в отсутствие пересечений tq = да). При выполнении условий прохождения луча в р-окрестности видимой и ближайшей точки Ь:
(ё < р) л (^ е О{) л (^ < (3)
пиксел р окрашивается в цвет источника I. Множество таких пикселов составляет на экране круглое либо эллиптическое пятно, условно изображающее точечный источник света. Примером служит сцена на рис. 4, б, в которой есть как приближенный, так и удаленный от наблюдателя точечные источники.
Третья задача, связанная с распространением света в однородной среде, изучает уменьшение интенсивности луча по закону Бугера [1] в экспоненциальной зависимости
5(ё) = ехр(-Хё) < 1
(4)
А
от пройденного им расстояния ё и показателя затухания X > 0. Благодаря этому эффекту, в изображении сцены появляется воздушная перспектива - ослабление цветовой окраски далеких объектов. Это хорошо заметно при сравнении рис. 3, г и рис. 6, построенном обратным МТЛ с показателем затухания внешней среды X = 1 / 100гс, где гс - радиус верхней сферы.
С помощью умножения вектора падающего луча V в момент пересечения с поверхностью на коэффициент затухания 5(ё) < 1, можно своевременно остановить его трассировку при уменьшении длины вектора V в заданное число раз. 2. В точке q пересечения падающего луча р + Vt с гладкой поверхностью возникает отраженный луч q + (рис. 7, а). Вектор его направления М имеет длину |М| = VI и слагается из тангенциальной V| = V—VN и инверсии нормальной V = VN составляющих вектора
падающего луча V, где V=Vо N:
М=V - 2vN. (5)
Этот вектор образует с нормалью N угол отражения Р = Z(M, равный углу падения а = -N3. Далее производится трассировка отраженного луча до пересечения с ближай-
Рис. 6. Затухание света
шим объектом сцены. В результате на гладких поверхностях в точках типа q1 видны отражения других объектов (рис. 7, б). В точках типа q2, из которых отраженные лучи идут в точки Ь расположения источников, видны световые блики цвета I, окруженные радиально затухающим ореолом диффузно отраженных лучей источника. Остальные вторичные лучи покидают пространство сцены, добавляя в рецептор р фоновую освещенность.
р VI N
V,
б)
М
Рис. 7. Отражение луча
На рис. 8 смоделированы простые (однократные) отражения световых лучей от зеркальных поверхностей. В сценах (а, в) построены все видимые отражения объектов друг в друге, а в сцены (б, г) добавлено по два точечных источника света, отражения которых видны в точках, принадлежащих ограниченным областям отражающих поверхностей.
а) б) в) г)
Рис. 8. Сцены с простыми отражениями
Если продолжить трассировку второго, третьего и последующих отраженных лучей, накапливая освещенности в точках пересечений, то в корне дерева трассировки (/, у)-го рецептора соберется суммарный цвет точек отражения всех объектов, принесших в него световую энергию по всем ветвям отраженных лучей. Так моделируется оптический эффект сложного отражения. На рис. 9, а показан ход лучей, ограничивающих первое (7) и второе (2) отражения зеркальной сферы в зеркальной плоскости. Изображения двух сцен (рис. 8, б, в) рассчитанных максимум до четвертых отражений, показаны на рис. 9, б, в.
V
3. При пересечении лучом р + V в точке q границы раздела прозрачных сред с показателями преломления п1 и п2 возникает преломленный луч q + Ш (рис. 10). Вектор его направления Я образует с нормалью N угол преломления у < 90°, связанный с углом падения а < 90° законом Снеллиуса - Декарта п^Ца) = п2вт(у) [1]. Следует отметить, что в наиболее популярных учебниках по компьютерной графике [3, 4 и др.] формулы расчета вектора Я различны. Более того, они не являются универсальными. Для достижения результата их авторы предъявляют к исходным данным специальные требования:
• векторы V и Я нормированы;
• нормаль N направлена навстречу падающему лучу;
• иногда и вектор V должен выходить из точки q, что совсем противоречит здравому смыслу! Все эти ограничения вынуждают перед каждым
расчетом преломления делать дополнительные проверки и коррекции векторов, втискивающие общую задачу в прокрустово ложе частного случая. Без этих предвычислений направление преломленного луча может оказаться неверным, например, при сонаправ-ленности векторов V и N либо при п1 > п2.
Обозначив относительный показатель преломления пп = щ/«2 , выведем универсальную формулу преломления, исходя из закона Снеллиуса-Декарта и естественного условия равенства длин векторов VI = |К|, позволяющего эффективно моделировать затухание луча от пройденного им расстояния по закону Бугера (4). Найдем нормальную и тангенциальную
составляющие вектора Я, используя число V=V о N, его модуль |у| = ^|со8(а), ранее полученные зависимости V = vN, VI = V - V N и соотношение синусов углов зт(у) = ппвт(а):
Рис. 10. Преломление луча
R 1= cosW V1 = V 1-П (1-eos2 (a)) ^ =J +(l-nn2 ) V/
- _ _sin(Y)^ _
vi2 vN, R|| =
п (v - vn) .
Vi = И„ (V -
cos(a) cos(a) * П П ' sin (a)
Суммируя составляющие, получаем вектор направления преломленного луча и условие его существования, вытекающее из положительности дискриминанта 1— ^sin2 (a)> 0:
R=Пп V+Ü nn2 +(l-пП ) V/ V 2 - Пп ] v N
V x N
<1.
(6)
Нарушение последнего неравенства дает эффект полного внутреннего отражения. Полученное решение автоматически верно при любом из двух возможных направлений нормали относительно падающего луча - как встречного, так и попутного. Это позволяет одинаково моделировать как одинарное, так и двойное преломления лучей, падающих на разные стороны одной и той же поверхности с односторонне ориентированными нормалями (рис. 11). Направление второго преломленного луча рассчитывается по (6) следующим образом
R
.= п-1r1 +
д/п-2 +(1-П-2 )R1/р|2 -П-1 ) pN2 при р=R1 о N2 ,
П
-1
R1 x N2
<1.
Рис. 11. Одинарное и двойное лучепреломление
п
Отнесем одинарное и двойное преломление лучей в непересекающихся прозрачных объектах к категории простых преломлений, в которых луч от входа до выхода распространяется в одной и той же среде. Для автоматизации учета пересечений лучом границы раздела окружающей среды с показателем преломления п0 (у воздуха п0 « 1, у воды п0 « 1.33) и т-й прозрачной среды с показателем пт инициализируем динамический флаг пересечений/п = 1 и будем его инвертировать после каждого пересечения поверхности обособленного объекта.
Тогда в (6) можно использовать относительный показатель п = (п0 / пт У1 без анализа четности числа пересечений. Моделирование простых преломлений в сценах с желтой янтарной сферой (пянт = 1.6) и белой стеклянной призмой (пстекл = 1.52) произведено на рис. 12.
Рис. 12. Сцены с простыми преломлениями
На рис. 13 построен ряд компьютерно синтезированных изображений сцен с непересекающимися объектами и сложными оптическими эффектами, демонстрирующими богатые возможности и мощь метода обратной трассировки лучей.
Рис. 13. Сцены со сложными отражениями и преломлениями
Сложнее обстоит дело с пересекающимися прозрачными объектами из-за необходимости выбора показателя преломления области пространства, принадлежащей обоим телам. Иногда (погруженные в жидкость инородные прозрачные тела, воздушные пузырьки в стекле и т. п.) интуитивно понятно, какая среда вытесняет собой другую. Но в сборных конструкциях, например в ювелирных изделиях, выбор замещающей среды производится не из физических, а из технологических соображений путем изменения формы деталей. В компьютерном моделировании также нетрудно геометрически частично либо полностью вдвинуть прозрачные объекты друг в друга. Как же тогда, не решая задачу логического конструирования, выбрать материал и показатель преломления области пересечения?
Решение этой проблемы состоит в присвоении поб объектам сцены приоритетов
prm > 0 Vm=1,иоб по следующему правилу: из пары объектов с соотношением приоритетов
pra > ргъ объект a замещает своим материалом пересекаемую область объекта Ъ. Все потенциально пересекающиеся объекты должны иметь разные приоритеты. Внешней среде, вытесняемой всеми объектами, присваивается наименьший приоритет pr0 = 0.
Для хранения истории распространения луча введем приоритетный стек трассировки (ПСТ) pst с вершиной о = pst\, хранящей номер текущей среды луча. Дальнейший ход лучей, выходящих из точки q, определяется соотношением приоритетов о-й среды распространения падающего луча p + Vt и номера m пересеченного им объекта:
• при prm > pr0 генерируются отраженный q + Mt и преломленный q + Rt лучи, а к осве-щенностям, доставленным этими лучами, добавляются освещенности фоновым и точечными источниками света;
• при prm < pr0 падающий луч пересекает поверхность менее приоритетного объекта и продолжает свой путь в прежнем направлении V без добавления каких-либо освещенностей. В результате часть m-го объекта, погруженная в среду о, становится невидимой.
Для реализации описанных эффектов распространения лучей организуем следующую дисциплину обслуживания приоритетного стека трассировки:
• начальное состояние pst = {0} соответствует зарождению первичного луча во внешней среде с показателем преломления п0;
• прохождение луча в среде m-го объекта с приоритетом prm < pr0 изменяет ПСТ следующим образом:
0 на входе в объект (вход определяется по отсутствию числа m во всем списке pst) его
номер вставляется между вершиной стека о и его правым остатком pst, полученным левым сдвигом списка pst:
m £ pst ^ pst={o,m,pst};
0 на выходе луча из объекта его номер удаляется из стека:
m e pst ^ pst = pst — m;
• трассировка луча, отраженного от поверхности m-го объекта с приоритетом prm > prо, производится с неизменным ПСТ;
• трассировка луча, преломленного на поверхности m-го объекта с приоритетом prm > prо, изменяет приоритетный стек следующим образом:
0 на входе в объект его номер добавляется в начало стека:
m £ pst ^ pst = {m,pst};
0 на выходе преломленного луча номер объекта удаляется из стека:
m e pst ^ pst = pst — m.
Значения вершины стека о до и х после его изменения используются для расчета необходимого в (6) относительного показателя преломления на поверхности раздела двух сред:
пп = по / пг.
Проиллюстрируем динамику изменения приоритетного стека трассировки с начального значения pst = {0} на примерах прохождения преломленного луча из воздуха с приоритетом pr0 = 0 через два пересекающихся объекта — сферу 1 и призму 2 с приоритетами
pri Ф pr 2 :
• при pri = 2 > pr2 = 1 общая область объектов имеет показатель преломления сферы ni = 1.6 (рис. 14, а). Падающий из внешней среды луч V, встретившись с ближайшим объектом 2, терпит в точке q1 первое преломление в луч R1. Поскольку pr2 > pr0, то в вершину стека добавляется номер объекта 2, после чего стек становится равным pst = {2, 0}, а относительный показатель пп = п0 / п2. Следующая ближайшая точка пересечения q2 принадлежит поверхности сферы 1 с большим приоритетом pr1 >pr2, поэтому ее номер также добавляется в вершину стека, после чего pst = {1, 2, 0}, а луч приобретает направление R2, вычисленное при пп = п2 / п1. В третьей точке пересечения q3 луч выходит из призмы с меньшим приоритетом pr2 <pr 1, поэтому ее номер 2 удаляется из стека, после чего pst = {1, 0}. Луч при этом сохранил направление R2. Наконец, в точке q4 он выходит из сферы, ее номер 1 удаляется из стека, и тот принимает исходный вид pst = {0}, что соответствует прохождению луча R3, вычисленного при пп = п1 / п0, снова во внешней среде;
• при pr2 = 2 > pr1 = 1 общая область объектов имеет показатель преломления призмы п2 = 1.52 (рис. 14, г). Поскольку pr2 >pr0, то номер призмы 2 добавляется в вершину стека: pst = {2, 0}. Падающий луч V изменяет в точке q1 направление на R1, вычисленное по (6) при пп = п0 / п2. Следующая ближайшая точка пересечения q2 лежит на поверхности сферы 1 с
меньшим приоритетом pr1 < pr2, поэтому ее номер добавляется под вершину стека, после чего pst = {2, 1, 0}, а луч сохраняет направление Ri. В третьей точке пересечения q3 луч выходит из призмы, поэтому ее номер 2 удаляется из стека: pst = {1, 0}, а луч меняет направление на R2 при пп = n2 / п1. Наконец, в точке q4 он выходит из объекта 1 во внешнюю среду, число 1 удаляется из стека преломлений и тот восстанавливает исходное состояние pst = {0}.
Небольшие изменения направлений преломленных лучей при смене приоритетов объектов объясняют геометрические и оптические различия изображений в области пересечения призмы и сферы. Визуальные доказательства выводов из проведенного анализа представлены изображениями на рис. 14, б, в и 14, д, е, построенными за четыре уровня преломления.
2
V\4i R1 q2Rq/
pst: 0
2
0
R у r q4
n/ П{ \П0
/ 1 R3
1 1 0
2 0
0
а)
б)
в)
V^i Rj q2 RiyR q
l!
pst: 0
2
0
nJ n1
/ 1
2 1
1 0
0
г)
д)
Рис. 14. Преломление в сценах с пересечением объектов
е)
Метод приоритетного стека трассировки правильно работает и в случае полного охва-тывания одного прозрачного объекта другим, в чем убеждает рис. 15, где построены схема хода луча и изображения сцен, отличающихся соотношением приоритетов сферы рт\ и призмы рг2. Последняя пара рисунков демонстрирует эффект невидимости неприоритетного объекта. Прирг1 > рг2 и охватывании сферы призмой луч дважды подряд входит в эти объекты, а затем в обратном порядке выходит во внешнюю среду. Но стоило задать рг2 > рг1 — и пропали все следы присутствия сферы внутри призмы, в том числе и ее тень от точечного источника, также находящегося внутри призмы.
pst: 0
\ 2
ni \nJ Vn1 n0
1 2 1 0
0 1 0
0
Рис. 15. Преломление в сценах с охватыванием объектов
2
о
0
1
Полное представление о динамике изменения приоритетного стека дает рис. 16, а, где схематично построено до четырех уровней трассировки одного первичного луча V в сцене с тремя прозрачными пересекающимися объектами — сферы 1 с показателем преломления п1 = 2, параллелепипеда 2 с п2 = 2.5 и призмы 3 с п3 = 1.5. Для удобства анализа стека приоритеты объектов приняты равными их номерам и упорядочены по правилу рг1 < рг2 < рг3. Лучи, не встречающие на своем пути никаких объектов, дальнейшему ветвлению не подвергаются и обозначены тупиковыми.
Компьютерное моделирование данной сцены выполнено на рис. 16, б. Для сравнения на рис. 16, в показан визуальный результат перенумерации объектов и прежним соотношением приоритетов и номеров рг1 <рг2 <рг3. Оба изображения построены максимум за шесть уровней отражения и 15 уровней преломления.
pr^pr^p^ {0}
{0}
V {0} {°} *{1,0}
0 1
n0 ni
{1,0}
{2,1
{0}
{2,0} {3,2,0}
{3,1,0} 3 2
{3,2,1,0} П3 П2
0}о °о {3,2,0} --< {2,0}
{2,0} °
{0}
/{0}
а)
Рис. 16. Работа приоритетного стека трассировки
На рис. 17 представлены фотореалистичные изображения композиций, состоящих из пересекающихся тел с внутренними точечными источниками света. В данных, подготовленных для моделирования этих сцен, был задан полный комплект сложных оптических эффектов с глубиной ветвления дерева трассировки до 12 уровней по отражению и 18 уровней по преломлению. Особенно эффектно выглядит архитектурная композиция последней сцены, включающей пять объектов: клетчатую непрозрачную доску 3, стоящую на ней полусферу 4, которая пересекается со слабо отражающим свет непрозрачным параллелепипедом 5 и с вертикальной пирамидой 2, протыкающей своей вершиной сферу 1. Приоритеты этих объектов следуют в порядке уменьшения: рг3 >рг5 >рг2 >рг1 >рт\.
Рис. 17. Преломление в сценах с пересекающимися объектами
Выводы
В статье рассмотрен комплекс задач и методов синтеза фотореалистичных изображений сцен с разной сложности оптическими эффектами визуализации, тенеобразования, отражения и преломления. Получена универсальная формула расчета направления преломленного луча, правильно работающая при любых исходных данных. Корректное проведение отраженных и преломленных лучей в сценах с пересекающимися прозрачными объектами обеспечивается с помощью приоритетного стека трассировки. Изложение каждой темы сопровождается поясняющими схемами и иллюстрируется изображениями, созданными методом обратной трассировки лучей в программной среде MathCAD.
Обозначения
| V| - длина вектора V.
V=V - нормированный вектор V единичной длины.
V о N - скалярное произведение векторов V и N.
V х N - векторное произведение векторов V и N.
Библиографический список
1. Ландсберг, Г.С. Оптика / Г.С. Ландсберг. - М.: Наука. 1976. - 928 с.
2. Никулин, Е.А. Компьютерная геометрия и алгоритмы машинной графики: учеб. пособие для вузов / Е.А. Никулин. - СПб.: БХВ-Петербург. 2005. - 560 с.
3. Роджерс, Д. Алгоритмические основы машинной графики / Д. Роджерс. - М.: Мир. 1989. -512 с.
4. Шикин, Е.В. Компьютерная графика. Динамика, реалистические изображения / Е.В. Шикин, А.В. Боресков. - М.: ДИАЛОГ-МИФИ. 1995. - 288 с.
Дата поступления в редакцию 11.10.2011
E.A. Nikulin
COMPUTER MODELLING OF OPTICAL EFFECTS
Improved formulae, methods and algorithms of highly realistic scenery rendering with both simple and complex optical effects — global illumination, penumbras, repeated reflections and refractions. To determine a ray deviation on an object intersection boundary, an approach of prioritized tracing stack is utilized.
Key words: illumination, shadow, reflection, refraction, raytracing, stack, priority.