Terrain Texturierung

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
Jonathan
Establishment
Beiträge: 3003
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Terrain Texturierung

Beitrag von Jonathan »

Ich hab ja, z.b. im Landvogt, Karten die ich irgendwie texturieren muss. Ich brauche nicht viel, bisschen Gras, Erde, Fels, das reicht ja fürs erste schon.
Wenn man jetzt nach Gras-Texturen sucht, findet man natürlich eine Menge. Aber meistens decken (bei halbwegs realistischer Skalierung) nur so 1-2 Meter ab (und das ist bei Sand oder Steintexturen natürlich ähnlich). Der Detailgrad ist ok für einen Egoshooter, aber für ein Strategiespiel aus der Vogelperspektive brauche ich das eigentlich selten.

Die meisten sind zum Glück periodisch und lassen sich ohne sichtbare Kanten kacheln. Aber die Wiederholungen in den Mustern sieht man trotzdem stark. Es gibt Texturen, wo das weniger auffällt, aber halt auch meistens dann deshalb, weil die langweiliger sind. Es muss also etwas neues her.

Hat schonmal jemand von euch "High-Performance By-Example Noise using a Histogram-Preserving Blending Operator", [Heitz und Nezret 2018]
ausprobiert? Ist ein bisschen Aufwand, weil man alle Texturen vorprozessieren muss, aber die Ergebnisse sehen schon recht nice aus.

https://eheitzresearch.wordpress.com/722-2/
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Specialist
Establishment
Beiträge: 137
Registriert: 29.08.2003, 14:22
Kontaktdaten:

Re: Terrain Texturierung

Beitrag von Specialist »

Ich habe von deinem genannten Ansatz bisher nichts gehört, bzw. sagt mir der Titel nichts.
Aber man findet zuhauf online zu dem Problem Artikel, z.B. den hier:
https://gizmosandgames.com/2017/03/18/t ... h-voronoi/

Auf Shadertoy gibt es ebenfalls einige Beispiele.
https://www.shadertoy.com/results?query=texture+tiling

Zusätzlich dazu fällt mir noch das Stichwort Texture Bombing ein:
https://developer.nvidia.com/gpugems/gp ... re-bombing

Du könntest ebenfalls ein paar Decals aufs Terrain setzen, immer mal wieder leicht rotiert.
NytroX
Establishment
Beiträge: 434
Registriert: 03.10.2003, 12:47

Re: Terrain Texturierung

Beitrag von NytroX »

Das "High-Performance By-Example Noise using a Histogram-Preserving Blending Operator" Paper sieht interessant aus, beschreibt aber auch klar die Fälle wo es nicht gut funktioniert. Also bei Gras oder Dreck könnte ich mir das gut vorstellen, für Bricks oder so klappt es dann halt nicht.

Von Specialist bei den Links zu den Shadertoys fand ich das hier interessant:
https://www.shadertoy.com/view/4flcR4

Es spricht direkt das Problem mit den Hexagonalen Samples an. Der Code ist auch klein und übersichtlich und scheint auch mit vordefinierten Formen ganz gut klarzukommen, aber bei Bricks usw. macht das dann logischerweise auch Probleme. Aber generische Pattern wie z.B. Steine/Schotter klappen da gefühlt besser. Eventuell das zuerst mal probieren, weils leichter zu implementieren ist; vllt. löst das dein Problem schon.

Musst halt mal schauen was du aktuell für Texturen nutzt bzw wie regelmäßig sie sind.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2299
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: Terrain Texturierung

Beitrag von Zudomon »

Ansonsten kannst du noch die alten Tricks anwenden. Grobe Texturen und dann darauf Detailtexturen, so wie früher Unreal und Serious Sam. Du kannst auch einfach noch ein bisschen die Farbe der Textur variieren. Zum schnellen Test könntest du eine sehr groß skalierte Random Textur schwach mit reinrechnen.
Ich würde das kombinieren mit dem, was hier schon erwähnt wurde. Du willst es ja eher für natürliche Welt Texturen (Gras, Erde, Fels) verwenden, da funktionieren diese Sampling Ansätze scheinbar sehr gut.
Zusätzlich noch Decals, das wurde ja auch schon gesagt.
Und zur Not haust du noch viele Objekte mit drauf, damit man gar nicht erst den Boden sieht 😂
Antworten