Render to Texture のコンセプトを実装していますが、FBO の範囲について疑問があります。テクスチャへのレンダリングを使用してデフォルト FBO で glDrawArrays 呼び出しを行った後、テクスチャと非デフォルト FBO を削除しています。次に、glReadPixels を呼び出して、デフォルトの FBO のコンテンツを読み取ります。それで、私の質問は、FBO とテクスチャを削除する前に readpixel を呼び出す必要があるということですか?
デフォルトのFBOで描画した後、デフォルト以外のFBOとテクスチャは必要ないと想定していましたが、後でOpenGLの開発者が、上記を参照してアプリケーションで奇妙なことをしていると言いました。これを理解するのを手伝ってください。
これが私がフォローしている手順です:
- フレームバッファ オブジェクトを作成し、カラー アタッチメントとして適切なテクスチャをアタッチします。
- FBO をバインドしてクリアする
- いくつかのプリミティブをレンダリングする
- FBO のバインドを解除して、システム FBO に切り替えます
- カラーアタッチメントとして使用されるテクスチャをバインドします
- 上記で作成したテクスチャを使用して、システム FBO でレンダリングします。
- 作成されたテクスチャと FBO を削除します。
- システム FBO からの glReadpixel。
さて、システム FBO とそれでレンダリングしたように。テクスチャとして使用されていたテクスチャやその他の FBO が必要なのはなぜですか?
注: 私は用語システム FBO を使用して、2 つの FBO を私の用語で区別しています。