2011-01-24 11 views
0

私はOpenGLで影響力マップをレンダリングする必要があります。現時点では、地図上の各ポイントでの影響を表すために、100 x 100のクワッドを設定色でレンダリングしています。レンダリング方法をテクスチャで1つのクワッドに変更し、レンダリングパイプラインの速度を引き継ぐことを推奨しました。OpenGLでの高速テクセル設定

基本テストでは、glTexSubImage2Dがフレームあたり10,000テクセルを設定するには低すぎることが示されています。何か提案はありますか?各フレームにまったく新しいテクスチャを作成するほうがよいでしょうか?私の影響力マップは正規化された浮動小数点数(0.0〜1.0)であり、それはグレースケールの色に変換されます(1.0f =白)。

ありがとう:D

+0

10000テクセルを更新するために 'glTexSubImage2D()'を10000回呼び出すか、10000テクセルを更新するために1回呼び出しますか? – genpfault

+0

このタグ付き人工知能はなぜですか? – ziggystar

+0

テクニックは影響マップなので、タグ付きAIです。私はそれがAIであると考えて、私はそれを間違ってやっていると私に伝える人を引き付けるかもしれない。 –

答えて

2

あなたが現在glTexSubImage2Dの10000回の呼び出しで、別途10000のテクセルのそれぞれを更新していますか?

RAMに100x100グレースケールのフロートテクスチャ(10000浮動小数点数)を1つ使用し、その値を直接更新して、glTexImage2Dを1回呼び出してGPUにデータ全体を送信してください。バッファオブジェクトを使用してバックグラウンドでの転送を許可することもできますが、大量のデータを移動しないので不要です。

+0

それはトリックを行ったようです。私はglTexSubImage2Dに10,000回の呼び出しを行っていましたが、それは明らかに貧弱でした。 glTexImage2Dで新しいテクスチャを送る前に、全体をRAMに保存しておくと、作業がはるかに改善されました。ありがとう –