理论教育 D绘图的基本优化方法

D绘图的基本优化方法

时间:2023-06-19 理论教育 版权反馈
【摘要】:基本优化原则如下:不要在项目的交互过程中分配内存,尽量预先分配好,像写C一样写Java。并且尽量减少函数调用,“gl.gl**”这类的函数调用Java本地接口,会比较耗时。单线程和双线程的选择。内置的GLSurfaceView会创建一个新的线程来更新场景及编制场景。对于只有一个CPU的Android手机来说,会使用分时多线程的方式提升处理效率,在处理时需要操作线程本身还有线程之间的Context Switch上的消耗。

D绘图的基本优化方法

这里主要说的是OpenGL ES用于2D时的优化,但是这些优化方法也适用于3D图形。基本优化原则如下:

(1)不要在项目的交互过程中分配内存,尽量预先分配好,像写C一样写Java。并且尽量减少函数调用,“gl.gl**”这类的函数调用Java本地接口(Java Native Interface,JNI),会比较耗时。(www.daowen.com)

(2)单线程和双线程的选择。内置的GLSurfaceView会创建一个新的线程来更新场景及编制场景(同时还要处理主线程响应的一些事件)。很多开源的引擎用的是双线程(除主线程之外),一个用来处理场景及物理模型(物理线程),一个用来绘制。对于只有一个CPU的Android手机来说,会使用分时多线程的方式提升处理效率,在处理时需要操作线程本身还有线程之间的Context Switch(上下文切换)上的消耗。因为OpenGL的绘制过程是异步的,当调用glDraw*及其他的gles()函数时,会比较快的返回结果,但是当真正的绘制工作发生在eglSwapBuffer()时,在eglSwapBuffers时绘制线程会花很多时间等待gles(),直到渲染结束为止。所以是用两个线程的处理方式会更快,而且用得好的话会快很多。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