Я учусь использовать OpenGL ES 2.0 на iOS. Сейчас я хочу сделать простую 2D-анимацию (например, переместить прямоугольник по экрану и изменить его размер). Я начал с шаблона проекта для OpenGL ES, предоставленного Apple в Xcode. Мой код рисования выглядит так:
static GLfloat squareVertices[] = {
-0.5f, -0.33f,
0.5f, -0.33f,
-0.5f, 0.33f,
0.5f, 0.33f
};
// Update attribute values.
glVertexAttribPointer(VERTEX_ATTR, 2, GL_FLOAT, 0, 0, squareVertices);
glEnableVertexAttribArray(VERTEX_ATTR);
glVertexAttribPointer(COLOR_ATTR, 4, GL_UNSIGNED_BYTE, 1, 0, squareColors);
glEnableVertexAttribArray(COLOR_ATTR);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 5);
Теперь нарисуем красивый прямоугольник в середине экрана. Но если я начну менять прямоугольник, добавив следующий код, он начнет выглядеть так: выглядит как фанк :
squareVertices[5] -= .001;
squareVertices[7] -= .001;
Как будто часть прямоугольника прикреплена к центру экрана. Я совершенно новичок в OpenGL ES, поэтому я уверен, что моя проблема очевидна. Я также предполагаю, что это как-то связано с тем, что OpenGL ES является библиотекой 3D-графики, и я пытаюсь рассматривать ее как 2D-пространство. Итак, мой вопрос: как лучше всего рисовать и анимировать 2D-объекты в OpenGL ES 2.0? Я видел некоторые вещи в Интернете для OpenGL ES 1.1, но это не сильно мне помогает. Являются ли их специальные методы для 2D-рисования в OpenGL ES 2.0, или есть какой-то режим 2D-рисования?
Любое руководство будет с благодарностью.