ВУЗ:
Составители:
Рубрика:
.111
213132321
213132321
det;/))()()((det/det
det;/))()()((det/det
EyDxYF
YYxYYxYYxEE
yyYyyYyyYDD
−−=
−+−+−==
−
+
−
+
−
=
=
Рис. 6.1. Наложение текстуры на грань объекта
Вышеприведённые математические соотношения справедливы только для аксонометрических проекций 3
D
объектов.
Для текстурирования перспективных проекций необходимы дополнительные математические операции.
В перспективных проекциях преобразования координат из видовых координат в координаты плоскости проецирования
нелинейны. Поэтому экранные координаты вначале следует преобразовать в такие, которые линейно связаны с мировыми –
это могут быть, скажем, видовые. А затем видовые координаты (или непосредственно мировые) связать с координатами тек-
стуры аффинным преобразованием, используя, например, метод трех точек [23].
7. АЛГОРИТМ «ПЛАВАЮЩЕГО ГОРИЗОНТА» ДЛЯ ВИЗУАЛИЗАЦИИ ФУНКЦИОНАЛЬНО-ЗАДАННЫХ ПО-
ВЕРХНОСТЕЙ
Алгоритм «плавающего горизонта» [22] используется для удаления невидимых линий трёхмерного представления
функции, описывающей поверхность в виде
F
(
x
,
y
,
z
) = 0.
В данном алгоритме трёхмерная задача сводится к двумерной путём пересечения исходной поверхности последова-
тельностью параллельных секущих плоскостей, имеющих постоянные значения координат
х
,
у
или
z
.
Поверхность складывается из последовательности кривых, лежащих в каждой из этих плоскостей. Предполагается, что
полученные кривые являются однозначными функциями независимых переменных (рис. 7.1).
Обычно используется функция вида
y
=
f
(
x
,
z
), где
z
– постоянно на каждой из заданных параллельных плоскостей.
Если спроецировать полученные кривые на плоскость
z
= 0 (рис. 7.2), то становится понятна идея алгоритма удаления
невидимых участков заданной поверхности.
Рис. 7.1. Кривые в секущих плоскостях
Рис. 7.2. Проекция кривых на плоскость
Z
= 0
Для каждой рассекающей плоскости, начиная с ближайшей к точке наблюдения, строится кривая, лежащая на ней, т.е.
для каждого значения координаты
х
в пространстве изображения определяется соответствующее значение
y
.
Удаление невидимых линий заключается в следующем: если на текущей плоскости при некотором заданном значении
x
соответствующее значение
у
на кривой больше значения
y
для всех предыдущих кривых при этом значении
x
, то текущая
кривая видима в этой точке; в противном случае она невидима.
Реализация данного алгоритма достаточно проста. Для хранения максимальных значений
y
при каждом значении
x
ис-
пользуется массив, длина которого равна числу различимых точек (разрешению) по оси
x
в пространстве изображения. Значе-
ния, хранящиеся в этом массиве, представляют собой текущие значения «горизонта». Поэтому по мере рисования каждой оче-
2
1
3
1
2
3
y
Т
x
Т
x
y
текстура
полигон
Y
X
z
5
z
4
z
3
z
2
z
1
= const
Y
X
z
5
z
4
z
3
z
2
z
1
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »