我正在学习如何在 iOS 上使用 OpenGL ES 2.0。现在我只想做一些基本的 2D 动画(例如在屏幕上移动一个矩形并改变它的大小)。我从 Apple 在 Xcode 中提供的 OpenGL ES 项目模板开始。我的绘图代码如下所示:
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 空间。所以我的问题是:在 OpenGL ES 2.0 中绘制和动画 2D 对象的最佳方法是什么?我在网上看到了一些关于 OpenGL ES 1.1 的东西,但这对我没有多大帮助。他们是在 OpenGL ES 2.0 中进行 2D 绘图的特殊技术,还是有某种 2D 绘图模式?
任何指导将不胜感激。