1

OpenGLでのクリッピングについて質問があります。小さなビューポートがあり、大きな画像の一部をレンダリングしたいと思います。のような大きな画像を描くと

glEnable(GL_TEXTURE_RECTANGLE)

glColor3f(1,1,1)

glTexCoord2f(0,height)
glVertex2f(0,0)

glTexdoord2f(width,height)
glVertex2f(width,0)

glTexCoord2f(width,0)
glVertex2f(width,height)

glTexCoord(0,0)
glVertex2f(0,height)

幅と高さは画像(テクスチャ)のサイズであり、ビューポートよりもはるかに大きくなります。

私の質問は次のとおりです。OpenGLは最初にビューポートのサイズに対して長方形をクリップしてから描画しますか、それとも最初に画像全体をレンダリングしてからクリップしますか?

4

1 に答える 1

1

最初にジオメトリをクリップしてから描画します。より具体的には、OpenGL は個々のフレームバッファ要素 (ピクセル) をレンダリングする前にすべてのジオメトリ処理を行います。3.3 GL 仕様 (セクション 2.4) からの関連する引用を次に示します。

最終的に得られるプリミティブは、次の段階であるラスター化に備えて表示ボリュームにクリップされます。ラスタライザは、ポイント、ライン セグメント、またはポリゴンの 2 次元記述を使用して、一連のフレームバッファ アドレスと値を生成します。

于 2013-03-18T15:58:25.503 に答える