在我當前的項目中,我使用Threejs來構建一個具有網格的關卡。所有與相機,場景,投影儀,渲染器等圖形的東西是在一個對象中完成的。出於測試目的,我想用不同的參數重置整個場景,例如不同的尺寸。當試圖用Three.js重置整個場景時性能下降
因爲我想測量一個算法的時間,我想要一個「全」重置。所以我目前的做法是刪除包含場景/畫布的div盒子並刪除具有threejs代碼的整個對象。在此之後,我爲圖形級別實例化一個新對象。不幸的是,連續10次這樣做會導致性能嚴重損失。
我還嘗試刪除scene.delete()場景中的所有網格物體,並在刪除整個物體之前刪除場景,渲染器等。但仍然是性能問題。
那麼,如何實現所有圖形webgl組件的整體重置而不會出現性能損失?
在此先感謝。
你使用什麼瀏覽器?大約一個月後,我注意到Chrome瀏覽器的WebGL頁面變慢,這會在重新加載頁面時持續存在,如果關閉並重新打開該頁面,則會重置。 –
是的,我在最新版本(19)中使用Chrome。但是當重新加載頁面時,我的性能問題會停止。作爲一箇中間解決方案,我現在爲我的對象寫了一個函數,它清除所有對象而不是刪除整個對象。這工作沒有顯着的性能下降,但它是很好的知道是否有辦法進行「全面」重置。 – DerDree
renderer.deallocateObject可能在某處看起來? –