2017-09-25 80 views
0

我想要分離二十面體的每個面,如上圖所示。任何人都可以指向我的相關示例或關於使其工作的任何想法。在我的例子中,二十面體每個面都具有不同的圖像紋理作爲材質,所以我不能使用Shadermaterial。使用three.js將二十面體幾何體的每個面分開一些空的空間

image

感謝

+0

也許https://threejs.org/examples/?q=mod#webgl_modifier_tessellation – Radio

+0

感謝,並在圖像紋理電話物料類型的鑲嵌工作網? –

+0

你能幫我解答嗎? @WestLangley –

回答

2

您可以使用ExplodeModifier你的幾何圖形轉換成所謂的「三角湯」,然後,你想轉換的頂點。

var geometry = new THREE.IcosahedronGeometry(4, 2); 

var modifier = new THREE.ExplodeModifier(); 
modifier.modify(geometry); 

var normal = new THREE.Vector3(); 

for (var i = 0, l = geometry.faces.length; i < l; i ++) { 

    var face = geometry.faces[ i ]; 

    normal.copy(face.normal).multiplyScalar(1); 

    geometry.vertices[ face.a ].add(normal); 
    geometry.vertices[ face.b ].add(normal); 
    geometry.vertices[ face.c ].add(normal); 

}; 

examples/js/modifiers/ExplodeModifier.js必須明確包含在您的項目中。

three.js所r.87

+0

Thansk.It工作可以讓你建議任何參考書或網站學習基本的東西。 –

+0

https://stackoverflow.com/questions/11966779/learning-webgl-and-three-js/11970687#11970687 – WestLangley

相關問題