我有一个Three.js应用程序,有时我需要完全重新呈现该应用程序。(我没有任何页面重载)
我见过建议重用WebGLRenderer变量的示例。我试过了,但仍然出现内存泄漏。出于性能目的,每次需要重绘场景时,我都需要杀死WebGL上下文并实例化一个新的上下文,以避免WebGL上下文的倍增导致的内存泄漏。
我还看到Three.js有内置的内存管理方法,比如renderer.deallocateObject或scene.removeObject,但似乎在新的Three.js版本中不再支持它们(我的是r69)。
因此,我的问题是:如何释放WebGL渲染器(WebGL上下文)并启动新的渲染器?我真的只需要在我的应用程序的生命周期中保留一个WebGL上下文。
任何帮助都将不胜感激。我也接受纯JavaScript解决方案(不使用Three.js)
谢谢
发布于 2014-11-07 18:07:08
使用
obj.remove(tile);
obj.geometry.dispose();
obj.material.dispose();https://stackoverflow.com/questions/26763273
复制相似问题