Mapping Wavefront OBJ die vt OpenGL-Texturkoordinaten
Frage
ein Künstler Freund hat mir eine OBJ-Datei von 3DS Max 2009, die enthält drei Texturkoordinaten als Parameter an den vt
Befehl exportiert gesendet. Und das ist richtig nach in.OBJ Spezifikation. Allerdings bin ich mir nicht sicher, wie U-V-W Koordinaten zuzuordnen, die für eine reguläre 2D .jpg Textur versehen ist.
Dies ist relativ wichtig für mich, da ich mit 3DS Max versucht, herauszufinden, gespielt habe, wie es zu zwingen, nur U-V-Koordinaten zu exportieren, aber es scheint kein straightfoward Weg. In diesem Fall ist dies nur eine Skybox, aber in anderen Fällen könnte es etwas Art und Weise komplexe und nicht von Hand fixierbar sein.
Danke!
Lösung
Es gibt einen Abschnitt im Artikel Was UVW Mapping ist , das erklärt?:
Sie könnte sich fragen, warum Sie ein brauchen Tiefe für eine 2D-Koordinaten wie W Ebene. Ein Grund dafür ist, weil es manchmal nützlich, der Lage sein, leicht zu schlagen die Orientierung einer Karte, bezogen auf seine Geometrie. Um dies zu tun, müssen Sie die dritte Koordinate. Die W-Koordinaten hat auch eine Bedeutung für 3-dimensionale Verfahrensmaterialien.
In Ihrem Fall können Sie einfach die W-Koordinate ignorieren und nur die ersten beiden Schwimmer von Zeilen lesen, die mit vt
beginnen. Dies setzt voraus, dass Sie nicht sehr besorgt über den zusätzlichen Platz durch die W-Koordinate genommen sind seit OBJ ziemlich ineffiziente Dateiformat ist zu beginnen.
Persönlich mag ich nicht in OpenGL mit OBJ, weil es Vertex Normalen pro Fläche bietet statt pro Vertex. Um ein Objekt beleuchten zu können, sollte entweder doppelte Ecken oder Normalen berechnen, indem die umliegenden Vertex Normalen in einer Fläche gemittelt werden. Wenn Sie effizientere Alternativen erkunden wollen, werfen Sie einen Blick auf Binärformaten, wie die sorgfältig dokumentiert .md2 Format. Sehen Sie sich auch glDrawElements verwenden, wenn Sie nicht bereits verwendet wird.
Andere Tipps
sorry, wenn ich Ihre Frage falsch verstanden. Aber could't Sie einfach den dritten Parameter ignorieren, w? Wie ich es verstehe, w nur in einer Ebene senkrecht zur Ebene von u und v beschrieben Koordinate ist, so ist es selten für einfaches 2D-Textur-Mapping erforderlich.
hoffe, das hilft.