2016-07-19 7 views
0

メッシュを覆うためにテクスチャをオーバーレイする効率的な方法を探しています。私は3次元のマッピング/オブジェクトに関して、専門家ではなく、初心者でもありません。以下は、最終製品をどのように見せたいかを示しています。STLが読み込まれたメッシュにテクスチャをオーバーレイする

Image depicting the end result

次のコードを使用してテクスチャを適用しようとすると、最終的な結果は以下のようになります。私はUVマッピングをしていない、私は私の答えがここに横たわるかもしれないと信じています。下の画像からわかるように、画像の全体的な色合いはおおよそのとおりですが、エンティティの全体ではなく、モデルの各頂点の間にテクスチャが描かれているという印象を受けます。

var textureLoader = new THREE.TextureLoader(); 
var texture = textureLoader.load('resource/images/materials/Mahogany.jpg'); 

var STLLoader = new THREE.STLLoader(); 
STLLoader.load('test.stl', function (geometry1) { 
var meshMaterial = new THREE.MeshBasicMaterial({map:texture}); 

var mesh = new THREE.Mesh(geometry1, meshMaterial); 

mesh.scale.set(1, 1, 1); 
mesh.position.set(5, 20, 80); 
scene.add(mesh); 
}); 

enter image description here

私のSTLロードされたメッシュがないのに対し、キューブは、正しいテクスチャを持っています。

上記の画像のオブジェクトの回転を無視してください。テクスチャの問題が修正されたら、オブジェクトを結合するように移動します。

あまりにも一般的であるか十分に浸透していない場合は、私の質問を拡大するのに役立つコメントをしてください。ありがとうございました。

答えて

1

あなたは対象外材料をラップする

THREE.MeshPhongMaterial() 

代わり

THREE.MeshBasicMaterial() 

THREE.MeshPhongMaterial()を使用することができ、我々は、オブジェクトごとに曲がった材料を得ることができます。