日期:2014-05-18  浏览次数:20609 次

如何高效率的实现以下的问题?
题目大致是这样的,opengl 要渲染文字,所以必须要canvas先在bitmap上画出文字,bitmap写在内存然后再贴图给opengl.但是在渲染的时候出现卡顿现象,这个是什么原因造成的,如果写入缓存,如何去实现?
------解决方案--------------------
渲染的时候有卡顿是很正常的,因为显存在读取这些资源的时候io还是要花时间的,所以一般的游戏都会有一个初始的界面,那个时候就是在一次性的把需要的资源都加载进显存,而不是用的时候再加,那个时候会让用户看出来卡顿影响体验。

结论:不卡顿是不可能的,要把卡顿的时间集中在一起,然后友好的呈现给客户看,
------解决方案--------------------
做游戏,显示图片渲染都是显卡做的事情,和内存没有太大的关系,你去注意看为什么每个游戏进去的时候都要有很长一个欢迎的画面,或者loading的画面,其实那个时候就已经把下一个场景要用的图片资源都load进显存了

为什么破手机玩游戏会卡?不是cpu跟不上,是显卡跟不上
------解决方案--------------------
渲染的大体流程是一个线程准备贴图数据,然后调用repaint()
在paint(Graphics g)或者update(Graphics g)里面把图贴上。
如果你流程没问题,可能是你刷新太快,显卡处理不过来,这个可以debug看一下贴到显卡上的时间和次数;或者是刷新频率和显示器的频率的问题,这个涉及到垂直同步,一般很难遇到这种情况。