0

最大 17 のテクスチャを結合し、openGL を使用してクワッド (2 つの三角形) にレンダリングする必要があります。これらのクワッドを大量に (おそらく 500) レンダリングする必要があります。

そうするための最速/最良の方法は何だろうと思っていました:

A. 多くのパスでレンダリングする B. FBO でテクスチャを結合し、一度レンダリングする C. OpenGL マルチテクスチャを使用し、いくつかのパスでレンダリングする D. テクスチャを CPU と結合し、OpenGL テクスチャにアップロードしてからレンダリングする E. その他?

4

2 に答える 2

1

複数のパスとは、複数のピクセル シェーダーの実行と複数の ROP/ブレンディング操作を意味し、前世代と現世代のハードウェアの両方で簡単にボトルネックになる可能性があります。そのため、すべてを 1 回または数回のパス (C) に詰め込むと有利です。

「FBOで結合する」ことについてはよくわかりませんが、それについて確固たる証拠を提供することはできませんが、遅くなる可能性が高いように「感じます」(少なくとも2つのFBOリバインドと少なくとも1つのパイプラインストールがあるため) )。もちろん場合によりますが... 17 の同じテクスチャを 1 回結合し、1 つの結合されたテクスチャを 1000 回描画すると、非常に高速になる可能性があります。これらの 17 のテクスチャを組み合わせる方法が 10 種類ほどあると、見た目が変わる可能性があります。

最新の GPU では、フラグメント シェーダーで最大 17 のテクスチャをサンプリングしても問題はなく (GL 3.x ハードウェアでは最低でも 48 です)、簡単です。

于 2011-02-21T21:46:33.237 に答える
0

A、B、Cは同じパフォーマンスである必要があります。

それはすべて、GPUとCPUがどれほど強力であるかにかかっています。これにより、a、b、c、またはdのいずれかを使用するかどうかが決まります。

于 2011-01-30T12:02:47.817 に答える