Javascript 动态添加网格的内存释放不工作

Javascript 动态添加网格的内存释放不工作,javascript,memory-leaks,webgl,three.js,Javascript,Memory Leaks,Webgl,Three.js,我有一个网格实例,它使用管几何体作为路径。当我对TubeGeometry实例所基于的基础曲线进行更改时,我将从场景中移除网格,然后创建一个新的网格 场景更新很好,但内存正在爆炸,这告诉我,一旦移除的网格离开场景,我就无法正确地释放它 以下是我试图用来解除分配的代码: $.each(parent.children, function (idx, obj) { parent.remove(obj); renderer.deallocateObject(obj); obj.dealloca

我有一个网格实例,它使用管几何体作为路径。当我对TubeGeometry实例所基于的基础曲线进行更改时,我将从场景中移除网格,然后创建一个新的网格

场景更新很好,但内存正在爆炸,这告诉我,一旦移除的网格离开场景,我就无法正确地释放它

以下是我试图用来解除分配的代码:

$.each(parent.children, function (idx, obj) {
  parent.remove(obj);
  renderer.deallocateObject(obj);
  obj.deallocate();
});
其中,
parent
是我放置网格的对象3D,而
渲染器是WebGLRenderer的一个实例

谁能告诉我我做错了什么,以及如何正确地做


相关代码位于scene.js文件第76-86行。请注意,该示例使用的是r53

,您不会取消分配使用的几何体

$.each(parent.children, function (idx, obj) {
  parent.remove(obj);
  renderer.deallocateGeometry(obj.geometry);
  renderer.deallocateObject(obj);
  obj.geometry.deallocate();
  obj.deallocate();
});

deallocateGeometry
不是r53(我示例中的版本)中的方法,在新发布的r54中,所有的
WebGLRenderer.deallocate*
方法都是私有的。尽管如此,+1指出了几何体释放的不足,这似乎是问题所在。希望r54能让事情变得更简单。只需调用
geometry.dispose()
/
texture.dispose()
/
material.dispose()
。。。