0

.objモデルのv、vn、vtの量は同じですか?ドローごとに1つのインデックスしか使用できないので、VBOを使用する必要があるので質問します。

struct VertexCoord
{
float x,y,z,w;
float nx,ny,nz;
float u,v;
};

したがって、オフセットをストライドすることで、すべてのバッファーに1つのインデックスを使用できます。

4

1 に答える 1

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/

于 2013-02-19T12:43:51.580 に答える