【发布时间】:2011-04-16 16:07:46
【问题描述】:
当尝试使用顶点数组(而不是使用立即模式渲染)在 OpenGL 中绘制以下四边形时,我得到了图片中显示的图形故障(线段),可以在下面的第二个链接中找到。这条线似乎向上延伸到无穷远。
GLdouble vertices[] = {
// back
0.0, 0.0, 0.0,
si, 0.0, 0.0,
si, -si, 0.0,
0.0, -si, 0.0,
// front
0.0, 0.0, si,
0.0, -si, si,
si, -si, si,
si, 0.0, si,
// left
0.0, 0.0, 0.0,
0.0, -si, 0.0,
0.0, -si, si,
0.0, 0.0, si,
// right
si, 0.0, 0.0,
si, 0.0, si,
si, -si, si,
si, -si, 0.0,
// top
0.0, 0.0, 0.0,
0.0, 0.0, si,
si, 0.0, si,
si, 0.0, 0.0,
// bottom
0.0, -si, 0.0,
si, -si, 0.0,
si, -si, si,
0.0, -si, si,
};
立即绘图:
glBegin(GL_QUADS);
for (int i = 0; i < sizeof(vertices)/sizeof(*vertices)/3; i++)
glVertex3d(vertices[i * 3], vertices[i * 3 + 1], vertices[i * 3 + 2]);
glEnd();
用顶点数组绘图:
glVertexPointer(3, GL_DOUBLE, 0, vertices);
glDrawArrays(GL_QUADS, 0, sizeof(vertices)/sizeof(*vertices));
图片:
Correct cube drawn in immediate mode
Glitchy cube drawn with vertex array
我做错了什么?
【问题讨论】:
标签: opengl vertex-array