使用 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) 旋转精灵的问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 OpenGL(和 OpenGL ES)渲染 SVG

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

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

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

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

PPAPI中使用OpenGL ES绘图