0

私はOpenGLでゲームに取り組んでおり、これが私がやりたいことです:

  1. ゲームロジックの反復中に、計算のためにテクスチャのテクセルにアクセスします。
  2. それでも同じロジックの相互作用中に、テクスチャのテクセルを変更する可能性があります。
  3. テクスチャの現在のバージョンでゲームシーンをレンダリングします。
  4. テセルデータへの同様のアクセスで別の反復を開始します。

glGetTexImage()を使用すると、プログラムがクラッシュするという問題が発生します。とにかく、これが使用したいものかどうかは完全にはわかりません。

これを行うために私が見ることができる唯一の簡単な方法は、システムメモリにテクセル情報を含むバッファを用意し、それをいじり回して、反復ごとに新しいOpenGLテクスチャを生成することです。それは悪い動きのようです。

何か助けはありますか?

4

2 に答える 2

3

これを行うには、いくつかの方法があります。

  1. テクスチャを変更するために非テクスチャ データが必要ない場合は、フラグメント シェーダを使用できます。(ピンポンテクニックはそれで面白いかもしれません)
  2. テクスチャのごく一部のみを置き換え、パフォーマンスを心配する必要がない場合、または古いグラフィック カードで動作する必要がある場合は、glTexSubImage2D を使用します。
  3. ピクセル バッファ オブジェクトを使用します。それは glTexSubImage2D よりも速いはずです。詳細については、こちらを参照してください。
于 2009-04-08T07:17:51.870 に答える
0

glTexSubImage2dがあなたが探しているものだと思います。

于 2009-04-07T23:04:42.960 に答える