在 OpenGL ES 1.x 中,可以先执行 glTranslate,然后执行 glRotate,以修改旋转中心的位置(即围绕给定点旋转)。据我了解,在 OpenGL ES 2.0 中,矩阵计算是在 CPU 端完成的。我正在使用 IwGeom(来自 Marmalade SDK)——一个典型的(可能)矩阵包。从文档:
IwGeom 中的矩阵实际上是 4x3 格式,包括 3x3 旋转和 3 分量矢量平移。
我发现使用这种方法很难获得相同的效果。平移总是在旋转之后应用。此外,在 Marmalade 中,还设置了模型矩阵:
IwGxSetModelMatrix( &modelMatrix );
而且,显然,旋转和平移也以一种顺序应用:a)旋转,b)平移。
如何获得OpenGL ES 1.x 效果?