ВУЗ:
Составители:
ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ, часть 1 50
пространстве изображения и применяется в таких популярных графических
библиотеках как OpenGL и Direct3D.
Алгоритм работает в параллельной проекции. Пусть размеры окна
вывода или экрана составляют
X точек в ширину и Y точек в высоту. В
качестве
z-буфера заведем двумерный прямоугольный массив чисел по
размерности совпадающий с окном вывода или экрана, т.е.
X×Y. В z-буфере
будут храниться текущие значения z-координат каждого пиксела.
В начале работы алгоритма в z-буфер заносятся значения,
соответствующие бесконечности. Каждая грань трехмерного объекта,
представленная в виде многоугольника, преобразуется в растровую форму.
При разложении в растр для каждой точки многоугольника вычисляется
значение ее z-координаты. Если z-координата оказалась меньше чем текущее
значение
в z-буфере, то в z-буфер заносится z-координата точки, и на экране
рисуется точка цветом текущего многоугольника. После разложения в растр
всех многоугольников изображение трехмерной сцены построено.
Рассмотрим способ ускоренного вычисления z-координат при
разложении многоугольников в растр. Запишем уравнение плоскости,
образуемой многоугольником в пространстве:0
=
+
+
+
DC
z
By
Ax
.
Выразим 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 50
пространстве изображения и применяется в таких популярных графических
библиотеках как OpenGL и Direct3D.
Алгоритм работает в параллельной проекции. Пусть размеры окна
вывода или экрана составляют X точек в ширину и Y точек в высоту. В
качестве z-буфера заведем двумерный прямоугольный массив чисел по
размерности совпадающий с окном вывода или экрана, т.е. X × Y. В z-буфере
будут храниться текущие значения z-координат каждого пиксела.
В начале работы алгоритма в z-буфер заносятся значения,
соответствующие бесконечности. Каждая грань трехмерного объекта,
представленная в виде многоугольника, преобразуется в растровую форму.
При разложении в растр для каждой точки многоугольника вычисляется
значение ее z-координаты. Если z-координата оказалась меньше чем текущее
значение в z-буфере, то в z-буфер заносится z-координата точки, и на экране
рисуется точка цветом текущего многоугольника. После разложения в растр
всех многоугольников изображение трехмерной сцены построено.
Рассмотрим способ ускоренного вычисления z-координат при
разложении многоугольников в растр. Запишем уравнение плоскости,
образуемой многоугольником в пространстве: Ax + By + Cz + D = 0 .
− D − Ax − By
Выразим z-координату точки: z= = f ( x, y ) . Пусть
C
z 0 = f (x0 , y 0 ) . Найдем 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-
координаты соседнего пиксела сводится к одной операции вычитания.
Рассмотрим далее алгоритм удаления невидимых граней методом
сортировки по глубине (авторы: Ньюэлл, Ньюэлл, Санча). Часть этого метода
работает в пространстве объекта, а часть в пространстве изображения. Он
также работает для параллельной проекции, то есть с учетом того что
произведено перспективное преобразование. Введем определение
пространственной оболочки.
Пространственной оболочкой трехмерного объекта называется
минимальный прямоугольный параллелепипед, целиком содержащий внутри
Страницы
- « первая
- ‹ предыдущая
- …
- 48
- 49
- 50
- 51
- 52
- …
- следующая ›
- последняя »
