私は小さなゲームに取り組んでいます (OS X Lion、Xcode 4、Objective-C / C++、Cocoa、OpenGL を使用)。それはかなり単純な概念です。2 次元配列内を動き回るオブジェクトがいくつかあります。今、ゲーム用の OpenGL GUI を書きたいと思っています。
私がしたことは、配列を調べて、オブジェクトの種類に依存するテクスチャを使用して、その特定の位置にある各オブジェクトの立方体を描画することでした。もちろん、私の最初の素朴な実装は少し CPU 集約的だったので、次のステップはテクスチャ アトラスを実装することでした。頂点がたくさんあるので、まだ改善の余地がたくさんあります。
VBO と DisplayList の方がはるかに高速であると読みました。いくつかのチュートリアルに取り組みましたが、実際の動的なゲーム環境での実装についてまだ多くの質問があります。
ゲームオブジェクトの表示リストをコンパイルするとします。特定の位置に配置したい場合は、glTranslatef() を使用する必要があります。しかし、glTranslatef() の多くは、非常に CPU を集中的に使用する可能性があります。どうすれば対処できますか?もちろん、可能なすべての位置で各種類のゲームオブジェクトの表示リストを作成することもできますが、それは非現実的であり、ゲームがタイルベースであるためのみ機能します...
VBO も同じ問題を抱えているようです。もちろん (少なくとも私の理解では) 頂点のメッシュ全体を作成し、配列を調べて、すべてのオブジェクトについて、オブジェクトの位置に関連付けられた頂点の立方体をレンダリングすることができます。しかし、頂点のメッシュ全体から特定の立方体にテクスチャを適用する方法がわかりません。メッシュ内のキューブ面ごとにテクスチャ座標を作成する必要がありますか?それとも、キューブの 6 つの面すべてに対してテクスチャ座標を作成するだけで十分でしょうか?