(OpenGL iOS) Примитивная форма (2D) искажается (GL_TRIANGLE_STRIP) при перемещении по координатам X и Y - PullRequest
0 голосов
/ 26 января 2012

Я получаю эту странную искаженную примитивную форму (вместо квадрата), когда перемещаю примитив по координатам 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 голосов
/ 26 января 2012

Замените 12 на 4, потому что вы рисуете 4 вершины:

glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...