我已经合并了大约2500个网格(每个网格都有自己的颜色),但FPS低于我不会合并的情况。
根据THIS,如果你想增加FPS,合并是你要走的路。
我在这里错过了什么吗?
var materials = new Array();
var new_geo = new THREE.Geometry();
for (var i = 0; i < AllMeshes.length; i++) {
materials.push(AllMeshes.children[i].material);
THREE.GeometryUtils.merge(new_geo, AllMeshes.children[i], i);
}
var mesh = new THREE.Mesh(new_geo, new THREE.MeshFaceMaterial(materials));
答案 0 :(得分:1)
在引擎盖下,使用MeshFaceMaterial
将网格分割为每个材质的单独网格 - 因此,如果每个子网格都有单独的材质,则Three.js必须将组合网格再次分开。因此,您认为合并的几何体实际上不会一次性发送到GPU。