0

2 つの VBO があります。1 つはデータでいっぱいで、もう 1 つはこのデータへのインデックスでいっぱいです。どちらも異なるメッシュの連結です。これらのものをそのような形式で描く方法はありますか?

視覚的に:

Each [] denotes a mesh
Vertex VBO: [  vertex data ][  vertex data ][  vertex data ]
Index  VBO: [indices into ^][indices into ^][indices into ^]

インデックスの配列と頂点の配列にオフセットを指定する方法はありますか? すべてのデータは同じ形式です。

4

1 に答える 1

1

VBO がバインドされている場合、glVertexAttribPointer (および従来の gl…Pointer) 関数は、「データ」パラメーターとしてバイト オフセットを取得します。数値をキャストする代わりにvoid*、関数シグネチャをuintptr_t(stdint.h にある) を取るようにキャストすることをお勧めします。これが実際に起こるはずです。

同様に、glDrawElements を使用してインデックス配列にオフセットできます。バインドされたインデックス バッファーがある場合、バッファーにバイト オフセットがかかります。

別のアプローチは、glDrawElementsBaseVertexを使用することです。

于 2012-11-17T09:55:57.553 に答える