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

时间:2020-03-06 14:26:46  来源:igfitidea点击:

我加载了一个精灵作为纹理,我需要对其进行动画处理,使其可以"左右""面对"-本质上有时我需要"翻转"它。我知道OpenGL具有gltranslate可以重新定位对象,而glrotate可以旋转对象。有没有一种方法可以简单地在一个轴上翻转它?如果没有,我们将如何实现?

解决方案

我们不能使用OpenGL点精灵执行此操作;尽管可以移动精灵的中心,但是精灵的形状始终以相同的方式定向。

我们可以做的是将精灵绘制为四边形,使我们可以随意翻转,旋转和弄乱它们。有关于在NeHe上手动绘制精灵(又名广告牌)的教程

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

我将沿着glScalef(-1,1,1);的方法进行尝试,该方法将通过X轴翻转纹理坐标。

就像我说的那样,我还没有玩过点精灵,但是我也没有弄乱纹理矩阵。不过,它们似乎确实很有用。

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

我们也可以只画一个四角形/两个三角形并用它来完成:)