2016-05-12 16 views
0

Hallo ich bin neu zu ThreeJS und Textur-Mapping,ThreeJS - Scale Textur der Größe nach unten (keine Wiederholung - unter Verwendung von UV-Koordinaten)

Lassen Sie sich sagen, ich habe eine 3D-Plane mit der Größe (1000x1000x1). Wenn ich eine Textur darauf anwende, wird sie wiederholt oder sie wird skaliert, um mindestens die gesamte Ebene zu füllen.

Was ich versuche zu erreichen ist, die Skalierung des Bildes in der Ebene zur Laufzeit zu ändern. Ich möchte, dass das Bild kleiner wird und nicht mehr auf die gesamte Ebene passt.

Ich weiß, es gibt eine Möglichkeit, jedes Gesicht auf einen Teil eines Bildes abzubilden, aber ist es auch möglich, es auf eine negative Zahl im Bild abzubilden, so dass es transparent ist?

Meine Frage ist:

I UV-Mapped ein Modell in Blender und importiert es mit dem UV-Koordinaten in mein ThreeJS-Kodex. Jetzt muss ich die Textur wie zuvor beschrieben skalieren. Muss ich die UV-Cords neu zuordnen oder muss ich das Bild manipulieren und eine transparente Kante hinzufügen?

Kann ich auf die gleiche Weise das Bild auf dem Bild verschieben?

Ich habe diese Art der Verwendung bereits in java3d erreicht, indem ich bufferedImages manipuliere und sie auf transparente zeichne. Ich bin nicht sicher, dass dies mit Javascript möglich ist, also möchte ich wissen, ob es durch Textur-Mapping möglich ist.

Vielen Dank für Ihre Zeit und Ihre Vorschläge!

Antwort

0

Dies kann getan werden, die Abbildung der 3d -Ebene auf eine Leinwand verwendet wird, in dem das Bild gezeichnet wird (fabric.js kann für die Leinwand Zeichnungen verwendet werden) .Inshort stellen Sie die Leinwand als Textur für das 3D-Modell

yourmodel.material.map = document.getElementById("yourCanvas");

Hoffe es hilft :)