0

私が実行する場合

#define SCREEN_SIZE 512
glEnable(GL_DEPTH_TEST);
glViewport(0, 0, SCREEN_SIZE, SCREEN_SIZE);

これにより、深度バッファーのサイズは SCREEN_SIZE x SCREEN_SIZE になりますか?

4

1 に答える 1

2

これにより、深度バッファーのサイズは SCREEN_SIZE x SCREEN_SIZE になりますか?

いいえ。深度バッファはウィンドウ フレーム バッファの一部です。通常、このようなウィンドウ フレーム バッファは、

  • フロントカラープレーン
  • バックカラープレーン
  • 深度バッファ
  • ステンシル バッファ

これらのプレーンはすべて同じサイズ、つまり OpenGL コンテキストが作成されたウィンドウのサイズです。ビューポートは、正規化されたデバイス座標の [-1, 1] 範囲にマッピングされるウィンドウのサブセットを定義するだけです。つまり、投影ターゲットとして使用されるフレームバッファの一部を選択します。ビューポートは、ビューポート範囲の「外側」のものを切り取る必要さえありません。これが必要な場合は、シザー テストと組み合わせる必要があります。

于 2012-01-04T17:47:32.687 に答える