1

renderbuffer次のようにフォーマットするとします。

glRenderbufferStorageMultisample(GL_RENDERBUFFER, sampleCount, GL_R32UI, imageWidth, imageHeight);

where sampleCount >= 2.

そして、それを FBO にアタッチし、何かを描画し、それをマルチサンプリングされていない FBO にブリットしてマルチサンプリングを解決し、最後に glReadPixels を呼び出して、結果の画像から符号なし整数 (ピクセルごとに 1 つ) を取得するとします。

どのような整数が得られますか?

それらのいくつかは複数のサンプルのブレンドである可能性がありますか、それともこの場合はピクセルごとに 1 つのサンプルのみが選択されているのでしょうか (おそらく、このコンテキストでは整数ベースの形式はブレンド可能とは見なされないため)、他のサンプルは破棄されますか? それとも何か他のことが起こりますか?

4

1 に答える 1

3

OpenGL 4.5 仕様の 511 ページのセクション 18.3.1「Blitting Pixel Rectangles」の下に、次のように記載されています (強調を追加)。

読み取りフレームバッファがマルチサンプリングされ(SAMPLE_BUFFERS の有効値が 1)、描画フレームバッファがマルチサンプリングされていない (SAMPLE_BUFFERS の値が 0) 場合、ソースの各ピクセル位置に対応するサンプルは、書き込まれる前に単一のサンプルに変換されます。目的地。フィルタは無視されます。ソース形式が整数型またはステンシル値の場合、ピクセルごとに1 つのサンプル値が選択されます。

そのため、どのサンプルを指定することなく、ピクセルごとに 1 つのサンプルが選択されます。

于 2015-05-06T06:12:31.803 に答える