私は、いくつかのワイヤーフレーム プリミティブをレンダリングする OpenGL コンテキストを持っています。それらの一部 (すべてではない) に後処理効果 (ぼかし、ブルームなど) を適用したいと考えています。これを実現するために、テクスチャ (カラー バッファー) とレンダー バッファー (深度バッファー) が添付されたオフスクリーン フレーム バッファーを定義しました。次に、次のことを行います。
- オフスクリーン バッファをバインドする
- パースペクティブ ビューの設定
- ぼかしたいワイヤーフレーム プリミティブを描画します
- オフスクリーン フレームバッファのバインドを解除し、「メイン」フレームバッファをバインドします
後処理すべきではないプリミティブをさらに描画する
オルソ ビューの設定
- 後処理シェーダーをセットアップし、オフスクリーン バッファーのテクスチャーを均一パラメーターとして渡します。
フルスクリーンクワッドを描画する
メインフレームバッファの内容を表示
問題は、テクスチャをオフスクリーン バッファにレンダリングし、その結果を 2D クワッドのテクスチャとして使用すると、深度情報が失われ、シーン全体がリアルに見えないことです。
私の質問は、どうすれば私のデプスバッファをフレームバッファにマージできますか? または、複雑な 3D シーンにぼかしやその他のフラグメントシェーダー効果を適用する一般的な方法は何ですか?