在OpenGL ES 2.0中创建精灵类



nbsp nbsp 我正在OpenGL ES 2.0中制作一个精灵类,并取得了一定的成功。目前,我有一个精灵的渲染方法,它是由EAGL层中的渲染方法每隔一段时间调用的。每次调用渲染时,我都会创建新的顶点缓冲区和索引缓冲区,但效率不高,所以我调用了glremovebauffer。不幸的是,当我这样做时,帧速率会显著降低。

 nbsp nbsp;所以目前我已经在初始化时创建了vbo和ibo,它在帧速率和内存消耗方面运行良好,但无法更新位置。

 nbsp nbsp;我有点不知所措,因为我刚开始使用OpenGL,任何帮助都很感激。

通常,您希望在模型原点创建一次带有VBO和IBO的精灵。要平移、旋转和缩放,您需要使用模型矩阵将精灵变换到所需的位置。

我很确定iphone-sdk提供了一些很好的函数来实现这一点,但我不知道其中的任何一个:)基本上,在着色器中,你取你的位置坐标,并将其乘以一个或多个矩阵,其中一个矩阵是模型矩阵,你可以将其更改为平移、旋转、缩放,或者这些矩阵的任何组合(事实上,它可以是你想要的任何矩阵,它会产生不同的结果)。

有很多资源可以解释这些转换矩阵。举个例子:http://db-in.com/blog/2011/04/cameras-on-opengl-es-2-x/

我的建议是找到一个与你的理解水平相同的教程,并从中学习。。。

最新更新