Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерная графика и геометрическое моделирование в информационных системах. Учебное пособие для бакалавров направлений подготовки 230100 «Информати.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
а) б)
Рис. 11.4. Пример внутреннего отражения в прозрачных объектах
лежит в тени и его вклад в локальное диффузное и зеркальное отраже­ние уменьшается. Если поверхность, лежащая на пути луча, непро­зрачна, то свет источника вообще не попадает на поверхность, а если тень отбрасывается прозрачной поверхностью, то свет ослабляется в зависимости от её свойств. Теневые зонды показаны на рис. 11.3.
зображений приведённые расчёты
При построении цветн
ых и выполняются три раза: отдельно для красного (R), зелёного (G) и си­него (B) значения, причём каждый раз со своими оптическими харак­теристиками.
В алгоритме трассировки луча с использованием глобальной мо­дели освещения применяется стек лучей магазинного типа, который служит для передачи информации об отражённом и пропущенном све­те между элементами дере
ва луча. В ка
ждый момент времени стек со­держит только часть дерева, поэтому его объём можно ограничить са­мой длинной предполагаемой ветвью. Ветвь дерева оканчивается, ко­гда и отражённый, и преломлённый лучи уходят за пределы сцены или когда переполняется стек. Если оба луча покидают сцену, то их вклад
го луча равен нулю. Если переполняется стек,
в интенсивность исхо
дно то алгоритм рассчитывает интенсивность исходного луча, используя лишь компоненты рассеянного, диффузного и зеркального отражения в точке падения луча.
Сформулируем основные выводы по алгоритму «Обратная трас-
сировка луча» [5]. Преимущества:
Универсальность метода, его применимость для синтеза изо-
1.
бражений достаточно сложных пространственных схем. Воплощает многие законы геометрической оптики. Просто реализуются разнооб­разные проекции.
Даже усечённые варианты данного метода позволяют полу-
2.
чить достаточно реалистичные изображения.
41
3. Поскольку расчёт отдельной точки изображения выполняется
независимо от других точек, то это можно эффективно использовать при реализации данного метода в параллельных вычислительных сис­темах, в которых лучи могут трассироваться одновременно.
Недостатки:
Вычислительные проблемы с моделированием диффузного
1.
отражения и преломления.
Для каждой точки изображения необходимо выполнить много
2.
вычислительных операций. Трассировка лучей относится к числу са­мых медленных алгоритмов синтеза изображений. Но с каждым днём при росте производительности современных ЭВМ алгоритм «Обратная трассировка луча» становится все актуальнее.

12. ВОСПРОИЗВЕДЕНИЕ КРИВЫХ

При решении одних прикладных задач допустимо представление кривой в виде последовательности пикселов, а при решении других предпочтительно задавать кривую с помощью математического выра­жения [1, 3]. Последнее может оказаться значительно компактнее дис­кретных представлений. Поиск кривой, проходящей через заданное множество точек, составляет задачу интерполирования. Нахождение кривой, проходящей вблизи заданного множества точек – задача ап-
о
ксимации. Для обозначения обеих задач будем пользоваться тер-
пр мином «построение кривой по точкам». Представляет также интерес задача воспроизведения изображения кривой, заключающаяся в сле­дующем: для заданного математического выражения требуется найти соответствующие пикселы и присвоить им значения, при которых они составляют изображение кривой, описываемой заданным выражением.
роек
Задачи построения кривых по точкам возникают в п нии и промышленном производстве, а также в машинной графике, об­работке изображений и распознавании образов. Например, очертания кузова автомобиля могут быть заданы с помощью множества дискрет­ных точек, выбранного на основе технических и эстетических сообра­жений. Для того чтобы ЭВМ могла управлять обрабатывающими ин­струментами, необходимо располагать математическим описани
й поверхности, проходящей через все заданные точки. Этот
гладко пример отражает одно из первых применений методов машинной гра­фики в промышленности. Другие возможности применения этих мето­дов связаны с представлением экспериментальных данных для их по­следующего воспроизведения или автоматического распознавания. В последнем случае математическое описание контура объекта может
рому объект принадлежит.
содержать информацию о классе, к ко
то
тирова-
ем
42
Точные требования, которым должны удовлетворять воспроизводимые кривые и поверхности, зависят от конкретной прикладной задачи, од­нако в целом решение подобных задач базируется на общей методоло­гии, которая и явится предметом нашего рассмотрения в данной и трёх следующих главах.
С математической точки зрения задачи интерполирования, веро­ятно, решать легче, однако при решении многих пр
икладных за
дач аппроксимация оказывается более практичной, так как точные значе­ния обрабатываемых данных искажаются из-за наличия шума. Ком­промиссным решением при выборе одного из этих методов служит выделение множества точек-ориентиров, которые могут быть опреде­лены пользователем в интерактивном режиме, и проведение кривой (или поверхности) вблизи этих точек. Ниже мы уделим внимание это-
дхо
му по
ду. Удовлетворительное воспроизведение кривых требует решения ряда трудных задач из дискретной геометрии, однако обычно используются частные решения, дающие разнообразные качественные результаты.
Часто решающее значение при построении кривых по точкам
приобретает выбор математического описания (функции). Хотя много-
н
члены – первое, что приходит здесь в голову, их применение обыч
о даёт плохое решение. Наибольшее распространение получили методы, предусматривающие использование кусочно-полиномиальных функ­ций различных типов. При решении задач аппроксимации также сле­дует уделять внимание выбору критерия, характеризующего качество приближения. Максимальное расстояние точек от кривой или поверх­ности представляется вполне разумным критерием, однако часто его использование порождает сложные вычислительные проблемы.
инципе, нео
В пр
бходимо достижение некоторого компромисса между тем, что интуитивно кажется желательным, и тем, что оказывается реальным с вычислительной точки зрения.

