5
我有一個網格實例使用TubeGeometry爲它的路徑。當我對實例所基於的底層曲線進行更改時,我將從網格中移除網格,然後創建一個新的網格。動態添加網格不工作的內存釋放
場景更新正常,但內存爆炸,這告訴我,一旦離開場景,我不會正確釋放已移除的網格。
這裏是我試圖用解除分配代碼:
$.each(parent.children, function (idx, obj) {
parent.remove(obj);
renderer.deallocateObject(obj);
obj.deallocate();
});
其中parent
是Object3D我放在網格,並renderer
是WebGLRenderer的一個實例。
誰能告訴我我做錯了什麼,以及如何正確地做到這一點?
Here's a Plunk with my currently example.相關代碼在scene.js文件中,第76-86行。請注意,該示例使用r53。
'deallocateGeometry'是不是** ** R53(版本在我的例子)的方法,並在新發布的** ** R54全'WebGLRenderer.deallocate *'方法是私有的。儘管如此,+1指出缺乏幾何釋放,這似乎是問題。 – merv
希望R54會讓事情變得更簡單。只需調用'geometry.dispose()'/'texture.dispose()'/'material.dispose()'... – mrdoob