2013-03-08 65 views
1

我还想写上IcosahedronGeometryWebGL的three.js所:在几何面纹理alingment

我能够生成纹理和纹理适用于所有面的每个面文字:

for (var i = 0; i < geometry.faces.length; i ++) { 
geometry.faces[i].materialIndex = i; 
materials.push(new THREE.MeshBasicMaterial({ overdraw: true, map: getTexture(i), wireframe: true, wireframeLinewidth: 1})); 
} 

// 3D element 
element = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials)); 

但是每个纹理覆盖其他的......我不能正确对齐它们

http://jsfiddle.net/jzbf7/

任何想法?

回答

1

您需要了解如何为IcosahedronGeometry设置UV - 它们与SphereGeometry的UV非常相似,其中世界地图将覆盖整个球体。

这是从UV的为CubeGeometry,其中纹理映射到每个面对很大的不同。

实验用更新的拨弄自己看看:http://jsfiddle.net/jzbf7/2/ (如果球体呈现太暗,再次渲染它 - 颜色是随机的。)

此外,还有在IcosahedronGeometry UV贴图错误。这可以在“接缝”处看到。

three.js所r.56

+0

感谢您与此相适应,这意味着没有解决在IcosahedronGeometry面孔应用文本? – 2013-03-08 08:35:38

+0

您可以自己修改二十面体几何UV以达到您想要的效果。 – WestLangley 2013-03-08 13:29:56

+0

谢谢你,我们会尽力做到这一点! – 2013-03-13 15:33:27