我有一个Three.js应用程序,有时我需要完全重新呈现应用程序。 (我没有任何页面重新加载)
我见过建议重用WebGLRenderer变量的示例。我试过这个,内存泄漏仍然出现。出于性能目的,我需要杀死WebGL上下文并在每次需要重绘场景时实例化一个新的上下文,以避免因WebGL上下文的倍增而导致内存泄漏。
我也看到Three.js有内置的方法来管理内存,比如renderer.deallocateObject
或scene.removeObject
,但似乎新的Three.js版本不再支持它们(我的是r69)。
所以,我的问题是:我如何发布WebGL渲染器(WebGL上下文)并开始一个新的渲染器?我真的需要为我的应用程序的生命周期保留一个WebGL上下文。
任何帮助将不胜感激。我也接受纯JavaScript解决方案(不使用Three.js)
由于
答案 0 :(得分:0)
使用
obj.remove(tile);
obj.geometry.dispose();
obj.material.dispose();