z-buffering 和 w-buffering

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的另一个缺点是不能得到硬件的广泛支持。

你可能感兴趣的:(buffer)