我是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);
任何人都可以指导我该怎么做?
答案 0 :(得分:1)
这一行:
glDrawArrays(GL_LINE_LOOP, 0, 3);
告诉OpenGL从你的阵列中抽取3个点。尝试将其更改为:
glDrawArrays(GL_LINE_LOOP, 0, 4);