|
|
| |
|
|
|
|
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.
|
|
|
|
 |
|
|
|
| |
|
|
|
|
|
|
| |
|
|
 |
|
|
|
| |
|
|
|
|
|
|
| |
|
"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.
|
|
|
| |
|
|
|
|
|
|
| |
 |
|
| |
|
|
|
|
|
|
| |
|
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.
|
|
|
| |
|
|
|
|
|
|
|