Javascript 如何在three.js中保存加载的模型?
我正在做一个视频游戏,我的记忆有问题,即我加载了我的游戏8 obj模型,但我重复了它们,所以这意味着每次我需要在地图的不同位置添加相同的模型时,我已经完成了:Javascript 如何在three.js中保存加载的模型?,javascript,three.js,Javascript,Three.js,我正在做一个视频游戏,我的记忆有问题,即我加载了我的游戏8 obj模型,但我重复了它们,所以这意味着每次我需要在地图的不同位置添加相同的模型时,我已经完成了: new THREE.MTLLoader().setPath( './Tree/' ).load( 'untitled.mtl', function ( materials ) { materials.preload(); new THREE.OBJLoader().setMaterials( materials ).s
new THREE.MTLLoader().setPath( './Tree/' ).load( 'untitled.mtl', function ( materials ) {
materials.preload();
new THREE.OBJLoader().setMaterials( materials ).setPath( './Tree/' ).load( 'tree.obj', function ( object ) {
object.scale.set(2, 2, 2);
object.position.set(10, 0, 30);
scene.add( object );
}, undefined, undefined );
});
这样,每次我调用它时,我都会在内存中说出相同的对象,我需要更多的内存。有没有办法在内存中只保存一个副本,每次我需要它时,我就称之为这个副本
我在网上搜索过,但没有找到/理解任何解决方案。您可以通过多次加载对象来克隆它。然而,对于您的用例来说,这并不是一个理想的解决方案,因为您的内存中仍然有多个对象,并且使用单个绘制调用绘制每个对象 最好使用实例化渲染来渲染类似于树的对象,或者将最终对象合并到单个对象中。通过这种方式,最终内存中只有一个对象,并且还可以通过一个draw调用绘制所有树,这对性能有好处。使用这两种方法可能需要一些准备,因此最好研究官方示例: 在本例中,几何图形通过以下方式合并: three.js R105试试看