如何在OpenGLES中翻转精灵/纹理?
-
01-07-2019 - |
题
我有一个精灵加载为纹理,我需要为它设置动画,让它“面对”它。向左或向右 - 有时我需要“翻转”它。我知道OpenGL有一个重新定位对象的gltranslate,以及旋转它的glrotate。是否有一种方法可以简单地将其翻过一个轴?如果没有,你会怎么做到这一点?
解决方案
我没有用点精灵搞砸,但我相信它们是纹理。纹理具有纹理矩阵,这意味着您可以在它们上使用 glTranslatef()
, glScalef()
和 glRotatef()
。
我会沿着 glScalef(-1,1,1);
的路线尝试一些东西,它会用X轴翻转纹理坐标。
正如我所说,我没有使用点精灵,但我也没有弄乱纹理矩阵。但它们看起来确实很有用。
更新:我在此期间使用了纹理矩阵。与在模型视图和投影矩阵之间切换的方式相同,您可以切换到纹理矩阵;大约: glMatrixMode(GL_TEXTURE);
之后你可以进行上述操作。
你也可以画一个四/两个三角形并完成它:)
其他提示
你不能用OpenGL点精灵做到这一点;虽然你可以移动精灵的中心,但它的形状总是以相同的方式定位。
你可以做的是将你的精灵画成四边形,这样你就可以按照自己想要的方式翻转,旋转和弄乱它们。在 NeHe
不隶属于 StackOverflow