javascript – 动态添加网格的内存释放不起作用

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

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

这是我试图用来解除分配的代码

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

其中parent是我放置Mesh的Object3D,而renderer是Webglrenderer的一个实例.

谁能告诉我我做错了什么以及如何正确地做到这一点?

Here’s a Plunk with my currently example.相关代码位于scene.js文件中,第76-86行.请注意,该示例使用的是r53.

最佳答案
您不释放已使用的几何体

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...