1 能batch objects尽量批处理以减少draw call的数量,一个renderpass不要包含太多的draw call;
2 shader 编译与program link都很昂贵,尽量在load 游戏时做完,而不要在交互时去做;
3 对于不透明的物体,尽量使用front-to-end的顺序去渲染;
4 不透明的物体务必关掉blend操作;
5 z prepass会画两次,比较昂贵,请合理使用;
6 尽量采用glDrawElements,可以重复利用vertex,不仅可以优化内存,而且对于arm Mali新的架构做了相应的优化;
7 在保证效果的前提下,尽量采用低精度;
8 对于采用index buffer vertex shading的渲染,position 属性放在一个buffer,其他的属性interleave放在另 一个buffer;
9 一般地,这些情况采用mediump精度就足够:normals,vertex color,camera-space的position和方向,texture 坐标;
10 一般地,这些情况会采用highp精度:world-space的position,大texture的坐标;
11 对于每一个FBO,如果不是在前面渲染好的FBO的基础上继续画,请务必首先调用glClear;