OpenGl - 我无法使用 glDrawArrays 绘制正方形

OpenGl - I can't draw square with glDrawArrays

我对 OpenGl 编程完全陌生。我正在研究绘制三角形的示例代码。我设法改变了它的形状,但现在我正试图变得正方形。但是经过多次尝试和挖掘 google 仍然只显示三角形。

这是代码的一部分:

glGenVertexArrays(VAO_cnt, VAOs);
glGenBuffers(VBO_cnt, VBOs);
float vtab[12]; 
vtab[0] = -0.5f; vtab[1] = -0.5f; vtab[2] = 0.0f;
vtab[3] = 0.5f; vtab[4] = 0.5f; vtab[5] = 0.0f;
vtab[6] = 0.5f; vtab[7] = -0.5f; vtab[8] = 0.0f;

vtab[9] = -0.5f; vtab[10] = 0.5f; vtab[11] = 0.0f;

glBindVertexArray(VAOs[0]);
glBindBuffer(GL_ARRAY_BUFFER, VBOs[0]);
glBufferData(GL_ARRAY_BUFFER, sizeof(vtab), vtab, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);

glClear(GL_COLOR_BUFFER_BIT);
glBindVertexArray(VAOs[0]);
glDrawArrays(GL_LINE_LOOP, 0, 3);

谁能指导我应该怎么做?

这一行:

glDrawArrays(GL_LINE_LOOP, 0, 3);

告诉 OpenGL 从您的数组中绘制 3 个点。尝试将其更改为:

glDrawArrays(GL_LINE_LOOP, 0, 4);