iPhoneアプリでパフォーマンス(FPS)をさらに向上させたいと思っています。私はすでにインターリーブされたデータ、GL_SHORT、および単一のテクスチャアトラスを使用しています。私がすでに行ったことの詳細については、この質問を参照してください。
次に、VBOを使用してパフォーマンスを向上させる方法を検討します。AppleのOpenGLESのドキュメントによると、これは実行するのに適したステップです。ただし、モデルビューマトリックスの変更によってVBOがどのように影響を受けるか(または影響を受けるかどうか)については説明していません。基本的に、同じオブジェクトをシーンに複数回レンダリングしますが、毎回わずかに異なるモデルビューマトリックスを使用します。オブジェクト間の主な違い(シーン内の位置以外)は、テクスチャマッピングです。それらはすべてわずかに異なるテクスチャ座標を持っています。
VBOはこの状況で役立ちますか?個々のオブジェクトごとに個別のVBOを割り当てる必要がありますか?
アップデート1
これまでのところ、VBOは私のパフォーマンスに悪影響を及ぼしているようです。FPSは20代半ばから高値に戻りました。私は70のVBOを割り当てています。データ用に35、インデックス用に35です。データと1つのグローバルインデックス配列に対してこれを35にノックダウンできます。glBufferSubData()を使用して、必要に応じてテクスチャ座標を更新しています。
もう1つの考えは、すべての静的データを分割し、そのVBOにGL_STATIC_DRAWを指定することです。