Основы компьютерной графики: Часть 1. Математический аппарат компьютерной графики. Казанцев А.В. - 50 стр.

UptoLike

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

ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ, часть 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-
координаты соседнего пиксела сводится к одной операции вычитания.

      Рассмотрим далее алгоритм удаления невидимых граней методом
сортировки по глубине (авторы: Ньюэлл, Ньюэлл, Санча). Часть этого метода
работает в пространстве объекта, а часть в пространстве изображения. Он
также работает для параллельной проекции, то есть с учетом того что
произведено    перспективное    преобразование.   Введем     определение
пространственной оболочки.
     Пространственной оболочкой трехмерного объекта называется
минимальный прямоугольный параллелепипед, целиком содержащий внутри