我正在使用OpenGL ES 2.0为Android开发应用程序。我正在使用LG Optimus 5手机进行测试。
我创建了一个GLSurfaceView,我将其渲染器的方法调用onDrawFrame(GL10 gl)来在屏幕上显示图像。我还在onDrawFrame中更新应用程序的逻辑并睡眠以达到60FPS。
代码如下所示:
public void onDrawFrame(GL10 gl) {
//Sleep 16-17ms to achieve 60FPS
//Update
//Render
}
我注意到的一件事是我不需要在onDrawFrame中睡觉;显然我手机的屏幕刷新率是60hz,因此Android将帧率提高到60fps。
所以我想知道,在使用OpenGL ES 2.0时,Android总是将帧速率限制为刷新率吗?
我想要获得手机的刷新率,如果不是60就不要打电话给睡眠方法;如果它更高,则调用它将帧速率限制为60fps。
如果手机的刷新率低于60fps会怎样?
答案 0 :(得分:0)
您可能尝试类似我的方法,但过度使用您想要做的事情,然后减少负载以达到60 FPS。
http://www.roylongbottom.org.uk/android%20graphics%20benchmarks.htm
示例结果:
*****************************************************
T7 Nexus 7 Quad 1300 MHz Cortex-A9, Android 4.1.2
nVidia ULP GeForce Graphics 12 core, 416 MHz
Android Java OpenGL Benchmark 06-Mar-2013 21.51
--------- Frames Per Second --------
Triangles WireFrame Shaded Shaded+ Textured
9000+ 42.18 43.57 33.38 23.54
18000+ 23.68 23.47 19.91 13.38
36000+ 12.05 11.95 11.00 7.10
Screen Pixels 1280 Wide 736 High
Total Elapsed Time 121.0 seconds