.objモデルのv、vn、vtの量は同じですか?ドローごとに1つのインデックスしか使用できないので、VBOを使用する必要があるので質問します。
struct VertexCoord
{
float x,y,z,w;
float nx,ny,nz;
float u,v;
};
したがって、オフセットをストライドすることで、すべてのバッファーに1つのインデックスを使用できます。
いいえ、v、vt、vn の数は異なる場合があります。
「v」のリスト、次に「vt」、「vn」などのリストがあることに注意してください...
最後に面のリストがあります: 1/2/3、4/5/4 など。バージョンは異なる場合があります。
顔のリストが「1/1/1」、「4/4/4」のように見える場合にのみ、属性について同じになります。
これは説明するのが少し難しいですが、要点を理解していただければ幸いです:)
したがって、一般に、obj データを VBO 構造に直接マップすることはできません。もちろん、OpenGL ではインデックス付きジオメトリを使用できますが、これは特定の頂点のすべての属性ごとに 1 つのインデックスを意味します。位置、テクスチャ座標を個別にインデックス付けすることはできません。何らかの方法でデータを再配置する必要があります。
ここにいくつかのリンクがあります:
http://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_Load_OBJ
http://xiangchen.wordpress.com/2010/05/04/loading-a-obj-file-in-opengl/