使用 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 ES 2.0 知识串讲――OPENGL ES 2.0 概括
OPENGL ES 2.0 知识串讲 ——OPENGL ES 详解II(传入绘制信息)