OpenGLES一般在Render的OnDrawFram()进行绘制函数的调用,并实时刷新绘制。绘制函数里会将物体的顶点坐标、法向量坐标、纹理坐标等实时渲染。对于渲染的数据流最好掌握一个“少次多量”的原则,涉及顶点和片元着色器的IO调用,所以避免“少量多次”会导致绘制卡顿现象,直接影响GLSurfaceView界面的交互。
举例:解析一个obj文件,里面有很多面face,并且不同的面对应不同纹理材质Newmtl。如果以面为单位进行渲染,数据量大一点,直接卡死。。。。最好的办法是建立一个材质集合,将每个材质对应的数据统一到对应的集合里,然后以每个材质为单位进行渲染,实现“少次多量”,实时绘制时间大幅提高,界面也非常流畅。