Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

11.07.2014, 17:10

DirectX 11: Terrain mit verschiedenen Texturen

Hi,

ich habe ein Modell eines Terrains, das automatisch generiert wird, und den zugehörigen Vertex- und Index-Buffer. Aktuell wird nur eine Textur dargestellt. Ich kann aber durch eine mathematische Funktion bereits in C++ (also schon beim Erstellen des Vertex-Buffers) für jeden Vertex bestimmen, welche Textur (Gras, Sand, Schnee, ...) an seiner Position dargestellt werden soll. Ich habe aber absolut keine Idee, wie ich das jetzt im Pixel-Shader umsetzen soll und ob das überhaupt geht... Außerdem sollen beim Übergang zwischen zwei Texturen diese ineinander übergehen, aber auch da habe ich keine Ahnung und Googeln hat mich auch nicht weitergebracht...

Weiß von euch jemand, wie das gehen könnte? Eine große Textur (also eine Textur, in der die eigentlichen Texturen nebeinander liegen) und das Ganze über Texturkoordinaten lösen? Hab das aber irgendwie nicht so gut hinbekommen... In der Ferne werden teilweise Randbereiche der falschen Textur dargestellt und die Übergänge sind auch nicht gerade toll...

Grüße,
Magogan
Cube Universe
Entdecke fremde Welten auf deiner epischen Reise durchs Universum.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Magogan« (11.07.2014, 17:19)


Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

2

11.07.2014, 17:26

Texturarrays ist das Stichwort

3

11.07.2014, 17:29

Ja, von Texturearrays habe ich auch schon gehört, aber wenn ich eine Integer in den Vertex packe und diese als Index für das Array nehme, geht das nicht. Wie soll ich das denn sonst umsetzen? Ich überlege schon die ganze Zeit und mir fällt einfach keine sinnvolle Lösung ein...
Cube Universe
Entdecke fremde Welten auf deiner epischen Reise durchs Universum.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

4

11.07.2014, 17:39

Wieso sollte das nicht gehen? Prinzipiell geht das natürlich so. Wenn du die ganze Sache an den Übergängen noch glätten willst, muss du das etwas erweitern. Zum Beispiel indem man mehrere gesampelte Texturlayer aufeinanderlegt und die im Pixel Shader blendet.

5

11.07.2014, 17:41

"Wer Angst hat, dass ihm seine Ideen geklaut werden, der scheint nicht viele zu haben. "

6

12.07.2014, 01:50

Wenn du das, was du vorhast wirklich dynamisch machen möchtest, bieten sich imho sinvoll nur Low Res Blend Maps dafür an für jedes Detail layer und das ganze dann mit einer Colormap blenden.
Das ganze zu prebaken und statisch dann zu rendern, also dass du nurnoch eine detailmap über das gesamte terrain und eine colormap hast, wird jedoch vermutlich deutlich perfomanter sein ;)
EnvisionGame(); EnableGame(); AchieveGame(); - Visionen kann man viele haben. Sie umzusetzen und auf das Ergebnis stolz zu sein ist die eigentliche Kunst.

Werbeanzeige