OpenGl - 我不能用glDrawArrays绘制正方形

时间:2015-03-04 23:13:39

标签: opengl

我是OpenGl编程的新手。我正在研究绘制三角形的示例代码。我设法改变它的形状,但现在我正试图改变方形。但是经过多次尝试和挖掘谷歌仍然只显示三角形。

这是代码的一部分:

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);

任何人都可以指导我该怎么做?

1 个答案:

答案 0 :(得分:1)

这一行:

glDrawArrays(GL_LINE_LOOP, 0, 3);

告诉OpenGL从你的阵列中抽取3个点。尝试将其更改为:

glDrawArrays(GL_LINE_LOOP, 0, 4);