Simple Shaders

Ein Vorteil von Shadern ist, daß Sie 4 Texturen kombinieren können, und Sie haben mehr Freiheit, wenn Sie diese miteinander kombinieren.. Und die Möglichkeiten des Shader Operators sind nur ein sehr kleiner Teil der Hardwarefähigkeit.

 

Similarities to Materials

Trotz der Warnung, das sich viel geändert hat, sind einige Parameter dieselben wie im Material. Diese sind:
- Pass
- Blending
- Z-Puffer
- Doublesided

Und pro Textur:
- Filter
- Tiling

 

Color

Der Farb Parameter in jeder Textur erklärt was mit der Farbe der Textur zu tun ist.

Das beste ist "+tex" zu addieren; oder "*tex" zu multiplizieren. Für die erste Textur macht es keinen Unterschied, aber die folgenden Texuren werden dementsprechend addiert oder multipliziert. Bedenken Sie, daß Multiplikation nicht Vorrang vor Addition hat, wenn Sie die vier Texturen als "+tex", "+tex", "*tex", "+tex" wählen, wird die Farbe als "(((tex0 + tex1) * tex2) + tex3)" berechnet.

Wenn Sie eine Textur als "unused" wählen, werden diese und alle folgenden Texturen ignoriert.

Die anderen Möglichkeiten schließen die Farbe ein, die Sie im "Shader" Operator einstellen können.

 

UV-Cannels

Sie können zwei UV-Führungen "uv0" und "uv1" wählen, "Model Space" und "Normals".

"Model Space" nimmt die 3D-Koordinaten des Vertex, dieses kann als zusätzliches, einfaches Mapping nützlich sein.

"Normals" können für einfaches Environment Mapping verwendet werden, anders als der "material" Operator, muß das Mapping nicht mit einem "key" eingestellt zu werden.

Sie können einen "key" benutzen, um das Mapping weiter einzustellen, aber das funktioniert nicht mit Envis und animieren ist langsam.

Die"aniso" Option erlaubt anisotrope Beleuchtung, die im folgenden Kapitel erklärt wird.

 

Per Pixel Light

Hier sehen Sie zwei Beispiele eines mosaikartigen Würfels, der durch ein einziges Licht beleuchtet wird. Der "Material" Operator beleuchtet pro Vertex, und es sieht wirklich häßlich aus. Der "Shader" Operator beleuchtet pro Pixel und das sieht viel besser aus. Sie werden feststellen, daß etwas das pro Pixel beleuchtet wird viel besser aussieht, aber leider ist es viel Leistungsintensiver. Der reale Gebrauch ist, wenn wir ein Bumpmap addieren, wie später erklärt. Sehen Sie dieses als Zwischenschritt in die richtige Richtung.

 

Using Per Pixel Light

Wählen Sie einfach das "LIGHT C D" Programm.

Sie können nur eine Lichtquelle haben. Diese Lichtquelle wird immer als Punkt-Licht benutzt, und nur seine Position wird verwendet. Um die Lichtquelle dem Shader anzuschließen, setzen Sie den Shader in einen eindeutigen Pass und die Lichtquelle ein. Wenn Sie mehr als eine Lichtquelle haben, wählt das werkkzeug1 zufällig eine aus, was nicht das ist, was Sie möchten.

             
      Simple Shader      
             
   

"Alpha"

Die Möglichkeiten für "Alpha" sind denen für "Color" ähnlich, hier können Sie steuern, wie der Alphakanal festgestellt wird.

Wenn eine Textur "unbenutzt" im Farbe-Feld ist, können Sie ihre Alpha nicht benutzen. Wenn Sie den Alpha Kanal einer Textur nicht benutzen möchten, wählen Sie einfach "nop" aus, dieses hat keinen Effekt auf dem Alpha Kanal. Wenn Sie "nop" für alles Alpha's auswählen, wird das Alpha automatisch auf 255 eingestellt.

Der Alphakanal dient einen zusätzlichen Zweck: Sie kann als "Weiße" Farbe verwendet werden, wie für spektakuläre Beleuchtung. "add texture alpha as specular" tut genau das, ohne den Wert des Alphakanals zu ändern. "add old alpha als specular" nimmt den Alphakanal, der so durch vorhergehende Texturen eingestellt wird und addiert sie, wie specular, dann liest sie das Alpha der gegewärtigen Textur zur Alphakanal.

Es kann ziemlich unangenehm sein, zufällige Daten im Alphakanal zu haben, da niedrige Alphawerte das Polygon selbst verschwinden lassen, selbst wenn das Alpha Blending ausgeschaltet ist.

   
             
  Simple Shader  
             
   

Texture-Stages for Light

Das Licht besetzt die ersten zwei Textur-Stadien, also haben Sie nur C und D zur Verfügung. Dieses ist was "LIGHT C D" bedeutet. Sie können nur zwei weitere Texturen addieren.

Alle Einstellungen, die Sie für Textur A machen, werden ignoriert. Aber Sie können ein Alpha- und Farbenprogramm für Textur B wählen. Eine offensichtliche Möglichkeit für die Farbe ist "*diffuse*tex+ambient", mit "tex" existiert die Farbe der Licht-Berechnung.