减drawcall是我唯一的执念
1、有些物体看起来只有2种材质组成,但是有可能groups有上千个。这种物体会出现极多的drawcall,先调整顶点顺序,减少groups吧。减1个groups少一次drawcall
2、理论是,只要是纯色的不透明的物体可以全部合并。因为颜色可以用顶点颜色设置,且材质直接换为
new THREE.MeshLambertMaterial({
vertexColors: THREE.VertexColors,//顶点颜色
side: THREE.DoubleSide,
});
然后合并后,groups也只剩下1个,变成1次drawcall
3、能共享几何的话用instancedmesh,不要merge
4、多种材质的几何体要合并也是OK的,但是一定转移顶点排序,目标减少geometry.groups数量
5、merge合批后会增加ray选择的负担。如果可以,请多分几个区域去merge。
可以来感受一下巨大的模型,极少的drawcall,在控制台输入renderer.info
合前
合后
相关资源:上gitee搜索qmodel