Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерная графика и геометрическое моделирование в информационных системах. Учебное пособие для бакалавров направлений подготовки 230100 «Информати.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
Рис. 9.2. Трассировка луча с учётом перспективы
Наиболее важным элементом алгоритма определения видимых поверхностей путём обратной трассировки лучей является процедура определения пересечений. В состав сцены можно включать любой объект, для которого можно создать процедуру построения пересече­ний. Объекты сцены могут состоять из набора плоских полигонов, многогранников или тел, ограниченных или определяемых квадратич­ными или кубическими параметрическими поверхностями. Поскольку
70 – 90
% времени
, затрачиваемого алгоритмом трассировки лучей,
уходит на определение пересечений, то эффективность процедуры по­иска пересечений оказывает значительное влияние на производитель­ность всего алгоритма. Вычислительная стоимость определения пере­сечений произвольной пространственной прямой (луча) с одним выде­ленным объектом может оказаться высокой. Чтобы избавиться от не­нужного поиска пересечений, производится проверка пересечения лу­ча с объ
ё
мной оболочкой рассматриваемого объекта. Если луч не пе­ресекает оболочку, то не нужно больше искать пересечений этого объ­екта с лучом. В качестве оболочки можно использовать прямоуголь­ный параллелепипед или сферу.
Ввиду присущей алгоритму трассировки лучей параллельности вычислений (здесь все лучи обрабатываются одинаково и независимо друг от др
уга) его мо
жно реализовать аппаратно с использованием
методов параллельной обработки.
31

10. МОДЕЛИ ОСВЕЩЕНИЯ

