目前在做一个游戏,原来J2ME上的,移到android倒是不复杂,在Canvasandroid既然提供了OpenGL ES,相比硬件图形处理比Canvas这种东东要给力的多,但这个转换也不是那么容易做,网上也没啥这方面介绍,有人做过这方面工作吗?交流交流吧。

 

首先Canvas不可能直接转化为OpenGLES(否则Google就这样运行Android UI岂不是很快,何必源码中不用),最多只能将Canvas内容绘制到Bitmap上,然后在GLSurfaceView中利用Android提供的GLUtils.texImage2D函数将其当作纹理贴到手机屏幕上,但这样100%会变得比原来还慢(纹理转换很耗时间:(……)

更何况GLES也不是万灵丹,如果真机硬件性能不成,GLES也未必就比Canvas更快,甚至可能低于Canvas(某些该死的低端Android机GLES其实是软件渲染,调用OpenGLES将比Canvas还慢)。

我个人认为,Canvas虽然性能较GLES方法为低(一个配置到位的SurfaceView,和一个配置到位的GLSurfaceView,其实最多也就差10FPS左右),但贵在兼容性够高,只要是Android系统就肯定能跑,而且无论低端或高端机上的表现都相对稳定。如果仅开发2D游戏,除封装那些绘图API的事)……

 

非常感谢2楼。。。
不到万不得已,自然不会考虑改成GLES的,目前工期还是比较紧。但当前的帧率确实太有问题了,每帧300次左右的绘图,FPS只有8帧左右。。。
android游戏优化的达人推荐必使用GLES,说在绘制很多图片时性能跟Canvas有本质差别,心里有些忐忑,这样搞的话,不知道时间来不来得及,纠结啊。。。

相关文章:

  • 2021-07-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-04-07
  • 2021-07-25
  • 2021-07-06
  • 2022-12-23
  • 2022-02-01
  • 2022-12-23
相关资源
相似解决方案