Текущий архив: 2003.03.03;
Скачать: CL | DM;
ВнизZ-Buffer Найти похожие ветки
← →
Tugrik (2002-09-24 11:54) [0]Люди, обьясните, что такое Z-Buffer, а то часто слышу, а не знаю что это!
← →
AL2002 (2002-09-24 13:33) [1]Может, в геймстроительстве и по другому, но я знаю, что это глубина (Depth).
XYZ — говорит что-то?
← →
Sapersky_ (2002-09-24 21:57) [2]Z-буфер применяется для удаления невидимой геометрии. При рисовании треугольника для каждой точки заносится её Z-значение, и при рисовании последующих треугольников для их точек проверяется, дальше ли они находится или ближе; если ближе, точка рисуется и в Z-буфер заносится новое значение; иначе отбрасывается.
Таким образом обычно рисуются 3D-модели (персонажи); для рисования окр. среды существуют специальные методы отсечения.
← →
Digitman (2002-09-25 10:19) [3]>Tugrik
Иными словами - Z-буфер есть массив, хранящий значения Z-координат точек в пространстве 3D-сцены, перспективная 2D-проекция которой строится и визуализируется на экране.
На огурцах :
пусть есть точка A(X,Y,Z) в 3D-пространстве, которая в рез-те визуализации сцены должна стать точкой A"(X", Y") на плоскости визуализации - видеопамяти, хранящей цветовые значения точек растра размером, скажем, 320 х 200
координаты точек A" расчитываются исходя из координат точек A по законам перспективной проекции :
A"(X", Y") = A"(X/Z, Y/Z)
при этом для всех точек А, лежащих, скажем, на оси Z (пусть это будет ось взгляда, где глаз наблюдателя находится в точке (0,0,0) и направлен в сторону положительных значений оси Z)соответствующие точки A" будут иметь одни и те же координаты - A(0, 0), но, возможно, разные цвета.
но ведь рисовать на экране следует лишь ту точку A", которая соответствует точке А, находящейся ближе к наблюдателю, ибо все прочие точки на этой же оси взгляда попросту невидны наблюдателю - они "загорожены" самой ближней точкой.
сразу возникает вопрос : а как определить, следует ли рисовать очередную расчитанную точку A", если буфер растра не содержит никаких сведений об удаленности данной точки ?
ответ на этот вопрос и содержит Z-буфер :
при принятии такого решения для соответствующих точек A и A" из буфера выбирается соотв.значение Z-координаты B(Z) и
- если B(Z) из буфера меньше чем A(Z), то точка не рисуется
- если иначе, то B(Z)=A(Z) и точка рисуется
Страницы: 1 вся ветка
Текущий архив: 2003.03.03;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.009 c