Информационные технологии в САПР. Вычислительные сети и компьютерная графика. Васильев С.А - 33 стр.

UptoLike

полигона «–» «+» Кол. пересечений Abs(«–» – «+»)
1 0 1 0 1
2 1 0 1 1
Исходя из значений поля Кол. пересечений»], выбираем полигон 1.
На этом процесс разбиения подмножеств полигонов 3
D
сцены заканчивается.
Параллельно с построением таблиц состояний подмножеств полигонов строится BSP-дерево сцены. Для рассматривае-
мой сцены возможные структуры BSP-дерева представлены на рис. 8.2.
В данном примере приходим к варианту дерева 3.
Рис 8.2. Возможные варианты BSP-дерева
Большой заслугой BSP-дерева в алгоритме удаления невидимых полигонов сцены заключается в том, что все построения
бинарного дерева осуществляются заранее на этапе, не связанном с визуализацией. А в процессе визуализации сцены BSP-
дерево используется как путеводитель в множестве полигонов сцены. Перемещение по готовым указателям для достижения
соответствующего полигонапроцесс быстрый и не требует сложных математических расчётов. Изменение положения камеры
наблюдателя никоим образом не влияет на структуру BSP-дерева сцены, что для подсистем визуализации реального времени
имеет главенствующее значение. Нет необходимости для каждого кадра визуализации сцены в динамике заниматься сортиров-
кой полигонов, так как в BSP-дереве всё уже предусмотрено.
9. ПОСТРОЕНИЕ КРИВЫХ
Задачи построения кривых по точкам возникают в компьютерной графике при проектировании, обработке изображений
и распознавании образов. Отыскание кривой, проходящей через заданное множество точек, составляет задачу интерполиро-
вания, а отыскание кривой, проходящей вблизи заданного множества точек, задачу аппроксимации. Для точной передачи
кривизны по исходным данным удобнее использовать интерполяционные кривые, а если требуется, заодно, и убрать «шум»
в исходных данных, тоаппроксимирующие кривые.
Рассмотрим несколько кривых Безье. Пусть известны три точки:
b
0
,
b
1
и
b
2
(рис. 9.1).
j
i
b
строятся в зависимости от заданного отношения (на рисунке
t
~ 1/3):
10
1
0
)1()( btbttb +=
;
21
1
1
)1()( btbttb +=
;
)()()1()(
1
1
1
0
2
0
ttbtbttb +=
, или
2
2
10
22
0
)1(2)1()( btbttbttb ++=
.
b
2
(
t
) парабола, вписанная в угол, т.е. при 0
t
1. Кривая
b
2
(
t
) всегда располагается
внутри треугольника:
b
0
b
1
b
2
,
b
2
(0) =
b
0
,
b
2
(1) =
b
2
.
Рассмотрим ещё один случайчетырёх точек (рис. 9.2). Пусть заданы четыре точки:
b
0
,
b
1
,
b
2
и
b
3
.
В зависимости от параметра
t
(на рисунке
t
~ 1/3), выбираем точки
1
1
1
0
bb
и
1
2
b
. В аналогичном соотношении делим
1
1
1
0
bb
и
1
2
1
1
bb
и вписываем кривую
b
3
.
1
0
b
b
2
b
1
1
1
b
1
2
b
0
b
b
3
1
0
b
2
0
b
1
1
b
0
b
1
b
Рис. 9.1. Кривая
по трём точкам