ВУЗ:
Составители:
ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ, часть 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
- …
- следующая ›
- последняя »