UV-Koordinaten eines Terrains berechnen

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.

UV-Koordinaten eines Terrains berechnen

Beitragvon Aharabada » 06.04.2017, 21:14

Guten Tag,

Nachdem ich jetzt schon seit einer Ewigkeit vergebens am rum experimentieren bin und noch immer keine Lösung gefunden habe, ersuche ich nun den Rat der Speziellen Spezialisten.
In der Theorie ist mein Problem ganz einfach: Ich möchte die UV-Koordinaten meines Terrains mit Hilfe der Welt-Position der Vertices berechnen.

Der klassische Ansatz, die Koordinaten in den Vertices des Terrains zu speichern ist nicht möglich, da die Position der Geometrie ständig der Position der Kamera angepasst wird, folglich müssten auch die UV-Koordinaten ständig geändert werden - unmöglich. Zusätzlich sind die Dreiecke alle zusammenhängend (pro Position nur ein Vertex) und mir ist kein Weg bekannt mit dem man verhindern kann, dass die UV-Koordinaten falsch nicht wie erwünscht interpoliert werden.
Bisher berechne ich aus der Weltposition des Pixels dessen UV-Koordinate. Wenn ich einfach die Position als UV verwende funktioniert es, die Texture wiederholt sich jeden Meter und es sieht "schön" aus. Da ich allerdings zur Zeit mit einem Textur-Atlas arbeite und daher die Koordinaten noch anpassen muss damit ich nur einen bestimmten Abschnitt des Atlases verwende, bekommt das Terrain einen hässlichen look wie im Bild zu sehen ist (Ich vermute, dass das durch den Frac-Befehl kommt).

Screenshot_1.png


Ich wäre sehr dankbar, wenn jemand bereit wäre seine kostbare Lebenszeit und Energie für das Nachdenken über dieses Problem aufwenden könnte und bereit wäre Vermutungen zur Lösung dessen mit mir zu Teilen.

Mit freundlichen Grüßen,
Simon

Ps: Ich nutze MonoGame und Shadermodel 5.0
Aharabada
 
Beiträge: 6
Registriert: 24.03.2016, 20:57

Re: UV-Koordinaten eines Terrains berechnen

Beitragvon MasterQ32 » 06.04.2017, 21:32

Theoretisch löst sich ganze mit einem 2D-Textur-Array, aber das gibt es in MonoGame nicht.
Ansonsten musst du wohl manuelles Samplen und Filtern betreiben

Nachtrag:
Du kannst auch deine Texturen für den Altas so machen, dass du die auf dem Atlas "vorkachelst" und so den "Wrapround" emulieren kannst. funktioniert aber nicht mit mipmapping
Duct tape is like the force. It has a light side, a dark side, and it holds the world together.
MasterQ32
Felix Queißner
 
Beiträge: 867
Registriert: 07.10.2012, 14:56

Re: UV-Koordinaten eines Terrains berechnen

Beitragvon Aharabada » 07.04.2017, 17:08

Die Texture-Arrays funktionieren doch, zumindest erstmal ohne Mip-Maps
Danke! :D
Aharabada
 
Beiträge: 6
Registriert: 24.03.2016, 20:57


Zurück zu Grafikprogrammierung

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron