代码之家  ›  专栏  ›  技术社区  ›  Mark S.

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

  •  6
  • Mark S.  · 技术社区  · 17 年前

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

    2 回复  |  直到 17 年前
        1
  •  6
  •   Ivan Vučica    15 年前

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

    我会尝试一些类似于 glScalef(-1,1,1); 这将通过X轴翻转纹理坐标。

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

    更新: 同时我还玩过纹理矩阵。与在modelview和投影矩阵之间切换相同,可以切换到纹理矩阵;大约: glMatrixMode(GL_TEXTURE); 之后,您可以执行上述操作。

    您也可以只绘制一个四边形/两个三角形,然后使用它完成:)

        2
  •  0
  •   Mike F Mike F    17 年前

    你不能用OpenGL点精灵来做这件事;虽然可以移动精灵的中心,但其形状始终以相同的方式定向。

    你呢 可以 你们要做的就是把你们的精灵画成四边形,这样你们就可以任意翻转、旋转和弄乱它们。有关于在屏幕上手动绘制精灵(也称为广告牌)的教程 NeHe