2017-09-25 45 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

相关问题