5

私が取り組んでいる iPhone/iPad 用の小さなプロジェクトでいくつかのテストを行っているときに、GL_LINES で glDrawElements を使用してワイヤーフレームを描画すると、CPU パフォーマンスが大幅に低下することがわかりました。

これはシナリオです:

  • 640 個の頂点を持つモデル (位置に 4 つの浮動小数点数、法線に 3 つの浮動小数点数、位置合わせの問題なし... すべて 4 バイト境界上)
  • 3840 インデックス ( unsigned short )
  • 頂点とインデックスの両方が VBO を使用します ( VAO なし)
  • GL_TRIANGLES を指定した glDrawElements で描画された上記のモデルは正常に動作します

それで:

  • 640頂点の同じモデル
  • 2560 インデックス
  • VBOあり、VAOなし
  • glDrawElements と GL_LINES を使用して描画すると、gleRunVertexSubmitARM への連続呼び出しがトリガーされ、CPU 使用率が急激に上昇します...

どちらの場合も、モデルは期待どおりに見え、glErrors はありません...

問題はデバイスに依存しているようです。私はそれを iPhone 3GS と iPhone 4 で経験していますが、iPad 2 やシミュレーターでは経験していません。iPad 2 のフレーム時間 CPU = 1 ミリ秒で gleRunVertexSubmitARM の呼び出しなし、iPhone 4 のフレーム時間 CPU = 12 ミリ秒で gleRunVertexSubmitARM の連続呼び出し。

誰かがこの動作を説明したり、私が犯している可能性のある間違いを指摘したりできますか?

どんな洞察も高く評価されます。前もって感謝します、

フランチェスコ

4

2 に答える 2