【问题标题】:Creating a sprite class in OpenGL ES 2.0在 OpenGL ES 2.0 中创建精灵类
【发布时间】:2012-07-31 19:27:18
【问题描述】:

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

      所以目前我在初始化时创建了 vbo 和 ibo,它们在帧速率和内存消耗方面工作正常,但无法更新位置。

     我有点不知所措,因为我刚刚开始使用 OpenGL,感谢任何帮助。

【问题讨论】:

    标签: iphone objective-c opengl-es opengl-es-2.0 vbo


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      相关资源
      最近更新 更多