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

有帮助吗?

解决方案

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

我会沿着 glScalef(-1,1,1); 的路线尝试一些东西,它会用X轴翻转纹理坐标。

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

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

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

其他提示

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

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

scroll top