使用 drawtexture (OpenGl ES Android) 旋转精灵的问题

Posted

技术标签:

【中文标题】使用 drawtexture (OpenGl ES Android) 旋转精灵的问题【英文标题】:Problems rotating a sprite using drawtexture (OpenGl ES Android) 【发布时间】:2010-09-24 14:35:50 【问题描述】:

我正在尝试使用 drawtexture 旋转精灵,但没有任何反应。我正在使用以下代码:

gl.glRotatef(90, 0, 0, 1.0f); gl.glBindTexture(GL10.GL_TEXTURE_2D, TextureID); (GL11Ext) gl).glDrawTexfOES(x, y, z, width, height);

纹理被绘制到屏幕上,但没有旋转……有人吗? :)

【问题讨论】:

【参考方案1】:

来自OES_draw_texture extension:

Xs 和 Ys 直接在窗口(视口)坐标中给出。

所以传入的坐标不会被模型视图和投影矩阵转换,这就是 glRotatef 的变化。总之,这个扩展不支持旋转精灵。

如果你想要这些,最简单的方法是绘制标准的旋转四边形。

【讨论】:

谢谢!你知道任何关于这样做的好教程吗?没有运气找到任何...【参考方案2】:

在测试了很多不同的方法之后,我发现答案一直摆在我面前......我使用 SpriteMethodTest 示例作为我的代码库,但我忽略了那里的 VBO 扩展部分,它基本上具有所有需要的功能。

SpriteMethodTest:http://code.google.com/p/apps-for-android/source/browse/trunk/#trunk/SpriteMethodTest

【讨论】:

以上是关于使用 drawtexture (OpenGl ES Android) 旋转精灵的问题的主要内容,如果未能解决你的问题,请参考以下文章

03: OpenGL ES 基础教程02 使用OpenGL ES 基本步骤

如何在Android上使用OpenGL ES 2.0绘制点

使用 OpenGL(和 OpenGL ES)渲染 SVG

(转)使用openGL显示图像建立OpenGL ES的环境

OPENGL ES 2.0 知识串讲――OPENGL ES 2.0 概括

OPENGL ES 2.0 知识串讲 ——OPENGL ES 详解II(传入绘制信息)