3D GAMESTUDIO-Magazin Ausgabe 01 | Oktober 20051
3D GAMESTUDIO-Magazin Ausgabe 01 | Oktober 20051
3D GAMESTUDIO-Magazin Ausgabe 01 | Oktober 20051
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
und die zweite Schleife aktiv wird. Da der die Variable „index“ null ist und in der Schleife wieder<br />
um eins hochgezählt wird, wird sie 241 mal durchlaufen.<br />
Der Befehl „vec_for_mesh“ liest die Vertexposition des Vertices der durch den „index“ ausgewählt<br />
wurde und kopiert sie in den vordefinierten Vektor „temp“. Die Z-Komponente des Vektors wir nun<br />
in einer Sinusfunktion verändert, abhängig vom Wert des „counters“ und dem aktuellen<br />
„Winkeleintrag“ (0-360) in dem Array.<br />
Per „vec_to_mesh“ wird die Vektorposition dem per index ausgewähltem Vertice wieder<br />
„aufgezwungen“ - er bewegt sich auf der Z-Achse. Natürlich muß der „index“ dann wieder um eins<br />
hochgezählt werden, um den nächsten Vertex zu bedienen. Wenn alle Vertices ein Stückchen<br />
bewegt wurden, wird die Schleife verlassen. Der Counterwert wird erhöht, um die Vertices beim<br />
nächsten Durchlauf weiterzubewegen. Die Variable „index“ wird auf null gesetzt – das Spiel beginnt<br />
von vorne.<br />
Spielen Sie ein wenig mit der Action – sie eignet sich auch als Grundstock für Gardinen, Wasser<br />
und was sonst noch so „wabert oder wellt“<br />
Weisen Sie diese Action den „Nebelseemodellen“ zu. Nun haben Sie ihren ersten dynamischen<br />
Nebel erzeugt. Lassen Sie uns noch rasch ein Material für den Nebel definieren. Sie werden<br />
überrascht von den Effekten sein, die wie Wasser oder Toxien wirken können.<br />
Schauen wir uns seine Definition an:<br />
material fog_mat<br />
{<br />
}<br />
ambient_red = 10;<br />
ambient_green =10;<br />
ambient_blue = 10;<br />
diffuse_red = 0;<br />
diffuse_green = 100;<br />
diffuse_blue = 0;<br />
specular_red = 0;<br />
specular_green = 255;<br />
specular_blue = 0;<br />
emissive_red = 0;<br />
emissive_green = 100;<br />
emissive_blue = 0;<br />
power = 5;<br />
Die Grundhelligkeit (Ambient) beträgt 10.<br />
Diffuse beschreibt, wieviel Licht und welche Farbe das Material empfangen kann.<br />
Specular setzt einen Glanzpunkt<br />
Emissive bestimmt mit welchem Wert sich die Entity illuminiert.<br />
Power steht für die Größe des Glanzpunktes.<br />
Schreiben Sie in die Action „fog_dynamic folgendes, gleich unter „my.passable = on;“ :<br />
my.material = fog_mat;<br />
Nun haben Sie dem Nebelsee ein Material zugewiesen. Was noch fehlt ist ein dynamisches Licht,<br />
um die Auswirkungen des Effekts richtig zu sehen.<br />
Sie können ein einfaches Modell nehmen (z. B. einen Würfel) und diesem die folgende Action<br />
geben:<br />
action light_dyn<br />
{<br />
<strong>3D</strong> <strong>GAMESTUDIO</strong>-<strong>Magazin</strong> ■ <strong>Ausgabe</strong> <strong>01</strong> | <strong>Oktober</strong> 2005 │39