我正在尝试使用OpenGL在C ++中绘制一个简单的条形图。
我正在努力画一个盒子......似乎是一个非常简单的任务,但我一定是误解了一些东西。
因此,为了帮助我更好地了解发生了什么,我尝试绘制线环。
由于某种原因,我的线路循环不断跳回坐标(0,0,0)。我不明白为什么会这样。
这是我的绘图代码:
GLfloat* points = new GLfloat[12];
points[0] = 0.5; // x
points[1] = 0.5; // y
points[2] = 0.0; // z
points[3] = 0.6; // x
points[4] = 0.5;
points[5] = 0.0;
points[6] = 0.6;
points[7] = 0.6;
points[8] = 0.0;
points[9] = 0.5;
points[10] = 0.6;
points[11] = 0.0;
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, points);
glEnableVertexAttribArray(0);
glDrawArrays(GL_LINE_LOOP, 0, 12);
这适用于绘制GL_LINES(线对),但不能正确绘制GL_TRIANGLE_FAN或GL_TRIANGLE_STRIP或GL_LINE_LOOP。 (0,0,0)处始终有1个坐标。这个代码有2组,另一组有不同的坐标。两个形状都有一条线到(0,0,0)。
我认为我完全误解了一些事情?
可能应该提到我已经习惯了旧的OpenGL。