OpenGL を使用して単純な遅延レンダラーを実装しようとしています。トピックを説明するさまざまなチュートリアルや論文を読みましたが、ほとんどの場合、G バッファーの構造について非常に最小限または抽象的な説明しか提供していません。通常は、拡散、深度、および法線バッファーを含みます。
しかし、単純なグラフィックス エンジンでさえ、テクスチャや調整可能なスペキュラー ライティングなどを使用した何らかのマテリアル レンダリングがなければ完成しません。すべてのプロパティに追加のバッファを追加すると、明らかに G バッファが大量に肥大化するので、2 番目のレンダリング パスでマテリアルごとのデータをすべて取得するための推奨される方法は何ですか?
私の OpenGL 実装では、フレームバッファを使用して、拡散、法線、および深度をそれぞれ および にレンダリングGL_COLOR_ATTACHMENT0
しGL_COLOR_ATTACHMENT1
ますGL_DEPTH_ATTACHMENT
。できればOpenGL 3.3コアにIDなどを保存する方法はありますか?