2016-07-19 13 views
0

Ich bin auf der Suche nach einer effizienten Methode der Überlagerung einer Textur, um ein Mesh abzudecken. Ich bin kein Experte, eher ein Neuling, wenn es um dreidimensionale Mapping/Objekte geht. Im Folgenden wird gezeigt, wie das Endprodukt aussehen soll.Überlagern von Textur auf STL geladenem Mesh

Image depicting the end result

Wenn Textur mit dem folgenden Code anzuwenden versucht, sieht das Endergebnis unten ähnlich. Ich habe kein UV-Mapping durchgeführt, ich glaube, meine Antwort könnte hier liegen. Wie Sie aus dem unteren Bild sehen können, nimmt es ungefähr den allgemeinen Schatten des Bildes an, aber ich habe den Eindruck, dass die Textur zwischen jeder Ecke des Modells und nicht über die Gesamtheit gezogen wird.

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

Der Würfel hat die richtige Texturierung, während meine STL geladene Gitter nicht der Fall ist.

Bitte ignorieren Sie die Drehung des Objekts in dem obigen Bild, ich werde bewegen, um meine Objekte zusammen zu vereinigen, sobald ich meine Texturprobleme behoben habe.

Ziemlich neu beim Stellen von Fragen hier, also bitte kommentieren Sie, um mir zu helfen, meine Frage zu erweitern, wenn sie zu allgemein oder ungenau genug ist. Vielen Dank.

Antwort

1

können Sie

THREE.MeshPhongMaterial() 

statt

THREE.MeshBasicMaterial() 

THREE.MeshPhongMaterial() verwenden das Material außerhalb des Objekts wird wickeln und wir können gemäß dem Objekt gekrümmten Material erhalten.