Научная статья на тему 'Компьютерное моделирование оптических эффектов'

Компьютерное моделирование оптических эффектов Текст научной статьи по специальности «Физика»

CC BY
509
63
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ОСВЕЩЕНИЕ / ТЕНЬ / ОТРАЖЕНИЕ / ПРЕЛОМЛЕНИЕ / ТРАССИРОВКА ЛУЧЕЙ / СТЕК / ПРИОРИТЕТ / ILLUMINATION / SHADOW / REFLECTION / REFRACTION / RAYTRACING / STACK / PRIORITY

Аннотация научной статьи по физике, автор научной работы — Никулин Е. А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

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.

Текст научной работы на тему «Компьютерное моделирование оптических эффектов»

УДК 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)^ _

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

{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.

i Надоели баннеры? Вы всегда можете отключить рекламу.