Shader "TrainGlass.fx"

Der Shader TrainGlass.fx in RailWorks sollte immer dann verwendet werden, wenn ein lichtdurchlässiges Glasmaterial benötigt wird. z.B. Fenster an Schienenfahrzeugen oder an Gebäuden.

Mit dem Glas-Shader kann der Autor die folgenden Eigenschaften steuern:

  1. Textur - Glasoberfläche und Material, Farbe, Kratzer etc.
  2. Transluzenz - Wie durchsichtig das Glas ist
  3. Specular - Die Größe des "glänzenden" Glanzpunktes
  4. Environment Map - Die Intensität der Environment Map (der vorgetäuschten Reflexion) bei Tag- und Nachtbeleuchtung.

Anwendungsbeispiel:

Transparente Fenster an Schienenfahrzeugen und Gebäuden

Interessanter Punkt:

Es muss nur eine einzige Textur vom Autor erstellt werden, obwohl es zwei Textur-Slots in diesem Material gibt. Beide Textur-Slots MÜSSEN eine Textur-Referenz enthalten. Dieselbe Textur kann in beiden Textur-Slots referenziert werden (oder auf sie zeigen).

Der zweite Textur-Slot existiert einfach, um dem Spielcode zu ermöglichen, ein zweites Umgebungs-Rendering (Fake-Reflection-Map) im Spiel auszuführen.

Hier wird der Shader "TrainGlass.fx" auf 3 Assets (A, B und C) angewendet, die alle unterschiedliche Parameter verwenden:

TrainGlass.fx-Shader bei Tageslicht betrachtet:


TrainGlass.fx-Shader in der Nachtansicht:



Hier haben wir die 3 Materialien, die für die Assets A, B und C verwendet werden.
Alle verwenden denselben Shader (TrainGlass.fx), verwenden aber unterschiedliche Parameter.
 

Die Parameter des sogenannten "Phong Lighting" sind unten hervorgehoben:



Die wichtigen Parameter sind die UV-Argumente (nur für Slot 1) und die Specular Power:
  • UV-Argument 1: Hier wird die "Dichtigkeit" des Phong-Highlights angegeben. Halten Sie diesen Wert zwischen 0 und 64, wobei 64 der "dichteste" Wert ist.
  • UV-Argument 2: Hier wird die Intensität der Reflexion (bei Tag) angegeben
  • UV-Argument 3: Hier wird die Intensität der Reflexion (bei Nacht) angegeben
  • Specular Power: Dies gibt die Helligkeit (oder Intensität) des Phong-Lichts an. Halten Sie diesen Wert zwischen 0-8, wobei 8 am hellsten ist

Beispieltextur (verwendet für die obigen Beispiele) mit RGB und Intensität des Alphakanals: