2

私は2つの一見矛盾するステートメントを指摘するOpenGlの本を読んでいます:

  1. カメラは原点に配置され、負のz軸を見下ろします。
  2. デプスバッファはデフォルト値の1.0にクリアされ、Z値が低いピクセルは、可視性テストに合格して画面に表示されます。

デプスバッファの概念は理解していますが、デプスバッファテストに合格するために、他のZよりも小さいZがより高いZ値の「前」にあると判断される方法がわかりません。

より高いZ値が「前面」にあるため、深度バッファーの比較に勝つと思います。ここで何が欠けていますか?

4

2 に答える 2

1

モデルビュー変換後、すべてのポイントは「ビュー座標」にあり、カメラは-z軸を見下ろす原点にあります。次に、ポイントは投影変換を通過し、「クリップ座標」になります。ここで、z値は範囲[-1、+1]にマップされます。近平面上のポイントは最終的に-1のz値になり、 遠平面上のポイントは最終的に+1のz値になります。

これはすべての予測に当てはまります。パイプラインは、クリッピングと遠近法の除算の後、すべての座標値が[-1、+ 1]の範囲にあることを想定しています。ここでは、ポイントは正規化されたデバイス座標にあります。

于 2013-03-03T16:19:44.383 に答える
1

Zバッファの値は範囲内[0.0,1.0]にあり1.0、錐台に実際に含まれている距離です(それを超えるものは表示されません)。

つまり、図形のピクセルを描画するときに、そのZ値が現在のピクセルよりも低い場合、そこにあったもの(何もないか、別のピクセルだけ)よりも目に近いため、Zが更新され、ピクセルが描画されます。それ以外の場合、ピクセルは破棄されます。

于 2013-03-03T01:12:44.423 に答える