我有幾個場景與相機在一個頁面中。THREE js刪除整個場景
其中之一是一個地圖視圖。
我可以簡單地加載這個場景通過功能,但在三個JS簡單的方法來消除整個場景?
當我不顯示地圖,我不想繼續加載和渲染有更好的表現對象。
我只發現瞭如何通過孩子在環取出孩子。但我希望有更好的解決方案。
我有幾個場景與相機在一個頁面中。THREE js刪除整個場景
其中之一是一個地圖視圖。
我可以簡單地加載這個場景通過功能,但在三個JS簡單的方法來消除整個場景?
當我不顯示地圖,我不想繼續加載和渲染有更好的表現對象。
我只發現瞭如何通過孩子在環取出孩子。但我希望有更好的解決方案。
剛剛從場景中刪除三個對象是不夠的,從內存中刪除它們。您必須在對象的幾何圖形,材質和紋理上調用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);
}
如果方案,幾何形狀的數量和紋理不穩定,您正在邀請性能問題和內存泄漏。
偉大點thx – Martin
在循環中移除孩子是你應該做的。 – gaitat
:-(謝謝.. – Martin