我有一个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();
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。