1

Collada ファイル (.dae) にパックされたデータの読み取りについて学び始めました。特定のメッシュの頂点があるところまで来ました。今のところ、glBegin と glEnd の呼び出しの間にそれらをループしているだけですが、すべての顔がレンダリングされているわけではないことに気付きました。有効な三角形ストリップを形成するために頂点が正しい順序になっていないことが原因である可能性があると思います。私が使用しているものなので、おそらくこの質問はblender .daeエクスポーターを対象とする必要があることに気付きました。

これは私が使用している正確なコードです:

//Vertices is a vector of vertices that I pulled from the collada file.

glBegin(GL_TRIANGLE_STRIP);
for(int i = 0; i != Vertices.size(); i++)
{
    glVertex3f(Vertices[i]->x, Vertices[i]->y, Vertices[i]->z);
}
glEnd();

読み込もうとしているモデルは単純な飛行機です。Vertices の内容は次のとおりです。

1: 1, 1, 0
2: 1, -1, 0
3: -1, -1, 0
4: -1, 1, 0
4

1 に答える 1

0

単純な平面を描きたい場合、これは有効な三角形ストリップではありません。

次の順序で頂点を描画する必要があります。

1: 1, 1, 0
2: 1, -1, 0
4: -1, 1, 0
3: -1, -1, 0

あなたが描いているのは次のことです。

    4      1 
    |\    /|
    | \  / |
    |  \/  |
    |  /\  |
    | /  \ |
    |/____\|
    3      2

エクスポーターに問題があるようです..

于 2010-08-16T23:55:31.447 に答える