遅延レンダラーを作成し、FBOを使用してこれを実現しようとしています。最初に、3つの異なるFBO(gbuffer、lbuffer、および "screen")を使用しましたが、機能しました。ただし、パフォーマンスは非常に劣っていました。ここで、1つのFBOを使用し、glFramebufferTexture2Dを使用してテクスチャを切り替える方がはるかに高速であることを読みました。
この手法の問題は、デプステクスチャから説明できない予測できない動作が大量に発生することです(デプスピーリングを実行しているため、2つのデプステクスチャを切り替えています)。デプステクスチャAからテクスチャBに切り替えるたびに、Aはゼロにクリアされ、その逆も同様です。
glFramebufferTexture2Dを使用して同じFBOの深度テクスチャを切り替えることに問題があるかどうか誰かが知っていますか?テクスチャをチェックするためにgDebuggerを使用しています。
Visual C++2010で開発しています。