2013-03-08 58 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