12.1. ИНТЕРПОЛИРОВАНИЕ С ПОМОЩЬЮ МНОГОЧЛЕНОВ

Пусть (x1, y1), (x2, y2), …, (xn, yn) – последовательность точек, за­данных на плоскости, причём x но непосредственно написать формулу интерполяционного многочле­на (n – 1)-й степени:
=
)(
yxp
n
1
2
≠ xj при i ≠ j [3]. Для таких точек мож-
i
−−
))...((
xxxx
n
+
y
−−
121
2
))...((
xxxx
n
+
y
n
31
))...((
−−
xxxx
11
−
n
))...((
−−
xxxx
11
−
nnn
−−−
))...()((
xxxxxx
n
+
−−−
13212
… +
))...()((
xxxxxx
n
. (12.1а)
43
Интерполяционный многочлен можно представить в более стро-
=
гом виде:
n
n
)(
=
yxp
in
∑
∏
1
=
i
≠
ij
)(
−
xx
j
.
(12.1б)
)(
−
xx
ji
Из приведённого выражения следует, что значение yi умножается на дробь, равную 1 при x – x
, и 0 при остальных значениях х, прини-
i
маемых им в заданных координатах. Частному случаю n = 2 соответст­вует уравнение линии, соединяющей две точки:
=
)(
−
xx
)(
2
yxp
12
−
−
xx
)(
21
−
)(
xx
y
2
1
.
(12.2)
−
)(
xx
12
Основным недостатком интерполирования с помощью многочле­нов являются существенные колебания, которые может претерпевать кривая, построенная между двумя точками. Это обстоятельство иллю­стрируется следующим примером.

12.2. МНОГОЧЛЕНЫ БЕЗЬЕ

Этот класс многочленов применяется в интерактивных системах машинной графики для приближённого решения задач на построение кривых по точкам [3]. Вместо непосредственного использования точек, представляющих обрабатываемые данные, для задания многочлена при построении искомой кривой в интерактивном режиме определяет­ся множество точек-ориентиров. Многочлены при этом задаются не в явном виде как у = р(х),
а в пар
аметрической форме:
)(tpx
, (12.3а)
x
. (12.3б)
)(tpyy=
Пусть даны три точки: P0, P1 и P2 (рис. 12.2).
Рис. 12.2. Кривая Безье по трём точкам
44
P
P
Рис. 12.3. Кривая Безье по четырём точкам
j
P
строятся в зависимости от заданного отношения (на рис. 12.2
i
t ~ 1/3):
1
)(
tP = (1 – t)P
2
)(
tP = (1 – t) )(
0
2
)(
tP – парабола, вписанная в угол треугольника: P
0
1
tP + t )(
0
зом при 0 ≤ t ≤ 1 кривая ника: P
0P1P2
2
, )0(
P = P
0
0
1
)(
tP = (1 – t)P
1
1
tP , или )(
1
2
)(
tP всегда располагается внутри треуголь-
0
2
, )1(
P = P
0
0
0
1
2
tP = (1 – t)
0
.
2
+ tP1;
+ tP2;
2
P0 + 2t(1 – t)P1 + t2P2.
. Таким обра-
0P1P2
Рассмотрим ещё один случай – четырёх точек (рис. 12.3). Пусть заданы четыре точки: P
(на рисунке t ~ 1/3) выбираем точки ношении делим
Если (x
1
P
0
, y0), (x1, y1), …, (xm, ym) – указанные точки-ориентиры, то
0
, P1, P2 и P3. В зависимости от параметра t
1
P и
1
0
1
1
P
и вписываем кривую Безье
1
2
1
P ,
0
1
P и
1
1
. В аналогичном соот-
2
3
0
соответствующий многочлен Безье определяется как
m
i
mx
∑
i
0
−
m
i
my
∑
i
0
−
i
где
C обозначает число сочетаний из m объектов по i:
m
m
i
C
=
m
−
imi
−
,)1()(
xttCtp
−=
−=
.
(12.4a)
i
imi
−
,)1()(
yttCtp
(12.4б)
i
)!!(!imi
)(
tP
.
45
Эта формула неудобна для проведения вычислений – значение
=
i
C лучше определять, пользуясь рекуррентной формулой:
m
111−
i
i
i
m
m
+=
CCC
.
m
−−
Если кривая строится в трёхмерном пространстве, то необходимо добавить третью компоненту
m
∑
−
i
i mz
0
imi
−
.)1()(
zttCtp
−=
i
Уравнения (12.4) часто удобно записывать в векторной форме:
)(
tp
⎤
⎡
x
=
)(
tP
⎢ ⎣
⎡
P
=
i
⎢ ⎣
, (12.5)
⎥
)(
tp
y
⎦
x
⎤
i
, (12.6)
⎥
y
⎦
i
таким образом,
m
∑
−
i
i m
0
imi
−
PttCtP
−=
)1()(
. (12.7)
i
На рис. 12.4 приведён один многочлен Безье для m = 2 и два мно­гочлена Безье для m = 3. Последний пример показывает, что размеще­ние точек-ориентиров, обеспечивающее построение кривой опреде­лённого вида, требует достаточно высокой квалификации. Это обстоя­тельство является серьёзным недостатком данного метода.
Из уравнения (12.7) следует, что
)0( PP
,
0
PP =)1( ,
m
т.е. используется диапазон изменения t от 0 до 1.
Кривая многочлена Безье расположена внутри выпуклой оболоч­ки множества точек-ориентиров.
Рис. 12.4. Примеры многочленов Безье, построенных
по трём и четырём точкам-ориентирам
46

12.3. ПАРАМЕТРИЧЕСКИЕ КУБИЧЕСКИЕ КРИВЫЕ

t
≤
≤
=
(
=
(
′
(
=
′
(
[
]
В компьютерной графике в процессе геометрического моделирова­ния сложных «гладких» кривых широко используют параметрические кубические кривые [1, 3]. Подобными кривыми можно отобразить различ­ные исходные данные. Например, параметрическими кубическими кри­выми можно отобразить замкнутую кривую или самопересекающуюся.
10
Пусть
– независимый параметр, такой что
t
. Кубической параметрической кривой называется кривая, описываемая следующей системой уравнений:
⎧
()
⎪
()
⎨ ⎪
()
⎩
23
+++=
,
dtctbtatx
23
23
xxxx
+++=
,
dtctbtaty
(12.8)
yyyy
+++=
.
dtctbtatz
zzzz
Координаты точек на кривой описываются вектором
[]
вующего касательного вектора в точке. Например, для координаты х
)(),(),( tztytx
, а три производные задают координаты соответст-
dx
dt
2
. (12.9)
ctbta
++= 23
xxx
12.3.1. Форма Эрмита
Широко используется задание параметрической кубической кри­вой через указание координат её начальной и конечной точек, а также векторов касательных в них [3]. При подобном способе задания исход­ных значений для построения кривая принимает форму Эрмита. Обозначим концевые точки
R . Индексы выбраны таким образом с учётом дальнейшего изло-
и
4
P и 4P , а касательные векторы в них 1R
1
жения.
Рассмотрим способ нахождения коэффициентов
dcba ,,, .
xxxx
Коэффициенты для y и z будут вычисляться подобно. Запишем условие для построения кривой в форме Эрмита:
()
Перепишем выражение (12.8) для xв векторном виде:
0
)
,
1
xPx1
)
,
0 =
xPx4
1,,,23ttttx =
,
)
a
⎤
⎡
⎥
⎢
b
⎥
⎢
⎥
⎢
c
⎥
⎢
d
⎦
⎣
1
xRx1
. (12.11)
x
)
xRx4
. (12.10)
47
Обозначим вектор строку
[
]
(
)
(
[
=
=
[
=
(
(
[
==′
(
[
==′
×
(
(
=
(
=
()()()(
)
и вектор-столбец ко-
1,,,23tttT =
эффициентов
a
⎤
⎡
⎥
⎢
b
⎥
⎢
=xC
тогда
Из (12.10) следует, что:
Для касательных (12.9)
Отсюда получаем векторно-матричное уравнение:
TCtx = .
x
)
x
1
′
)
)
)
P
⎡ ⎢
P
⎢ ⎢
R
⎢
R
⎣
]
CPx 1,0,0,00
1
4
⎤
⎡
1
x
⎥
⎢
4
x
⎥
⎢
=
⎥
⎢
1
x
⎥
⎢
4
x
⎣
⎦
Эта система решается относительно
44
матрицы размером
.
−
⎡ ⎢ ⎢
=
C =
x
⎢ ⎢
Здесь
M – эрмитова матрица, hG – геометрический вектор Эр-
h
мита. Подставим выражение
⎣
C для нахождения
x
Аналогично для остальных координат:
,
⎥
⎢
c
⎥
⎢
d
⎦
⎣
x
()
,
= .
x
1122
−−−
0100
0001
4
Ctttx ]0,1,2,3[2=
,⇒
x
]
CRx 0,1,0,00
,
xx
.
]
CRx 0,1,2,31
xx
1000
⎤ ⎥
1111
⎥
. (12.12)
C
x
⎥
0100
⎥
0123
⎦
C нахождением обратной
x
P
⎡
⎤
⎤
1
x
⎢
⎥
⎥
P
1233
4
x
⎢
⎥
⎥
⎢
⎥
⎢
⎥ ⎦
⎣
()
R
1
x
R
4
x
GM
⎥
hxh
⎥ ⎦
)
tx :
,
GTMty =
hyh
]
CPx 1,1,1,11
. (12.13)
)
Выпишем в явном виде формулы для вычисления координат то­чек кривой Эрмита.
Так как умножая это выражение справа на G
48
h
, получим:
hx
xx
)
tttttttttTM
−+−+−+−= , то
GTMtx
.
hxh
GTMtz
.
hzh
23232323
],2,32,132[
(
=
()()()(
)
Рис. 12.5. Параметрическая кривая в форме Эрмита
Рис. 12.6. Две кубические кривые Эрмита, соединяющиеся в точке P
)
1
23
4
23
=
GTMtx
hxh
1
23
232132 ttRtttRttPttP
−++−++−++−= . (12.14)
xxxx
4
4
23
Аналогично записываются выражения для y(t) и z(t).
Форму кривой, заданной в форме Эрмита, легко изменять, если учи­тывать, что направление вектора касательной задаёт начальное направ­ление, а модуль вектора касательной задаёт кривизну в направлении этого вектора, как показано на рис. 12.5. Чем больше длина вектора, тем силь­нее кривая «в
ытягивается» в напр
авлении, задаваемом этим вектором.
При создании сложных кривых в форме Эрмита необходимо при­держиваться следующего правила: конечный вектор предыдущей кри­вой должен совпадать по направлению с вектором начальной кривиз­ны следующей кривой (рис. 12.6).
Геометрические векторы, с помощью которых достигается «глад­кая» стыковка двух кривых, следующие:
P
⎡
1
⎢
P
4
⎢ ⎢
R
⎢
R
⎣
P
⎡
⎤ ⎥ ⎥ ⎥
1
⎥
4
⎦
⎤
4
⎢
⎥
P
7
⎢
⎥
и
.
⎢
⎥
kR
4
⎢
⎥
R
7
⎣
⎦
49
()(
−==
′
()(
−==
′
(
(
(
12.3.2. Форма Безье
Рассмотрим кривую в форме Безье, которая будет отличаться от формы Эрмита способом задания исходных данных на построение, а именно, вместо векторов
им радиус-векторы) полняются условия:
Кривая в форме Безье может быть построена через форму Эрмита:
=
G =
где
G – геометрический вектор Безье.
b
Подставляя это в выражение для лучаем соотношения:
()
()
()
Заметим, что матрица вида
MMM
==
bhbh
R и 4R вводятся точки (и соответствующие
1
P и 3P , как показано на рис. 12.7, такие, что вы-
2
и
30 PPRP
P
⎡
⎤
⎡
1
⎢
⎥
⎢
P
4
⎢
⎥
⎢
=
⎢
⎥
⎢
R
−
1
⎢
⎥
⎢
R
4
⎣
⎣
⎦
)()()
)()()
3
)()()
⎡ ⎢ ⎢ ⎢
−
⎢ ⎣
−−
−
)
121
P
0001
⎡
⎤
⎤
1
⎢
⎥
⎥
P
1000
2
⎢
⎥
⎥
⎢
⎥
⎥
P
0033
3
⎢
⎥
⎥
−
3
1
3
1
1
1331
0363
0033
0001
P
3300
4
⎦
⎣
⎦
()
tx
кривой формы Эрмита, по-
2
2
2
2
2
2
⎤ ⎥ ⎥
называется матрицей Безье.
⎥ ⎥
⎦
31 PPRP
GM
bhbh
2
2
2
13131 +−+−+−=== .
, (12.15)
)
344
3
3
3
.
3
PtPttPttPtGMTMGTMtx +−+−+−===
4
xxxxbxhbhhxh
3
PtPttPttPtGMTMGTMty +−+−+−===
4
yyyybyhbhhyh
3
PtPttPttPtGMTMGTMtz
zzzzbzhbhhzh
4
;13131
;13131
Рис. 12.7. Параметрическая кривая в форме Безье
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]