gldrawelements仅画一半四分之一

glDrawElements only draws half a quad

本文关键字:四分之一 一半 gldrawelements      更新时间:2023-10-16

这是我的功能:

void Object::draw2()
{
if(!mIsInitialised) { return; }
//Tell OpenGL about our vertex and normal data
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, &Vertices.front());
glEnableClientState(GL_NORMAL_ARRAY);
glNormalPointer(GL_FLOAT, 0, &Temp2.front());
//draw the .txt-file
glDrawElements(GL_TRIANGLES, Indices.size(), GL_UNSIGNED_INT, &Indices.front());
//restore the state GL back
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
}

我的索引 - 矢量包含:1 2 3 1 3 4

我的顶点 - 矢量包含:-1 -1 0 1 -1 0 1 1 0-1 1 0

当我运行程序时,它只会绘制半四角形 - 即三角形。

结果 -> https://i.stack.imgur.com/jzalg.png

您的索引向量应包含:

0 1 2 0 2 3

否则,您永远不会触摸顶点编号0,最终得到四分之一的一半。