2016-01-06 77 views
1

我有幾個場景與相機在一個頁面中。THREE js刪除整個場景

其中之一是一個地圖視圖。

我可以簡單地加載這個場景通過功能,但在三個JS簡單的方法來消除整個場景?

當我不顯示地圖,我不想繼續加載和渲染有更好的表現對象。

我只發現瞭如何通過孩子在環取出孩子。但我希望有更好的解決方案。

+1

在循環中移除孩子是你應該做的。 – gaitat

+0

:-(謝謝.. – Martin

回答

1

剛剛從場景中刪除三個對象是不夠的,從內存中刪除它們。您必須在對象的幾何圖形,材質和紋理上調用dispose()方法。

https://github.com/mrdoob/three.js/issues/5175

後,你打電話給你的處置和刪除方法,做一個診斷像這樣(其中this.renderer是你THREE.Renderer):

if (this.renderer && (this.renderer.info.memory.geometries || this.renderer.info.memory.programs || this.renderer.info.memory.textures)) { 
     loge("VIEW.clear: geometries=" + this.renderer.info.memory.geometries + " programs=" + this.renderer.info.memory.programs + " textures=" + this.renderer.info.memory.textures); 
    } 

如果方案,幾何形狀的數量和紋理不穩定,您正在邀請性能問題和內存泄漏。

+0

偉大點thx – Martin