Seite 1 von 1
Triangulation / UV-Koordinaten
Verfasst: 31.05.2012, 11:39
von Stimpy
Hi liebe ZFX'ler,
es ist mal wieder so weit, dass ich mich an euch wenden muss :ugeek: da ich feststecke.
Als Ausgangsmatrial habe ich Shapes, bevor ich diese in die Datenbank schreibe trianguliere ich diese mit PHP. Das klappt auch super und ich habe Dreiecke in meiner Datenbank stehen die ich nun rendern kann.
Leider habe ich aber keine Idee wie ich nun die U,V Werte berechnen könnte um das fertige Shape zu texturieren. Mein Freund Google sowie meine Literatur sagt ebenfalls: No Idea...
Hat von euch jemand eine Idee?
Im vorraus schon einmal vielen vielen Dank!
Re: Triangulation / UV-Koordinaten
Verfasst: 31.05.2012, 11:49
von dot
Um was für "Shapes" handelt es sich da? Haben diese "Shapes" vor der Triangulierung u/v Koordinaten? Falls nein, musst du eben dein Dreiecksnetz irgendwie automatisch unwrappen oder (wesentlich einfacher) z.B. planares, sphärisches oder zylindrisches Texturemapping verwenden. Genaueres kann man dazu ohne genauere Informationen wohl nicht sagen...
Re: Triangulation / UV-Koordinaten
Verfasst: 31.05.2012, 11:56
von Stimpy
hi,
die Shapes haben nur reine Punktkoordinaten, U/V Koordinaten oder sonstiges sind da nicht vorhanden. Einfaches Planares Mapping würde mir auch schon reichen, wenn ich wüsste wie ich das berechne.
Danke im voraus und Grüße
Stimpy
Re: Triangulation / UV-Koordinaten
Verfasst: 31.05.2012, 12:05
von dot
Und um was für Shapes handelt es sich da genau? Liegen die Punkte alle in einer Ebene? Planares mapping ist einfach: Du projizierst die Punktkoordinaten einfach auf eine Ebene und nimmst die Koordinaten in dieser Ebene dann als Texturkoordinaten.
Re: Triangulation / UV-Koordinaten
Verfasst: 31.05.2012, 12:05
von Schrompf
Stimpy hat geschrieben:Einfaches Planares Mapping würde mir auch schon reichen, wenn ich wüsste wie ich das berechne.
Ich glaube, Du hast Dich da etwas verrannt. Das Problem ist so simpel, dass Du die Lösung wahrscheinlich nicht ernst nimmst.
Planares Mapping anhand einer Grundebene:
oder eine beliebige andere Ebene. Allerdings gibt das halt Probleme bei allen Flächen die nahezu senkrecht zu dieser Ebene stehen. Daher dots Hinweis auf automatische Unwrapping-Algorithmen.
Re: Triangulation / UV-Koordinaten
Verfasst: 31.05.2012, 15:57
von Stimpy
dot hat geschrieben:Und um was für Shapes handelt es sich da genau? Liegen die Punkte alle in einer Ebene? Planares mapping ist einfach: Du projizierst die Punktkoordinaten einfach auf eine Ebene und nimmst die Koordinaten in dieser Ebene dann als Texturkoordinaten.
Einfache Umrisse von Flächen. So etwas wie ein Bundesland, also komplett flach. Der Z-Wert ist immer 0, daher ist es auch komplett parallel zur XY-Ebene.
Ich denke U,V Koordianten sind immer zwischen 0 und 1?
Wenn ich
vertex.u = vertex.x;
vertex.v = vertex.z;
verfolge liegt mein UV wert dann ja auf einmal bei -57 o.ä. - Oder bin ich nun endgültig auf dem falschen Dampfer gelandet? :roll:
Re: Triangulation / UV-Koordinaten
Verfasst: 31.05.2012, 16:00
von Schrompf
Die Textur wird außerhalb von (0, 1] wiederholt, wenn Du das beim Rendern so eingestellt hast. Aber Du musst dabei natürlich schon ein bisschen was über die Daten wissen, die Du erwartest. Wenn Du tatsächlich Vertexpositionen im Bereich von beispielsweise -100 bis +100 erwartest, bekommst Du damit eine sehr oft gekachelte Textur. Bau dann halt eine Skalierung ein - *0.01f sollte reichen.
Re: Triangulation / UV-Koordinaten
Verfasst: 31.05.2012, 16:46
von dot
Exakt. In dem Fall dürfte es reichen, einfach die xz Koordinaten zu nehmen und zu skalieren. Je nachdem wie du das Mapping genau haben möchtest, wärs vielleicht eine Idee, das bounding Rectangle der Punkte zu nehmen und eben entsprechend zu normalisieren (ganz links = 0, ganz rechts = 1 etc.).
Re: Triangulation / UV-Koordinaten
Verfasst: 04.06.2012, 12:00
von Stimpy
Genau das mit der Skalierung ist ja das was ich erreichen will. Also einfaches 0,1 Mapping. Nur wie berechne ich dies am besten mit meinen X,Y Koordinaten die von 0 - 5000 oder anderes gehen?!
Re: Triangulation / UV-Koordinaten
Verfasst: 04.06.2012, 12:03
von dot
Zuerst müsstest du mal definieren was genau du erreichen willst. Was genau verstehst du und "einfachem 0,1 Mapping"?
Re: Triangulation / UV-Koordinaten
Verfasst: 04.06.2012, 12:05
von Stimpy
Im Prinzip keine Wiederholungen, 0,0 ist eben Links oben 0,1 Rechts oben 1,0 Links unten 1,1 Rechts unten
Re: Triangulation / UV-Koordinaten
Verfasst: 04.06.2012, 12:10
von Schrompf
Na dann geh all Deine Vertizes durch und bestimme min/max von z.B. x und z. Jetzt hast Du die Spannbreite und die Mitte Deines Wertebereichs und kannst alle Positionen in Texturkoordinaten umrechnen, so dass sich genau eine Texturwiederholung auf den Bereich erstreckt.
Re: Triangulation / UV-Koordinaten
Verfasst: 04.06.2012, 12:13
von dot
Genau. Und genau das meinte ich oben von wegen Bounding Box und normalisieren ;)