Основы компьютерной графики для программистов. Казанцев А.В. - 46 стр.

UptoLike

Составители: 

Основы компьютерной графики для программистов 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