给移动端游戏开发者的一点建议


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;

你可能感兴趣的:(给移动端游戏开发者的一点建议)