(OpenGL iOS)在X和Y坐标中移动时的原始形状(2D)失真(GL_TRIANGLE_STRIP)

时间:2012-01-26 07:22:38

标签: iphone ios graphics opengl-es 3d

当我通过x和y坐标移动基元时,我得到了这种奇怪的扭曲原始形状(而不是正方形)。

这是一个快照: http://img535.imageshack.us/img535/9046/screenshot20120126at122.png

我正在使用正交投影,因为我想在2D中渲染。

这是渲染代码:

//vertex definition
static GLfloat qdt[] = {
    30.0f, 60.0f, -0.03f,
    30.0f, 30.0f, -0.03f,
    60.0f, 60.0f, -0.03f,
    60.0f, 30.0f, -0.03f
};

//clear buffers
glClear(GL_COLOR_BUFFER_BIT);// also tried using GL_DEPTH_BUFFER_BIT

//load matrices
glLoadIdentity();

//drawing
glVertexPointer(3, GL_FLOAT, 0, &qdt[0]);
glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 12);

//swap buffers
[glContext presentRenderbuffer:GL_RENDERBUFFER_OES];

我也禁用了深度缓冲区。 如果有人指出导致这种失真的错误,那就太好了。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

将12替换为4,因为您绘制了4个顶点:

glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);