如何在OpenGLES中翻转精灵/纹理?

时间:2008-09-19 16:23:24

标签: iphone objective-c opengl

我有一个精灵加载为纹理,我需要为它设置动画,让它“向左”或向右“ - 有时我需要”翻转“它。我知道OpenGL有一个重新定位对象的gltranslate,以及旋转它的glrotate。是否有一种方法可以简单地将其翻过一个轴?如果没有,你会怎么做到这一点?

2 个答案:

答案 0 :(得分:6)

我没有用点精灵搞砸,但我相信它们是纹理。纹理具有纹理矩阵,这意味着您可以对它们使用glTranslatef()glScalef()glRotatef()

我会尝试沿glScalef(-1,1,1);行的某些东西,它会将纹理坐标翻转到X轴。

正如我所说,我没有使用点精灵,但我也没有弄乱纹理矩阵。但它们看起来确实很有用。

更新:我在此期间使用了纹理矩阵。与在模型视图和投影矩阵之间切换的方式相同,您可以切换到纹理矩阵;大约:glMatrixMode(GL_TEXTURE);之后你可以进行上述操作。

你也可以画一个四/两个三角形并完成它:)

答案 1 :(得分:0)

你不能用OpenGL点精灵做到这一点;虽然你可以移动精灵的中心,但它的形状总是以相同的方式定位。

可以做的是将你的精灵画成四边形,这样你就可以按照自己想要的方式翻转,旋转和弄乱它们。在NeHe

上有手动绘制精灵(又名广告牌)的教程