3

コードでレンダリング先として FBO を正常に使用しています。私には明らかではありませんが、私がそうするときにどのような結果が期待できるかは明らかではありません:

glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
                       GL_TEXTURE_2D, someRgbaTexture, 0);
glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, *someRgbaBuffer);

OpenGL ES 2.0 (FBO が GL_FRAMEBUFFER_COMPLETE であると仮定)。

私の目標は、によって参照されるテクスチャのコンテンツを取得することsomeRgbaTextureです。デスクトップ OpenGL にはその目的のための glGetTexImage() 関数がありますが、ES には存在しません。

読み取りテクスチャとして設定someRgbaTextureし、別の FBO ターゲットに対して画面いっぱいのテクスチャ クワッドを実行してから、読み返すことで確実にうまくいきますが、その余分なパスは避けたいと思います。

したがって、フレームバッファの内容は、呼び出し後のテクスチャの内容とglFramebufferTexture2D()同じですか?それとも、その呼び出しは、将来のレンダリング操作が指定されたテクスチャをターゲットにすることを意味するだけですか?
後者の場合: レンダリング操作が 1 つのピクセルを書き込むだけの場合、または何も書き込まない場合はどうなりますか? コンテンツの保証は何ですかsomeRgbaTextureそれから?

4

1 に答える 1