Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Компьютерная графика и геометрическое моделирование в информационных системах. Учебное пособие для бакалавров направлений подготовки 230100 «Информати.pdf
X
- •ВВЕДЕНИЕ
- •5. ПРОЕЦИРОВАНИЕ ТРЁХМЕРНЫХ ОБЪЕКТОВ
- •6. РАСТРОВОЕ ТЕКСТУРИРОВАНИЕ
- •10. МОДЕЛИ ОСВЕЩЕНИЯ
- •12. ВОСПРОИЗВЕДЕНИЕ КРИВЫХ
- •12.1. ИНТЕРПОЛИРОВАНИЕ С ПОМОЩЬЮ МНОГОЧЛЕНОВ
- •12.2. МНОГОЧЛЕНЫ БЕЗЬЕ
- •12.3. ПАРАМЕТРИЧЕСКИЕ КУБИЧЕСКИЕ КРИВЫЕ
- •13.1. ФОРМА ЭРМИТА
- •12.5. СРАВНЕНИЕ КРИВЫХ ЭРМИТА, БЕЗЬЕ И B-СПЛАЙНОВ
- •13.2. ФОРМА БЕЗЬЕ
- •13.3. ФОРМА B-СПЛАЙНОВ
- •14. ПРИБЛИЖЕНИЕ И ВОСПРОИЗВЕДЕНИЕ ПОВЕРХНОСТЕЙ
- •14.2. ПЛАЗОВЫЕ ПОВЕРХНОСТИ
- •14.3. ПОВЕРХНОСТЬ КУНСА
- •14.4. ПОСТРОЕНИЕ ПОВЕРХНОСТЕЙ ПО ОРИЕНТИРАМ
- •16. МОДЕЛИРОВАНИЕ ГЕОМЕТРИЧЕСКИХ ФОРМ
- •16.1. МЕТОДЫ ПОСТРОЕНИЯ МОДЕЛЕЙ
- •16.2. ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ МОДЕЛЕЙ
- •16.3. ДВУМЕРНОЕ МОДЕЛИРОВАНИЕ
- •16.4. ТРЁХМЕРНОЕ МОДЕЛИРОВАНИЕ
- •ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ

Рис. 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
