1

IcosahedronGeometryの各面にテキストを書きたい

テクスチャを生成し、すべての面にテクスチャを適用することができます:

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/

何か案が ?

4

1 に答える 1

1

UVがどのように設定されているかを理解する必要があります。これらは、世界地図が球全体をカバーするIcosahedronGeometryのUVと非常によく似ています。SphereGeometry

CubeGeometryこれは、テクスチャが各面にマッピングされるのUVとは大きく異なります。

更新されたフィドルを試して、自分の目で確かめてください:http: //jsfiddle.net/jzbf7/2/ (球が暗すぎる場合は、もう一度レンダリングしてください。色はランダムです。)

また、IcosahedronGeometryUVマップにバグがあります。これは「継ぎ目」で見ることができます。

three.js r.56

于 2013-03-08T03:28:16.837 に答える