我正在构建一个适用于安卓和IOS的原生OpenGL应用程序。两个平台上的OpenGL代码是相同的。对于安卓系统,我使用GLSurfaceView渲染我的场景,而对于IOS系统,我使用GLKView。
我正在将应用程序设置为使用按需渲染。我监控屏幕上的触摸输入,以操作系统通知我的速度,然后我在每次通知时更新OpenGL场景。在安卓上,我用GLSurfaceView.requesetRender()更新我的OpenGL场景,在IOS上,我用GLKView.update()更新我的OpenGL场景。
在我的测试中,我发现IOS和Android (在各种设备上)都每0.016秒发送一次触摸更新。这是有意义的,因为这是60fps,并与这些设备上的标准60 on显示器一致。
我感到困惑的是,在IOS和Android上渲染完全相同的OpenGL场景所需的时间不同(在各种设备上)。在几乎所有的Android设备上,我能够在平均0.015秒内渲染整个场景。在IOS设备上,平均需要0.034秒(超过两倍的时间)。
我能把这完全归咎于安卓手机和IOS手机的图形处理器硬件吗?或者我需要对GLKView进行一些微调?
提前感谢你的见解。
发布于 2018-01-09 02:32:33
我怀疑你在iOS上的目标是30fps。Link to GLKViewController's preferredFramesPerSecond。
您的应用程序应该选择一个它可以始终如一地保持的帧率。
默认值为每秒30帧
https://stackoverflow.com/questions/48143977
复制相似问题