A、B、C、D の 4 つのコンテンツ レイヤーがあるとします。それぞれが 1 種類のビジュアル コンテンツを表します。
各レイヤーは、いくつかの連続したレンダリング呼び出しを行います (さまざまなレイヤーからのインターリーブされたレンダリング呼び出しはありません)。
また、ビジュアル エフェクトを適用するには、レイヤ B と D をテクスチャにレンダリングする必要があります。メモリ フットプリントを削減するために、テクスチャが 1 つだけの FBO を 1 つだけ使用します。
だから、現時点で私は:
- A コンテンツをレンダリングします。
- FBO のバインド > B コンテンツのレンダリング > FBO のバインド解除 > テクスチャのレンダリング (B コンテンツ);
- C をレンダリングします。
- FBO のバインド > D コンテンツのレンダリング > FBO のバインド解除 > テクスチャのレンダリング (D コンテンツ)。
このアプローチの主な問題は、FBO をバインド/バインド解除するたびに、デフォルトのフレームバッファがメモリに保存/メモリから復元されることです。
レイヤーのレンダリング順序を変更できないため、レイヤー B と D を最初に FBO に単純に描画することはできません。
これを行い、メイン フレーム バッファの多くの保存/復元を回避するより良い方法はありますか? これは一例であり、実際のケースはより複雑 (より多くのレイヤー) であることに注意してください。