問題1: 在我的應用程序中,我使用JsonLoader以.js格式加載大約65MB的模型,這需要10秒。對我們來說太長了。有什麼辦法來加載大型模型?或更好的裝載機或更好的格式?在我的情況下,我使用remove()函數從場景中刪除模型,但緩存不會立即在瀏覽器中釋放,它需要超過20秒的空閒時間;而且,我怎麼辦?這是我的代碼:this.scene.remove(i);我是我的模特。在ThreeJs中加載大型模型的最佳方法以及如何在ThreeJs中釋放緩存
0
A
回答
0
JSON格式非常繁重。嘗試使用OBJ或glTF。 THREE.js在它的例子中都有它們的裝載者。
關於內存釋放,這是JavaScript固有的,它使用垃圾回收來釋放內存。 (這是一個MDN article on JavaScript memory management。)就像Java一樣,這種情況「偶爾會發生」,所以您只需等待它發生。
0
Q1:OpenCTM也是一種很好的壓縮格式,但是,它僅限於單個三角形網格。所以,你不能用它存儲整個場景。但是也可以選擇導致壓縮率非常高的有損壓縮。還有一些例子爲three.js所:https://threejs.org/examples/#webgl_loader_ctm
Q2: 如果你想真正刪除你的模型,你需要調用dispose()
幾何對象從內存中刪除對象(材質和紋理也有dispose
方法)。
文檔是說:https://threejs.org/docs/index.html#api/core/BufferGeometry
.dispose()
從存儲器處置的對象。
您需要在應用程序運行時刪除bufferGeometry時調用它。
+0
記得用'dispose'清除所有的紋理和材質:) – mjanisz1
相關問題
- 1. 在ThreeJS JSON中加載模型
- 2. 如何在threejs中克隆collada模型?
- 3. Threejs - 如何在不崩潰瀏覽器的情況下加載大型模型
- 4. 加載的obj模型中的ThreeJS訪問對象
- 5. ThreeJS中的雙面,obj模型
- 6. ThreeJS Collada模型不顯示
- 7. Threejs objmtlloader黑色模型
- 8. 在大型項目中緩存值的最佳做法
- 9. Threejs如何旋轉後得到模型的中心
- 10. 我已經在threejs中添加了一個obj模型。如何刪除它?
- 11. Threejs克隆方法
- 12. 在CakePHP 2.0中加載模型的最佳方式
- 13. 在SQL Server中存儲大型數據集的最佳方法?
- 14. 在文件中存儲大型Python字典的最佳方法
- 15. 在threejs
- 16. ThreeJS不顯示DAE 3D模型
- 17. 如何在ThreeJs中加載引用的COLLADA文件
- 18. 在Angular JS應用程序中注入ThreeJs模型
- 19. 如何在Threejs中正確加載Json文件
- 20. threejs如何在回調中使用OBJMTLloder獲取已加載模型的幾何圖形
- 21. Three.js從緩存中加載obj模型
- 22. ThreeJS無法加載JSON檔案
- 23. 在特定文件夾中自動加載模型類的最佳方法HMVC
- 24. 如何使曲面在threejs
- 25. 將字符串加載到緩存中的最佳方法
- 26. threejs makePerspective方法已被刪除或舊版本threejs的改變
- 27. 迷失在THREEJS
- 28. 如何在ThreeJs中更新紋理?
- 29. ThreeJS&Blender - 從Blend導出的網格在ThreeJS中不可見
- 30. 添加Colour to .obj在ThreeJS
謝謝我會試試你的方式 – JsonS