このテーマは、他の最適化問題と同様に、多くの話題に上りますが、私が欲しい (と思う) ものを見つけることができませんでした。
多くのチュートリアル、さらには SO の質問にも同様のヒントがあります。一般的に以下をカバーします:
- GL 顔カリングを使用する (シーン ロジックではなく、OpenGL 関数)
- 1 つのマトリックスのみを GPU (projectionModelView の組み合わせ) に送信するため、MVP の計算が頂点ごとからモデルごとに 1 回に減少します (あるべき姿)。
- インターリーブされた頂点を使用
- 可能な限り多くの GL 呼び出しを最小限に抑え、必要に応じてバッチ処理します
そしておそらくいくつか/多くの他の人。私は (好奇心のために) いくつかの頂点バッファーを使用して、アプリケーションで 2,800 万個の三角形をレンダリングしています。上記のすべての手法を (私の知る限り) 試しましたが、パフォーマンスの変化はほとんどありませんでした。
私の実装では約 40FPS を受信していますが、これは決して問題ではありませんが、これらの最適化の「ヒント」が実際にどこで使用されるのかについてまだ興味がありますか?
私の CPU はレンダリング中に約 20 ~ 50% アイドル状態になっているため、パフォーマンスを向上させるために GPU に依存していると思います。
注:現在、gDEBugger を調べています。
ゲーム開発に投稿されたクロス