似乎Three.js没有一个很好的方法来处理这个场景中的THREE.Scene和所有的对象.
目前我正在做以下事情:
$.each(scene.__objects,function(idx,obj) { scene.remove(obj); if (obj.geometry) { obj.geometry.dispose(); } if (obj.material) { if (obj.material instanceof THREE.MeshFaceMaterial) { $.each(obj.material.materials,obj) { obj.dispose(); }); } else { obj.material.dispose(); } } if (obj.dispose) { obj.dispose(); } });
看Chrome浏览器分析器,仍然有很多对象没有被清理(纹理,着色器材料,向量等).