我們可以使用相同的幾何和材料創建多個網格。但是每個網格的屬性是否有重複? 我很關心內存問題。謝謝 !Three.js - 關於幾何和材料的存儲
1
A
回答
1
正如你可以THREE.Mesh
代碼中看到:
THREE.Mesh = function (geometry, material) {
THREE.Object3D.call(this);
this.type = 'Mesh';
this.geometry = geometry !== undefined ? geometry : new THREE.Geometry();
this.material = material !== undefined ? material : new THREE.MeshBasicMaterial({ color: Math.random() * 0xffffff });
this.updateMorphTargets();
};
而在clone
方法:
THREE.Mesh.prototype.clone = function() {
return new this.constructor(this.geometry, this.material).copy(this);
};
那就是從幾何創建網格時說/材質或克隆網格,其幾何和材質屬性是對相同對象的引用。如果修改材質的顏色或幾何的頂點,則原始和副本都將具有新的顏色/幾何。
0
我認爲最好的辦法是克隆
var Box_geometry = Box_geometry.clone();
var Box_material = Box_material.clone();
I've prepared a simple example in JSFIDDLE。
r.73
+0
克隆方法爲每個網格創建一個新的獨立幾何,這不是我的目標。我想知道它是否存在將所有網格物體鏈接到相同幾何體(引用幾何體對象)的方式。否則,場景中的一百個網格可能會花費很多內存!每個object3D都有一個uuid,它可以是有用的,或者不是?謝謝 ! – Tiramitsu
+0
我不這麼認爲,[請看看mrdoob頁面](https://github.com/mrdoob/three.js/issues/4796) – MrFreeman555
相關問題
- 1. three.js所變材料
- 2. THREE.js中的反光材料
- 3. three.js所改變材料
- 4. three.js更新幾何體材質索引
- 5. three.js:用於拉伸幾何體的多材質問題
- 6. three.js所的雙面材料不投射在平坦的幾何參數
- 7. 關於dma,iommu的學習材料
- 8. 帶點雲材料和線條材料的多種材料
- 9. Cassandra 1.1存儲引擎如何存儲複合材料?
- 10. three.js虛線材料上linesegments不工作
- 11. 指定材料,以在three.js所
- 12. three.js所R73着色材料屬性
- 13. three.js lambert材料顏色沒有顯示
- 14. 角材料組一個datepicker只有幾個月和幾年
- 15. 角材料MD-開關
- 16. 與$角材料關注
- 17. 關於材料描述的模糊搜索,包括材料類型的數字尺寸和一般描述
- 18. 關於ejabberd內部Erlang API的任何材料?
- 19. 複合材料內的複合材料
- 20. Three.js alpha材質和補間
- 21. Javascript - Three.js材質和陰影
- 22. 角材料性能差,大的存儲器片段和內存泄漏
- 23. 問題與改變的按鍵對象的材料three.js所
- 24. 無法讀取的未定義的屬性「材料」 three.js所
- 25. 如何角材料
- 26. 的WebPack相關材料的UI
- 27. 統一輕材料「添加材料」
- 28. three.js所:從簡單的材料切換到多運行時
- 29. Three.js - 使用不需要光源的材料加載模型
- 30. 添加材料/紋理到現有的THREE.Mesh(three.js)
你在說什麼屬性?有一個'console.log(mesh)'來查看。 :您可能想要保留幾何和材質參數......其餘的數字和布爾值用於定義方向,位置和陰影投射...... – Atrahasis
我正在談論這兩個屬性,顯然沒有參考到一個uuid,但一個實例。我的意思是,具有相同uuid的相同幾何體在網格中重複。這是正確的 ? – Tiramitsu