1

我开始学习如何读取 Collada 文件 (.dae) 中的数据。我已经到了拥有特定网格顶点的地步。现在,我只是在调用 glBegin 和 glEnd 之间循环它们,我注意到并不是所有的脸都被渲染了。我认为这可能是因为顶点的顺序不正确,无法形成有效的三角形带。我意识到也许这个问题应该针对搅拌机 .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();

我要加载的模型是一个简单的平面。这是顶点的内容:

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 回答