ВУЗ:
Составители:
Основы компьютерной графики для программистов 46
____________________________________________________________________________________________________________________
http://www.ksu.ru/persons/9134.ru.html
Выразим z-координату точки:
()
yxf
C
ByAxD
z
,=
−
−
−
= . Пусть
()
000
, yxfz = .
Найдем z-координату для соседней точки
(
)
=
Δ
−
−
−
−
=
−
Δ
+
−−
=Δ+=
C
xA
C
ByAxD
C
ByxxAD
yxxfz
0000
001
),(
C
xA
z
Δ
−=
0
. Для соседнего пиксела на экране 1
=
Δ
x
, тогда Const
C
xA
=
Δ
, отсюда
следует, что
Constzz −=
01
. Таким образом, вычисление z-координаты соседнего
пиксела сводится к одной операции вычитания.
Метод сортировки по глубине
Рассмотрим далее алгоритм удаления невидимых граней методом сортировки по
глубине (авторы: Ньюэлл, Ньюэлл, Санча). Часть этого метода работает в пространстве
объекта, а часть в пространстве изображения. Он также работает для параллельной
проекции, то есть с учетом того что произведено перспективное преобразование.
Введем определение пространственной оболочки.
Пространственной оболочкой трехмерного объекта называется
минимальный
прямоугольный параллелепипед, целиком содержащий внутри себя данный объект.
Аналогично можно определить двумерную и одномерную пространственные оболочки.
Метод состоит из трех основных шагов:
1.
Упорядочение всех многоугольников в соответствии с их наибольшими z-
координатами.
2.
Разрешение всех неопределенностей, которые возникают при перекрытии z-
оболочек многоугольников.
3.
Преобразование каждого из многоугольников в растровую форму,
производимое в порядке уменьшения их наибольшей z-координаты.
Ближайшие многоугольники преобразуются в растровую форму последними и
закрывают более отдаленные многоугольники, так как изображаются поверх
предыдущих. Реализация пунктов 1 и 3 достаточно очевидна. Рассмотрим подробнее
пункт 2.
Пусть многоугольник P после упорядочения находится в конце списка, то есть является
наиболее
удаленным. Все многоугольники Q чьи оболочки перекрываются с z-
оболочкой P должны проходить проверку по пяти тестам (шагам). Если на некотором
шаге получен утвердительный ответ, то P сразу преобразуется в растровую форму.
Пять тестов:
1.
x-Оболочки многоугольников не перекрываются, поэтому сами
многоугольники тоже не перекрываются.
2.
y-Оболочки многоугольников не перекрываются, поэтому сами
многоугольники тоже не перекрываются.
3.
P полностью расположен с той стороны от плоскости Q, которая дальше от
точки зрения (этот тест дает положительный ответ как показано на рис. 36.
4.
Q полностью расположен с той стороны от плоскости P, которая ближе к
точке зрения. Этот тест дает положительный ответ как показано на рис. 37.
Основы компьютерной графики для программистов 46 ____________________________________________________________________________________________________________________ − D − Ax − By Выразим z-координату точки: z = = f ( x, y ) . Пусть z 0 = f ( x 0 , y 0 ) . C Найдем z-координату для соседней точки − D − A( x 0 + Δx ) − By 0 − D − Ax 0 − By 0 AΔx z1 = f ( x 0 + Δx, y 0 ) = = − = C C C AΔx AΔx = z0 − . Для соседнего пиксела на экране Δx = 1 , тогда = Const , отсюда C C следует, что z1 = z 0 − Const . Таким образом, вычисление z-координаты соседнего пиксела сводится к одной операции вычитания. Метод сортировки по глубине Рассмотрим далее алгоритм удаления невидимых граней методом сортировки по глубине (авторы: Ньюэлл, Ньюэлл, Санча). Часть этого метода работает в пространстве объекта, а часть в пространстве изображения. Он также работает для параллельной проекции, то есть с учетом того что произведено перспективное преобразование. Введем определение пространственной оболочки. Пространственной оболочкой трехмерного объекта называется минимальный прямоугольный параллелепипед, целиком содержащий внутри себя данный объект. Аналогично можно определить двумерную и одномерную пространственные оболочки. Метод состоит из трех основных шагов: 1. Упорядочение всех многоугольников в соответствии с их наибольшими z- координатами. 2. Разрешение всех неопределенностей, которые возникают при перекрытии z- оболочек многоугольников. 3. Преобразование каждого из многоугольников в растровую форму, производимое в порядке уменьшения их наибольшей z-координаты. Ближайшие многоугольники преобразуются в растровую форму последними и закрывают более отдаленные многоугольники, так как изображаются поверх предыдущих. Реализация пунктов 1 и 3 достаточно очевидна. Рассмотрим подробнее пункт 2. Пусть многоугольник P после упорядочения находится в конце списка, то есть является наиболее удаленным. Все многоугольники Q чьи оболочки перекрываются с z- оболочкой P должны проходить проверку по пяти тестам (шагам). Если на некотором шаге получен утвердительный ответ, то P сразу преобразуется в растровую форму. Пять тестов: 1. x-Оболочки многоугольников не перекрываются, поэтому сами многоугольники тоже не перекрываются. 2. y-Оболочки многоугольников не перекрываются, поэтому сами многоугольники тоже не перекрываются. 3. P полностью расположен с той стороны от плоскости Q, которая дальше от точки зрения (этот тест дает положительный ответ как показано на рис. 36. 4. Q полностью расположен с той стороны от плоскости P, которая ближе к точке зрения. Этот тест дает положительный ответ как показано на рис. 37. http://www.ksu.ru/persons/9134.ru.html
Страницы
- « первая
- ‹ предыдущая
- …
- 44
- 45
- 46
- 47
- 48
- …
- следующая ›
- последняя »