GLKview与GLSurfaceView

时间:2018-01-08 03:46:34

标签: android ios opengl-es-2.0

我正在为Android和Android构建一个原生的OpenGL应用程序。 IOS。 OpenGL代码在两个平台上都是相同的。对于Android,我使用GLSurfaceView渲染我的场景,而对于IOS,我使用的是GLKView。

我正在设置应用程序以使用按需渲染。我监视屏幕上的触摸输入,操作系统通知我,然后我通过每个通知更新OpenGL场景。在Android上,我使用GLSurfaceView.requesetRender()更新我的OpenGL场景,在IOS上,我使用GLKView.update()更新我的OpenGL场景。

在我的测试中,我发现IOS& Android(在各种设备上)都会每0.016秒发送一次触摸更新。这是有道理的,因为这是60fps并且与这些设备上的标准60Hz显示器一致。

我感到困惑的是在IOS& amp;上呈现完全相同的OpenGL场景所需的时间差异。 Android(在各种设备上)。在几乎所有的Android设备上,我能够平均在0.015秒内渲染整个场景。在IOS设备上,平均需要0.034秒(超过两倍)。

我可以将这完全归咎于Android手机和IOS手机中的GPU硬件,还是需要对我需要实现的GLKView进行一些微调?

提前感谢任何见解。

1 个答案:

答案 0 :(得分:0)

我怀疑你在iOS上瞄准30fps。 Link to GLKViewController's preferredFramesPerSecond

  

您的应用程序应选择能够始终如一的帧速率。

     

默认值为每秒30帧