Световая энергия, падая на поверхность, может быть отражена, пропущена и поглощена [2]. Облучаемой объект можно увидеть, толь­ко если он отражает или пропускает свет. Количество отражённой, пропущенной и поглощённой энергии зависит от длины волны света.
Свойства отражённого света зависят от направления и формы ис­точника света, от ориентации и свойств поверхности. Различают зе кальное
и диффузное отражение света от объекта. Диффузное отраже­ние света происходит, когда свет как бы проникает под поверхность объекта, поглощается, а затем вновь испускается. При этом положение наблюдателя не имеет значения, так как диффузно отражённый свет рассеивается равномерно по всем направлениям. Зеркальное отраже­ние происходит от внешней поверхности.
Математическое о
писание процесса отра
жения света от реальной поверхности довольно сложное. В компьютерной графике для эффек­тивности работы кода программы обычно используют упрощённые модели.
Рассмотрим диффузное отражение. Угол между падающим лучом
света и нормалью поверхности равен θ (рис. 10.1). Интенсивность от­ражённого света пропорциональна косинусу угла θ, согласно закону Ламберта:
20,cos π≤θ≤θ=dlkII ,
где I – интенсивность отражённого света; Il – интенсивность точечного источника света; k
– коэффициент диффузного отражения (0 ≤ kd ≤ 1);
d
θ – угол между вектором, направленным на источник света, и норма- лью к поверхности.
Поверхность предметов, изображённых при помощи простой диффузной модели освещения, выглядит блёклой и матовой. Объекты, на которые не падает свет, кажутся чёрными, что напоминает эффект
р-
32
Рис. 10.1. Диффузное отражение
от фотовспышки. Однако на объекты реальных сцен падает ещё и рас-
k
сеянный свет, отражённый от окружающей обстановки, например от стен комнаты. В компьютерной графике рассеянное освещение учиты­вается как дополнительное слагаемое в модели освещения:
,
kIkII
dlaa
20,cos π≤θ≤θ+=
где Ia – интенсивность рассеянного света; ka – коэффициент диффузно­го отражения рассеянного света (0 ≤ k
≤ 1).
a
Для большей реалистичности в модель освещения добавляют ли­нейное затухание, связанное с конкретным расстоянием d от центра проекции до объекта.
kI
θ+=cos
kII
dl
aa
d
, (10.1)
+
где k – произвольная постоянная.
Если предполагается, что точка наблюдения находится в беско-
нечности, то d определяется положением объекта, ближайшего к точке наблюдения. Это означает, что ближайший объект освещается с пол­ной интенсивностью источника, а более далекие – с уменьшенной. Для цветных поверхностей модель освещения применяется к каждому из трех основных цветов: R, G и B.
Рассмотри
м с
истему, состоящую из источника света, поверхности и наблюдателя (рис. 10.2). Если у поверхностей отсутствуют какие­либо неровности, шероховатости, то такие поверхности считаются идеально зеркальными. Собственный цвет таких поверхностей не на­блюдается. Световая энергия падающего луча (вдоль вектора L) отра­жается только по линии отражения (вдоль вектора R). Рассеиван
и
е в стороны от линии отражения отсутствует. В реальной жизни такие поверхности не встречаются.
Интенсивность зеркально отражённого света зависит от угла па­дения, длины волны падающего света и свойств вещества. Основное уравнение Френеля приводится в любой книге по геометрической оп­тике. Зеркальное отражение света является направленным. Угол отра­жения от идеально
й
отражающей поверхности (зеркала) равен углу падения, в любом другом положении наблюдатель не видит зеркально отражённый свет. Это означает, что вектор наблюдения S (рис. 10.2) совпадает с вектором отражения R, и угол а равен нулю. Если поверх­ность не идеальна, то количество света, достигающее наблюдателя, зависит от пространственного распределения зеркально отражённого света. У гладких поверхн
стей распределение узкое или сфокусиро-
о
ванное, у шероховатых – более широкое.
Благодаря зеркальному отражению на блестящих предметах по-
являются световые блики. Из-за того что зеркально отражённый свет
33
Отражённый луч
Рис. 10.2. Зеркальное отражение
сфокусирован вдоль вектора отражения, блики при движении наблю­дателя тоже перемещаются. Более того, так как свет отражается от внешней поверхности (за исключением металлов и некоторых твёрдых красителей), то отражённый луч сохраняет свойства падающего. На­пример, при освещении блестящей синей поверхности белым светом возникают белые, а не синие блики.
В простых моделях о
свещения обычн
о пользуются эмпирической моделью Буи-Туонга Фонга, так как физические свойства зеркального отражения очень сложны. Модель Фонга имеет вид:
iwII cos),( ,
ls
n
αλ=
где ),( λiw – кривая отражения, представляющая отношение зеркально отражённого света к падающему как функцию угла падения i и длины
волны; п – степень, аппроксимирующая пространственное распределе­ние зеркально отражённого света. На рис. 10.3 показана функция
n
α
cos при
π
− a
π
для различных п: большие значения п дают
≤≤
22
сфокусированные пространственные распределения характеристик
Рис. 10.3. Приближённые функции пространственного распределения
для зеркального отражения
34
металлов и других блестящих поверхностей, а малые – более широкие
(
k
распределения для неметаллических поверхностей, например бумаги.
Коэффициент зеркального отражения зависит от угла падения, од­нако даже при перпендикулярном падении зеркально отражается только часть света, а остальное либо поглощается, либо отражается диффузно. Эти соотношения определяются свойствами вещества и длиной волны. Коэффициент отражения для неко
в то время как для металлических материалов – более 80%.
4%,
Функция константой k
s
),(λiw довольно сложна, поэтому её обычно заменяют
, которая либо выбирается из эстетических соображений,
торых неметаллов может быть всего
либо определяется экспериментально. Таким образом, объединив диффузное и зеркальное отражение, получим
I
kII coscos
l
+=
aa
d
+
n
)
. (10.2)
kk
α+θ
sd
В машинной графике эта модель часто называется функцией закрас­ки и применяется для расчёта интенсивности или тона точек объекта или пикселов изображения. Чтобы получить цветное изображение, нужно найти функции закраски для каждого из трёх основных цветов. Кон­станта k
обычно одинакова для всех трёх основных цветов, поскольку
s
цвет зеркально отражённого света определяется цветом падающего.
Если имеются несколько источников света, то их эффекты сум­мируются:
m
I
l
j
kII
+=
aa
∑
=
j
()
kd
+
1
kk
α+θ
coscos
, (10.3)
jnjsjd
где m – количество источников света.
Применяя формулу скалярного произведения двух векторов, за- пишем
Ln
⋅
Ln
=θ=⋅
,cos
Ln
⋅
где
Ln , – единичные векторы соответственно нормали к поверхности
и направление к источнику.
Точно так же
где
SR ⋅ – единичные векторы, определяющие направление отражён-
⋅
SR
=θ
⋅
⋅=
,cos SR
SR
ного луча и наблюдения. Следовательно, модель освещения для одного источника освещения определяется как
35
I
(
≤≤−+=
l
kII
+=
daa
kd
+
kLnk
s
n
.
])([
LR
⋅+⋅
Для вычисления нормали к по­верхности полигона используют свой­ство векторного произведения двух
Рис. 10.4. Задание вершин
полигона для вычисления
нормали
векторов, лежащих в плоскости и вы­ходящих из одной точки. Для этого каждый полигон трёхмерной сцены задаётся своими вершинами по «часо-
вой стрелке», если смотреть на плоскость полигона «сверху». Напри­мер, полигон на рис. 10.4 задан вершинами: V1, V2 и V3.
Рассмотрим дв
а вектора, вых
одящих из одной вершины V1. Это
будут V1V2 и V1V3. Если теперь векторно их перемножить:
V1V3,V1V2 ⊗=n то получится новый вектор – нормаль, «смотря-
щая» на нас.
Следует отметить, что все приведённые выше модели освещения
определяются для каждой составляющей цвета, т.е. для R, G и B.
Для плавной закраски полигональной поверхности используется метод Гуро [2, 3]. В данном алгоритме сначала определяется интен­сивность освещения вершин по модели диффузного отражения, а за
мощью билинейной интерполяции вычисляется интенсивность
с по
тем
каждого пикселя на сканирующей строке.
Для вычисления освещённости вершин 3D-объекта приходится вычислять нормаль в вершине, а это осуществляется через усреднение нормалей полигонов, сходящихся в этой вершине. Простое суммиро­вание нормалей полигонов, обеспечивает получение нормали в верши-
ить по
не полигональной сетки. Следует отметить, что дел
лученную сумму нормалей на их количество не обязательно, так как нас интере­сует не длина вектора, а его направление.
Можно вычислить обобщённую нормаль в вершине через усред­нение векторного произведения всех рёбер полигональной сетки, схо­дящихся в вершине.
Рассмотрим, например, участок полигональной поверхности на рис. 10.5. Значение интенсивности в точке P опреде
ляется линейно
й интерполяцией интенсивности в точках Q и R. Для получения интен­сивности в точке Q, полученной в результате пересечения ребра поли­гона со сканирующей строкой, нужно линейной интерполяцией интен­сивностей A и B найти
где
.
ABAQu =
)
BAQ
,
10,1
uIuuII
36
(
)
(
≤≤−+=
Рис. 10.5. Закраска полигонов методом Гуро
Аналогично для получения интенсивности в точке R линейно ин-
терполируются интенсивности в вершинах B и C, т.е.
, где
CBR
10,1 ≤≤−+= wIwwII
.
BCBRw =
Наконец, линейной интерполяцией по строке между Q и R нахо-
дится интенсивность освещений в точке P, т.е.
)
, где
10,1
RQP
tIttII
.
QRQPt =
Закраска Гуро лучше всего выглядит в сочетании с простой моде­лью с диффузным отражением (10.2). Для более реалистической ви­зуализации интерполяционной закраски поверхностей, заданных ма­лым количеством полигонов, применяется метод Фонга [2, 3]. Эта за­краска требует больших вычислительных затрат, однако она позволяет разрешить многие проблемы метода Гуро. При закраске Фонга интер-
щения, а нормали в каждой точке
полируются не интенсивности осв
е полигональной поверхности. Благодаря такому подходу, мы можем использовать более сложные модели освещения, как, например, моде­ли, учитывающие зеркальную составляющую отражённого света (10.2). В результате можем получить блики на полигональной поверхности.
11. ГЛОБАЛЬНАЯ МОДЕЛЬ ОСВЕЩЕНИЯ
Модель освещения предназначена для того, чтобы рассчитать ин­тенсивность отражённого к наблюдателю света в каждой точке изо­бражения [2]. Она может быть локальной или глобальной. В первом случае во внимание принимаются только свет, падающий от источника (источников), и ориентация поверхности. Во втором учитывается так­же свет, отражённый от других объектов сцены или п сквозь ни
х. Глобальная модель воспроизводит чрезвычайно важные
эффекты; некоторые из них показаны на рис. 11.1.
С ТРАССИРОВКОЙ ЛУЧЕЙ
ропущенный
37
Сфера, треугольная призма и параллелепипед на рис. 11.1 непрозрачны, их поверхность зеркальна. Наблюдатель смот­рит из точки О на точку 1 на сфере. При этом он видит не только сферу, но и точку 2 на призме. Призма, загороженная от наблюдателя параллелепи­педом, становится видимой из­за отражения в сфере. Точка 5 на пр
изме вид
има ещё более косвенно. Она отражается от обратной стороны параллеле-
Рис. 11.1. Глобальное освещение
лю. Кроме того, наблюдатель видит точку 5 в точке 1′
пипеда в точке 4 к точке 3 на сфере, а затем – к наблюдате-
после одного отражения от сферы, поэтому на сфере находятся два изображения призмы. Изображение, расположенное вокруг точки 1, перевёрнуто, так как получается после одного отражения; вокруг точки 3 не пере­вёрнуто, так как получается после двух отражений. Интенсивность второго изображения меньше. Наконец, в сфере отражается обратная сторона параллелепипеда, т.е. наблюдатель видит её, хот падает
прямой свет источника. Эта сторона освещается рассеянным
я на неё не
светом и светом, отражённым от других объектов сцены.
Отсюда следует, что традиционная операция удаления задних граней, применяемая при удалении невидимых поверхностей, здесь не годится, как и предварительная сортировка по глубине. Поэтому из
е
всех алгоритмов удаления невидимых граней, рассмотренных ран
е, остаётся только метод трассировки лучей. Таким образом, глобальная модель освещения является частью алгоритмов выделения видимых поверхностей путём трассировки лучей.
Уиттед пользуется моделью с такими же членами рассеянного и диффузного отражения Ламберта, а также зеркального отражения Фонга, как и в локальной модели освещения, описываемой ранее. Чле­ны, соответствующие глобальному зеркальному отражению и пр канию, расс
читываются по правилу, показанному на рис. 11.2. Здесь
опус-
трассируется луч v, падающий на поверхность в точке Q. В этой точке он отражается в направлении r и, если поверхность прозрачна, пре­ломляется в направлении p.
Здесь It – интенсивность света, падающего в точку Q по направ­лению р. Этот свет преломляется и достигает наблюдателя, находяще­гося в направлении –v.
38
Рис. 11.2. Зеркальное отражение и преломление
в глобальной модели освещения Уиттеда
Аналогично Is – интенсивность зеркально отражённого света, па­дающего в направлении –r и отражённого к наблюдателю в точке Q, n – нормаль к поверхности в точке Q, Lj– – направление на j-й источник света, S и R – локальные векторы наблюдения и отражения, η – показатель преломления среды, п – степень пространственного рас­пределения Фонга для зеркального отражения. Тогда наблюдаемая интенсивность I выражается формулой
Ik ,)()(
Ld
∑
j
j
Ldaa
j
Lsj
∑∑
jj
j
n
RSIkLnIkIkI
IkIk
++⋅+⋅+=
ttssj
(11.1)
где ka, kd, ks – коэффициенты рассеянного, диффузного и зеркального отражения, а kt – коэффициент пропускания. Уиттед считает их посто­янными, однако с помощью любой из рассмотренных выше моделей освещения можно найти зависимость этих коэффициентов от угла па­дения и длины волны. Две суммы по j в уравнении (11.1) – диффузное и зеркальное отражение от множества источников.
В глобальной модели предполагается, что падающий луч v в точ­ке Q отражается в направлении r и пропускается сквозь поверхность в направлении р, как показано на рис. 11.2. Это значит, что в точке Q образуются ещё два луча, для которых нужно найти все пересечения с объектами сцены. Такой процесс повторяется, пока не останется ни одного пересечения. На рис. 11.3, а он изображён для случая пересече­ний луча с одной поверхностью, а на рис. 11.3, б п
остроено соо
тветст-
39
а) б)
Рис. 11.3. Пример трассировка луча с отражением и преломлением
вующее дерево движения луча. Каждый узел дерева представляет со­бой пересечение луча с поверхностью. Из каждого узла исходят две ветви: правая, порождённая преломлением, и левая – отражением. Ветвь кончается, когда луч покидает сцену.
При пересечении луча с поверхностью направление отражённого и преломлённого лучей рассчитываются по закону геометрической оптики. В частности, отражённый луч r
и падающий луч v лежат в од-
ной плоскости и угол падения равен углу отражения. Пропущенный луч преломляется по закону Снеллиуса.
Для того чтобы определить интенсивность в каждом пересечении луча с поверхностью, надо пройти дерево в обратном направлении. Интенсивность в узлах рассчитывается в соответствии с моделью ос­вещения Уиттеда, причём для каждого следующего узла она ослабля­ется с расст
оянием между точка
ми пересечения. После прохода всего
дерева получается окончательная интенсивность пикселя.
Теоретически дерево трассировки луча может быть бесконечно глубоким. Построение оканчивается, когда все лучи уходят за пределы сцены, но его можно прерывать, когда интенсивность узла падает ниже определённого уровня или когда исчерпан запас памяти.
ннее отражение в замкнутом
На рисунке 11.4 показано внутр
е прозрачном теле. Лучи, зеркально отражённые от внутренних граней, остаются внутри объекта и, в конце концов, поглощаются. Для наблю­дателя они невидимы, однако в каждом пересечении луча с поверхно­стью образуется преломлённый луч, который покидает объект и может прямо или косвенно достичь точки наблюдения. Такие лучи должны быть оттрасси
рованы.
Для того чтобы включить в алгоритм тени, надо из каждого пере­сечения луча с поверхностью направить ко всем источникам Lj тене­вые зонды. Если на этом направлении между данной точкой и источ­ником лежит другой объект, то точка относительно этого источника
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]