Triangulation / UV-Koordinaten

Design Patterns, Erklärungen zu Algorithmen, Optimierung, Softwarearchitektur
Forumsregeln
Wenn das Problem mit einer Programmiersprache direkt zusammenhängt, bitte HIER posten.
Antworten
Stimpy
Beiträge: 49
Registriert: 02.03.2011, 15:16
Wohnort: Seelze / Hannover
Kontaktdaten:

Triangulation / UV-Koordinaten

Beitrag 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!
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Triangulation / UV-Koordinaten

Beitrag 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...
Stimpy
Beiträge: 49
Registriert: 02.03.2011, 15:16
Wohnort: Seelze / Hannover
Kontaktdaten:

Re: Triangulation / UV-Koordinaten

Beitrag 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
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Triangulation / UV-Koordinaten

Beitrag 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.
Zuletzt geändert von dot am 31.05.2012, 12:06, insgesamt 1-mal geändert.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Triangulation / UV-Koordinaten

Beitrag 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:

Code: Alles auswählen

vertex.u = vertex.x;
vertex.v = vertex.z;
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.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Stimpy
Beiträge: 49
Registriert: 02.03.2011, 15:16
Wohnort: Seelze / Hannover
Kontaktdaten:

Re: Triangulation / UV-Koordinaten

Beitrag 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:
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Triangulation / UV-Koordinaten

Beitrag 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.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Triangulation / UV-Koordinaten

Beitrag 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.).
Stimpy
Beiträge: 49
Registriert: 02.03.2011, 15:16
Wohnort: Seelze / Hannover
Kontaktdaten:

Re: Triangulation / UV-Koordinaten

Beitrag 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?!
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Triangulation / UV-Koordinaten

Beitrag von dot »

Zuerst müsstest du mal definieren was genau du erreichen willst. Was genau verstehst du und "einfachem 0,1 Mapping"?
Stimpy
Beiträge: 49
Registriert: 02.03.2011, 15:16
Wohnort: Seelze / Hannover
Kontaktdaten:

Re: Triangulation / UV-Koordinaten

Beitrag von Stimpy »

Im Prinzip keine Wiederholungen, 0,0 ist eben Links oben 0,1 Rechts oben 1,0 Links unten 1,1 Rechts unten
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Triangulation / UV-Koordinaten

Beitrag 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.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Triangulation / UV-Koordinaten

Beitrag von dot »

Genau. Und genau das meinte ich oben von wegen Bounding Box und normalisieren ;)
Antworten