2013-07-17 7 views
8

OpenGLドキュメントのどこにも見つかりませんでした。前に返信されている場合は申し訳ありません。しかし、私の質問は、あるFBOのピクセルを別のFBOにコピーしていて、それぞれに複数の(必要でない同数の)カラーアタッチメントがあり、マスクがGL_COLOR_BUFFER_BITの場合、どのカラーアタッチメント(GL_COLOR_ATTACHMENT0、GL_COLOR_ATTACHMENT1、.... GL_COLOR_ATTACHMENTN)コピーしますか?それらのすべて?はいの場合、これらのFBOに異なる数のカラーバッファが接続されているとどうなりますか?GL_COLOR_BUFFER_BITマスクが指定されている場合、glBlitFramebufferはすべてのカラー添付ファイルをコピーしますか?

glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo1); 
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo2); 

注fbo1 2色アタッチメントを有し、fbo2は、4色の添付ファイルを持っていること:

は、このように結合している2 FBOsがあると仮定する。

この場合、glBlitFrameBufferカラー添付ファイルはどのようにして表示されますか?

答えて

13

framebuffer color blitting operationGL_READ_FRAMEBUFFERためcurrent glReadBufferからのみ読み込みます、そして、それはGL_DRAW_FRAMEBUFFERに指定さthe glDrawBuffersからのみ書き込みます。だから添付ファイルについてではありません。それは2つのフレームバッファの読み込みと描画バッファに関するものです。

+1

ありがとうございました。私はそれを知っていた。私の質問はまだ成立しています。 ** \t ** glBindFramebuffer(GL_DRAW_FRAMEBUFFER、fbo2); ** fbo1 \t ** glBindFramebuffer(GL_READ_FRAMEBUFFER、fbo1):質問は、より明確な作りのために、ここではこのようにバインドされている2 FBOsがあります2色の添付ファイルがあり、fbo2には4色の添付ファイルがあります。では、この場合、glBlitFrameBufferはカラー添付をどのようにコピーしますか? – viktorzeid

+4

@kvikram: "*私はそれを知っていた*"いいえ、あなたはなかった、あなたはまだありません。把握していないのは、 "現在のglReadBuffer"と "GL_READ_FRAMEBUFFERにバインドされた*フレームバッファー"の違いです。私が言ったように、それは添付ファイル*についてではありません。それは、フレームバッファ内のバッファの読み込みと描画に関するものです。 –

+3

ありがとうNicol。私はあなたが私の理解をクリアしたと思う。 最初の手順は、読み込み/書き出しのFBOを選択することです。 \t glBindFramebuffer(GL_READ_FRAMEBUFFER、fbo1); \t glBindFramebuffer(GL_DRAW_FRAMEBUFFER、fbo2); 次に、読み込み/描画用のカラーバッファを明示的に指定します。 glReadBuffer(GL_COLOR_ATTACHMENT0); glDrawBuffer(GL_COLOR_ATTACHMENT3); 、次にblit操作を実行します。\t glBlitFramebuffer ..? これは、fbo1のカラーアタッチメント0のバッファをfbo2のカラーアタッチメント3のバッファにコピーしますか? – viktorzeid

関連する問題