|
|
Multiterrain-Shader Problem: Die Problemstellung für den hier vorgestellten Terrainshader ist es eine Maskierung zu erstellen deren Rot, Grün und Blaufarben jeweils in einem Durchgang zu überblenden. Zusätzlich soll noch eine Basistextur angegeben werden. Da diese Basistexture meist von Generierungstools mit einer sehr schlechten Auflösung erstellt wird und daher sehr "schwammig" erscheint soll über diese Basistextur noch eine Detailmap gelegt werden. Bild: Links Basistextur ohne Detailmap/Rechts Basistextur mit Detailmap Für mehr Informationen Erstellung einer Detailmap Lösung und Einschränkungen: Für die Realisierung des Shaders ist es erforderlich dass 6 verschiedene Texturen miteinander kombiniert werden: Texture1 RGB Maske Um 6 Texturen überblenden zu können ist mindestens eine Grafikkarte erforderlich die das Shader Modell 1.4 unterstützt. Der vorgestellte Shader ist nur mit dem Shader Modell 2.0 getestet. Hierzu ist z.B. eine Grafikkarte vom Typ Nvidia 6200 erforderlich. Link zu Microsoft MSDN: Microsoft MSDN Maximale Anzahl von Texturen die in einem Pass überblendet werden können:
Der Shader wurde bisher auf Nvidia 6200 und ATI Radeon X700 getestet. Beide Karten unterstützen das Shader Modell 2. Bei älteren Karten wird der Shader nicht funktionieren. Hierfür müsste eine Fallback Technik implementiert werden.
Die C-Script Sprache und die Struktur Material unterstützen maximal 4 Texturen. Daher müssen die 6 Texturen über das Terrainmodell und das Material verteilt werden. Das Modell enthält die Basistextur und die RGB Maske:
Die Basistextur wird dort erscheinen wo in der Maskierungstextur die Farbe Schwarz gewählt wurde. Die Texturen die über die Farben Rot, Grün und Blau gelegt werden werden im Material als Skin1, Skin2 und Skin3 geladen. Die Detailmap wird als Skin4 geladen Es ist sehr wichtig dass alle Texturen die gleiche Größe haben !!!
Der Shader legt jetzt die Basistextur über die schwarze Fläche in der Maske und blendet die Detailmap darüber. Anschließend wird über die rote Fläche die Grasstextur, über die grüne Fläche die Wegtextur und über die blaue Fläche die Sandtextur gelegt.
|