6

我有一个作为纹理加载的精灵,我需要为它设置动画,让它“面向”左或右——基本上有时我需要“翻转”它。我知道 OpenGL 有一个 gltranslate 可以重新定位一个对象,而 glrotate 可以旋转它。有没有一种方法可以简单地将它翻转到一个轴上?如果没有,您将如何实现这一目标?

4

2 回答 2

6

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

我会尝试一些沿着glScalef(-1,1,1);X 轴翻转纹理坐标的方法。

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

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

您也可以只绘制一个四边形/两个三角形并完成它:)

于 2008-11-22T22:23:55.850 回答
0

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

可以做的是把你的精灵画成四边形,这样你就可以随意翻转、旋转和弄乱它们。NeHe上有关于手动绘制精灵(又名广告牌)的教程

于 2008-09-19T17:03:27.123 回答