Поверхностные модели в системах трехмерной компьютерной графики. Косников Ю.Н. - 19 стр.

UptoLike

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

19
Выявление нелицевых примитивов можно значительно упростить, проведя
перспективную трансформацию пространства. В этом случае перспективное
проецирование заменяется параллельным, и все лучи зрения становятся
параллельными оси глубины. Тогда
l
x
=l
y
=0, а l
z
=
L
. Координаты нормали к
некоторой поверхности определяются частными производными функции
F(x,y,z),
которая описывает эту поверхность. Если примитив плоский, то описывающая его
функция имеет вид:
F(x,y,z)=Ax+By+Cz+D,
где
A,B,C,Dчисловые коэффициенты, задающие положение плоскости.
В этом случае координата
n
z
определяется выражением
C
z
F
n
z
=
=
и признак видимости
vp получает весьма простой вид: vp=sgn С.
Если лицевые примитивы в пространстве наблюдателя загорожены впереди
стоящими объектами, их изображения полностью или частично не должны
появиться на экране. Для этого предназначена большая группа алгоритмов
удаления невидимых участков [6,7]. В их основе лежит анализ глубины
расположения участков различных примитивов. Видимыми считаются участки,
наиболее близкие к точке наблюдения. В современных графических
системах
преимущественное применение нашли алгоритм
z-буфера (буфера глубины) и его
модификации, работающие в процессе проецирования элементов (точек)
примитивов на плоскость экрана. По вычисленным в процессе проецирования
координатам очередного элемента в буферной памяти выбирается многоразрядная
ячейка, в которую записываются код цветояркости элемента и код его удаления от
наблюдателя (код глубины). Если со временем элемент другого примитива
получит тот же адрес в памяти буфера, то его код удаления будет сравниваться с
кодом удаления, занесенным в буфер по этому адресу ранее. По результатам
сравнения в буфер будет занесена информация об элементе с меньшим кодом
глубины, то есть об элементе, более близком к точке наблюдения. В итоге, когда
содержимое буфера
будет выводиться на экран, на засветку каждого пикселя
                                                                            19
     Выявление нелицевых примитивов можно значительно упростить, проведя
перспективную трансформацию пространства. В этом случае перспективное
проецирование заменяется параллельным, и все лучи зрения становятся
параллельными оси глубины. Тогда lx=ly=0, а lz= L . Координаты нормали к

некоторой поверхности определяются частными производными функции F(x,y,z),
которая описывает эту поверхность. Если примитив плоский, то описывающая его
функция имеет вид:
                            F(x,y,z)=Ax+By+Cz+D,
где A,B,C,D – числовые коэффициенты, задающие положение плоскости.
В этом случае координата nz определяется выражением
                                         ∂F
                                  nz =      =C
                                         ∂z
и признак видимости vp получает весьма простой вид: vp=sgn С.
     Если лицевые примитивы в пространстве наблюдателя загорожены впереди
стоящими объектами, их изображения полностью или частично не должны
появиться на экране. Для этого предназначена большая группа алгоритмов
удаления невидимых     участков [6,7]. В их основе лежит анализ глубины
расположения участков различных примитивов. Видимыми считаются участки,
наиболее близкие к точке наблюдения. В       современных графических системах
преимущественное применение нашли алгоритм z-буфера (буфера глубины) и его
модификации, работающие в процессе проецирования элементов (точек)
примитивов на плоскость экрана. По вычисленным в процессе проецирования
координатам очередного элемента в буферной памяти выбирается многоразрядная
ячейка, в которую записываются код цветояркости элемента и код его удаления от
наблюдателя (код глубины). Если со временем элемент другого примитива
получит тот же адрес в памяти буфера, то его код удаления будет сравниваться с
кодом удаления, занесенным в буфер по этому адресу ранее. По результатам
сравнения в буфер будет занесена информация об элементе с меньшим кодом
глубины, то есть об элементе, более близком к точке наблюдения. В итоге, когда
содержимое буфера будет выводиться на экран, на засветку каждого пикселя