Wie funktioniert das UVW-Textur-Mapping?

13

Ich versuche die mathematische Theorie hinter der UVW-Kartierung zu verstehen . Kann mir jemand erklären, wie UVW-Mapping funktioniert? Oder zumindest einen Hinweis geben?

Jack
quelle
2
Mögliches Duplikat von Was genau ist UV- und UVW-Mapping?
Bummzack
Danke, aber es ist mir immer noch nicht klar, was W bedeutet. Gibt es eine Art Buch, dem ich folgen soll?
Jack
Ich denke das W ist nur, dass Texturen normalerweise 3 Kanäle haben, ich kenne keine wirkliche Verwendung dafür.
Elva
1
@Yourdoom Das W hat nichts mit der Anzahl der Kanäle zu tun, die die Textur hat. Es wird eher für 3D-Texturen oder perspektivische Texturen verwendet.
Chris sagt Reinstate Monica
4
XY ist zu XYZ, wie UV zu UVW ist. W ist nur der Buchstabe, der zur Beschreibung der 3. Dimension der Textur verwendet wird.
MichaelHouse

Antworten:

14

So verstehe ich es. Könnte völlig falsch sein, aber ich bin mir sicher, dass es jemand tun wirdFlamme korrigiere mich wenn ich falsch liege

Die mathematische Theorie hinter dem UVW-Textur-Mapping ähnelt der Theorie hinter dem UV-Textur-Mapping.

Siehe Bummzacks Link hier: Was genau ist UV- und UVW-Mapping? um eine bessere Erklärung für das UV-Mapping zu erhalten. Grundsätzlich ordnen Sie einen Bereich einer Textur einem Bereich einer Oberfläche zu. Interpolieren der Werte dazwischen basierend auf diesen Zuordnungen.

Gleiches gilt für UVW. Nur dass Sie jetzt ein Texturvolumen auf ein Oberflächenvolumen abbilden. Zwischenwerte interpolieren. Mit der 3. Dimension können Sie jetzt eine 2D-Textur verziehen, um sie besser an ein Objekt anzupassen.

Schauen wir uns an, wie dies in 3D-Texturen verwendet wird. 3D-Texturen können durch Schichten von 2D-Texturen und durch Interpolation der dazwischen liegenden Texel erzeugt werden. Optisch könnte eine 3D-Textur ungefähr so ​​aussehen:

Beispiel für eine 3D-Textur

Wo die "Ebenen" in der R-Achse 2D-Texturen sind. Wenn wir für jede Ebene eine andere Volltonfarbe festlegen und diese auf ein 3D-Objekt anwenden, erhalten wir ungefähr Folgendes:

3D Textur angewendet

Sie können sehen, wie die Volltonfarben zwischen den Ebenen interpoliert wurden. Hier ist das Gleiche, aber mit einer Landschaft. Wo von oben nach unten, könnten die Texturen sein: Schnee, Fels, Gras, Sand.

Landschaft

Verwenden wir jetzt nur eine R-Ebene (eine 2D-Textur), aber eine Zuordnung zu einem 3D-Objekt? Offensichtlich bietet dies nicht so viel Flexibilität wie mehrere Schichten von Texturen, aber es ist sicher viel weniger Arbeit. Das Projizieren einer 2D-Textur auf eine 3D-Oberfläche kann jedoch zu Problemen führen. Denken Sie an die Situation, in der Sie einen Laser auf eine Wand richten. In einem senkrechten Winkel ist der Laserpunkt schön rund. In jedem anderen Winkel beginnt sich der Punkt zu dehnen und zu neigen. Dasselbe passiert, wenn eine 2D-Textur auf eine 3D-Oberfläche projiziert wird. Jedes Gesicht, das nicht senkrecht zur Projektion steht, wird verzerrt. Wie beheben wir das? Durch Verzerrung der Projektion. Nehmen wir das Laserbeispiel, wenn wir einen Laser hätten, der auf eine senkrechte Oberfläche gestrahlt und gedehnt wurde. Wenn wir diesen Laser auf eine abgewinkelte Wand strahlten, konnte der Winkel "Die 3. Dimension ermöglicht es uns, die Projektion so zu "formen", dass sie zu der Oberfläche passt, auf die wir zielen. Zum Beispiel könnte eine Art gewellte 3D-Oberfläche eine Textur wie diese haben (aber nicht so mies):

Miese 2D-Textur wurde zu 3D erweitert

Wie ich schon sagte, das ist nur mein Verständnis davon. Ich stimme zu, es gibt nicht viele gute Informationen zu diesem Thema. Hoffentlich veranlasst diese (wahrscheinlich falsche) Antwort jemanden mit mehr Kenntnissen über das Thema, das Wort zu ergreifen.

Die Bilder für die 3D-Texturen stammen von dieser Seite: http://www.gpwiki.org/index.php/OpenGL:Tutorials:3D_Textures

MichaelHouse
quelle