z-buffering 和 w-buffering都表示深度值。几乎所有的
3-D
加速卡都支持
z-buffering
,这样就使得
z-buffers
成为现在最常用的深度缓冲类型。但是,
z-buffers
也有它本身的缺陷。由于它所使用的数学方法,使得一个
z-buffer
中产生的
z
值在它允许的范围内[
0.0,
1.0
]并不是均匀分布的。特别是靠近剪切面与远离剪切面处的比例,更是影响了
z
值的均匀分布。如果远平面的距离与近平面的距离的比为
100
,那么导致深度缓冲区的90%被花费在前10%的场景深度。
一般的娱乐程序或视觉仿真程序要求远近平面的距离比在
1000
到
10000
之间。比值为
1000
时,
范围的98%花费在深度的前2%上,
并且随着比值的增大,分布将变得更糟。这样可能会使较远距离的物体上的隐藏表面产生失真,特别是当使用
16-bit
深度缓冲时。
w
深度缓冲比
z-buffer
能更均匀地在远近剪切面之间进行分配。使用它的最大好处就是远近剪切面的距离比不再是关键因素。这样就允许程序使用更大的距离范围,同时仍能保持深度缓冲与观察位置间的精确联系。
w-buffer
也不是完美的,有时也会使近处物体的隐藏表面产生失真。
w-buffer
的另一个缺点是不能得到硬件的广泛支持。
转载于:https://www.cnblogs.com/SweetDream/archive/2006/04/26/386003.html