1

小さな 2D エンジンを開発しているときに、残念ながら私の知識レベルではあなたの助けなしには解決できない小さな設計上の問題に出くわしました。

説明させてください: 私が 2D エンジンを開発しているゲームには複雑な効果が含まれている必要があり、複数のレンダー パスが必要になる可能性があります。問題は、マルチパス レンダリングの概念を正しく理解しているかどうかわからないことです。

このレベルの知識では、次のように実装します。

  1. 最初に、フレーム バッファ オブジェクトを作成、セットアップ (テクスチャにアタッチするなど) し、バインドします。
  2. 次に、FBO のアタッチされたテクスチャにエフェクトを適用する必要があるものをレンダリングします
  3. 最初のパスにシェーダーを使用して、そのテクスチャを同じ FBO にレンダリングします。
  4. FBO のバインドを解除し、最後のパスのシェーダーを使用して、添付されたテクスチャを標準の FBO にレンダリングします。

問題は、これが私の問題を解決する最も効率的な方法であるかどうか、またはこれを行うためのより良い方法があるかどうかです。

4

1 に答える 1

2

最初のパスにシェーダーを使用して、そのテクスチャを同じ FBO にレンダリングします。

同じテクスチャ内の同じイメージの読み取りと書き込みを同時に行うことはできません。できますが、未定義の動作が発生するため、おそらく役に立ちません。したがって、複数のテクスチャを使用するか、使用可能な場合はNV_texture_barrierを使用する必要があります。

于 2012-07-08T18:29:20.617 に答える