ВУЗ:
Составители:
Рубрика:
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-буфера (буфера глубины) и его модификации, работающие в процессе проецирования элементов (точек) примитивов на плоскость экрана. По вычисленным в процессе проецирования координатам очередного элемента в буферной памяти выбирается многоразрядная ячейка, в которую записываются код цветояркости элемента и код его удаления от наблюдателя (код глубины). Если со временем элемент другого примитива получит тот же адрес в памяти буфера, то его код удаления будет сравниваться с кодом удаления, занесенным в буфер по этому адресу ранее. По результатам сравнения в буфер будет занесена информация об элементе с меньшим кодом глубины, то есть об элементе, более близком к точке наблюдения. В итоге, когда содержимое буфера будет выводиться на экран, на засветку каждого пикселя
Страницы
- « первая
- ‹ предыдущая
- …
- 17
- 18
- 19
- 20
- 21
- …
- следующая ›
- последняя »