iOS,iSGL3D和立方体

时间:2011-11-19 00:55:23

标签: objective-c ios ipad opengl-es 3d

我正在使用iSGL3D作为iPad的应用程序。它很安静简单。我想用纹理绘制50个左右的立方体。绘制这50个立方体时,我的“每秒帧数”降至约30 FPS。如果我尝试绘制150个左右的立方体,它甚至变得更糟,它将以大约14 FPS的速度运行。由于我的应用程序的性质,它可能正在发生,必须绘制像300多维数据集,我甚至不想想我会得到一个可怕的FPS ......

所以,让我们谈谈这一点。我想知道是否有其他的东西,类似于iSGL3D但更快。如果我看一些具有非常先进的3D场景和内容的应用程序,那么我无法想象我的小立方体会变得如此糟糕的FPS。

要绘制的多维数据集由JSON格式的服务器提供。它们不是使用像3dsmax或Maya之类的编辑器创建的。所有的立方体都需要以编程方式绘制。

我想提前感谢你..

罗伯特

2 个答案:

答案 0 :(得分:2)

我不是ISGL3d的专家,但目前正在研究它,所以这里有一些你可以尝试的技巧 提高绩效:

  1. 如果您的每个立方体都没有使用不同的纹理或材质, 在字典或数组中创建材料而不是分配它们 你的立方体。如果要为每个多维数据集创建一个材质对象 你浪费了大量的资源。

  2. 正如Max在opengl术语中所说,它可能在ISGL3D中首先创建一个网格,然后从同一个网格(我的意思是一组顶点)创建对象实例,并根据需要应用变换。这将大大改善表现。

  3. 不仅opengl调用drop 你的帧速率,但你的程序效果一般 性能。因此,请确保您对json服务器的调用是 不影响你的帧率。

答案 1 :(得分:0)

我更喜欢使用OpenGL。它只是给你更多的控制权。

仅为立方体使用单个顶点集,仅更改变换(平移/缩放/旋转)和颜色/材质/纹理。这个非常简单的技巧将为您带来显着的性能提升。