我想要分离二十面体的每个面,如上图所示。任何人都可以指向我的相关示例或关于使其工作的任何想法。在我的例子中,二十面体每个面都具有不同的图像纹理作为材质,所以我不能使用Shadermaterial。使用three.js将二十面体几何体的每个面分开一些空的空间
感谢
我想要分离二十面体的每个面,如上图所示。任何人都可以指向我的相关示例或关于使其工作的任何想法。在我的例子中,二十面体每个面都具有不同的图像纹理作为材质,所以我不能使用Shadermaterial。使用three.js将二十面体几何体的每个面分开一些空的空间
感谢
您可以使用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
Thansk.It工作可以让你建议任何参考书或网站学习基本的东西。 –
https://stackoverflow.com/questions/11966779/learning-webgl-and-three-js/11970687#11970687 – WestLangley
也许https://threejs.org/examples/?q=mod#webgl_modifier_tessellation – Radio
感谢,并在图像纹理电话物料类型的镶嵌工作网? –
你能帮我解答吗? @WestLangley –