これらの要素を別々のバッファーに保持すると、よりクリーンで簡単に作業できるようになりますが、それらすべてを 1 つの大きなバッファーに保持する方がパフォーマンスが向上するかどうかを知りたかったのです。
3 に答える
6
複数のバッファを使用する利点は、特別なレンダリングのために 1 つを簡単に無効にできることです (たとえば、深度のみでは法線もテクスチャ座標も必要ありません)。
ただし、すべての属性を 1 つの配列にインターリーブして格納すると、レンダリング時のキャッシュの局所性が向上します。
于 2012-09-03T10:09:27.147 に答える
4
配列の構造または構造の配列とその効率について話しています。ほとんどの場合、プロセッサ キャッシュをより有効に利用できるため、構造体の配列の方が効率的ですが、これはデータがメモリ内にある順にアクセスすることを前提としています。
ただし、一部のデータが他のデータとは異なるレートで更新される場合、それらを別のバッファに置くと、更新する必要があるデータのみを更新できるというメリットがあります。
于 2012-09-03T10:13:19.653 に答える
3
OpenGL wikiによると、
別々の VBO を使用しても、パフォーマンスが大幅に低下することはありません。それは 5% 程度ですが、あなたのテストではそうではないかもしれません。
このステートメントが動的データ専用かどうかはわかりませんが、私のエンジンでは別の VBO を使用しています。
于 2012-09-03T10:10:59.737 に答える