OpenGL:高速化Tips

opengl-accelerate.png

List of pages tagged with opengl:accelerate:

  • GL_TRIANGLE_FANよりもGL_TRIANGLE_STRIPの方が速い。
  • ディスプレイリストよりもVBOの方が速い
  • 頂点配列を使うときはインデックス使用のglDrawElements()が速い
  • テクスチャオブジェクトを使うといい。テクスチャオブジェクトってなんだ?
  • テクスチャを動的に書き換える必要があるなら、gl*TexSubImageがよい。
  • glDrawPixels()を使うよりか、その描きたい絵をテクスチャにして四角形に貼ったほうが速い

glGetやglIs系の関数は毎フレームと遅くなる。

glGetglIs系の関数は毎フレームと遅くなる。
これらのコマンドは、GetやIsの答えを出す前に、
すべてのキューに入れられているOpenGL関数呼び出しを強制的に実行するからです。
なのでこれらの関数は初期化の関数に入れましょう。
glGetErrorとかを事故防止に入れておくならフレームの最後に入れましょう
それか、gDEBuggerの「Break on OpenGL error」機能を使うとよいでしょう

その他

位置、法線、テクスチャ座標、と独立した配列にするよりも、
頂点の並びはnterleavedにしたほうがGPUのキャッシュのヒット率が良いらしい。


opengl-performance

サポートサイト Wikidot.com opengl-performance