Meshterrain Texture Splatting und Normal Lighting

Übersicht Sonstiges Projekte

Neue Antwort erstellen

 

Krischan

Betreff: Meshterrain Texture Splatting und Normal Lighting

BeitragDo, Dez 03, 2009 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich stelle Euch hier eine Lösung vor, die es erlaubt, auf einem Meshterrain mehrere Texturen so ineinander zu faden, dass man nahtlose und weiche Übergänge z.B. zwischen Gras und Fels hat, wahlweise mit mehreren oder nur einem Mesh. Zudem poste ich eine Erweiterung, die eine Normalmap in Verbindung mit Vertexlight zur Beleuchtung verwendet und dadurch den Detailgrad der 128x128 grossen Map erheblich erhöht (simulierte 2048x2048 Heightmap).

Gesteuert werden alle Demos mit der Maus und den Pfeiltasten, Maustasten = 2x schneller fliegen, SPACE = Wireframe. Bei Demo1 können mit Taste 1-5 die einzelnen Meshes ein/ausgeblendet werden, bei Demo 3 kann mit den Tasten Q/W der Sonnenwinkel und mit den Tasten A/S der Sonnenstand vertikal verändert werden um den Licht/Schatteneffekt der Normalmap zu zeigen.

Die Maps der Demos sind auf 128x128 Pixel begrenzt, die verwendete Normalmap ist mit 2048x2048 recht gross ausgefallen, wenn die Demo nicht funktioniert einfach mal die Normalmap auf 1024x1024 verkleinern, falls die Grafikkarte mit so grossen Texturen nicht auskommt. Es kann übrigens zu Darstellungsfehlern auf Intel-Chipsätzen kommen. Und durch die hohe Komprimierung der Normalmap kann es vereinzelt zu blockartigen Schatten kommen.

Demo 1: Texture Splatting mit mehreren Meshes: Download Demo 246KB ZIP
Hier werden mehrere Meshes an derselben Stelle übereinandergelegt, wobei das Basismesh mit FX2 alle Vertices belegt und die darüberliegenden mit Vertexalpha und FX2+32 nur an - durch Alphamaps definierte - Stellen durchscheint. Eine "schlaue" Mesherstellungsfunktion verwendet dabei auch nur Alphawerte die nicht voll transparent sind um die zu zeichnenden Triangles zu reduzieren.

Demo 2: Texture Splatting mit nur einem Mesh: Download Demo 246KB ZIP
Wie Demo 1, nur halt mit einem Mesh und dafür mit Brushes und Surfaces gearbeitet. Ist ein wenig schneller und ausgereifter als Demo 1.

Demo 3: Texture Splatting mit Normal Lighting: Download Demo 1.2MB ZIP
Wie Demo 2 nur mit zusätzlichem Mesh mit FX1, auf dem mit Blendmode 4 (DOT3) eine Normalmap als Textur aufgebracht wird, die zusammen mit einer Detailmap und Entityblendmode 2 über das eigentliche Terrain gelegt wird und damit sehr hohe Schattendetails erreicht, was die Map insgesamt realistischer erscheinen lässt. Durch geschicktes Steuern der Entitycolor dieses Meshes kann der Sonnenwinkel simuliert an die "echte" Position der Vertexlichtquelle angeglichen werden und ergänzt diese sehr schön.

Screenshot Texture Splatting (Demo 1+2)
user posted image

Screenshot Texture Splatting mit Normal Lighting (Demo 3)
user posted image

Wenn Ihr Fragen dazu habt nur zu - ist aber alles gut kommentiert (allerdings auf Englisch, da ich solche Dinger immer auch auf blitzbasic.com poste). Texturen sind von Spiralgraphics/Genetica Viewer und L3DT, zur Maperstellung habe ich wie immer L3DT verwendet (1024er Heightmap auf 128 verkleinert).

ozzi789

BeitragDo, Dez 03, 2009 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr schön!
Sieht super aus, und ist auch schnell

mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

PSY

BeitragDo, Dez 03, 2009 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
super, wollte mich schon länger damit befassen, das kommt gerade richtig Smile

werds mir demnächst mal genauer ansehn. vielen dank !
PSY LABS Games
Coders don't die, they just gosub without return
 

Omenaton_2

BeitragSa, Dez 05, 2009 12:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr gut gemachte Landschafstdarstellung.
Irgendwann werde ich sowas wahrscheinlich auch brauchen. Ich werde es bald irgendwann testen wie aufwendig es wäre ähnliche Landschaften samt Editor für mein Spiel zu machen. Aber davon bin ich noch mindestens ein halbes Jahr entfernt.

Auf jeden Fall freue mich darüber, daß ich sehe, daß man wirklich vernünftig aussehende Landschaften überhaupt machen kann.

Neue Antwort erstellen


Übersicht Sonstiges Projekte

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group