Startseite | Anpassen | Blog | Extras | Anmelden | Info
Handbuch | D&D icons | GML Parser | Archiv | Iso City
Benutzername: Passwort:  
Über | Funktionen | Verzeichnis | Banner | Kontakt

Den Game Maker benutzen
Den Game Maker benutzen

Licht

Licht

Szenen, die du mit den jetzt bekannten Funktionen zeichnest, sehen relativ flach aus, weil es kein Licht gibt. Die Farben der Dreiecke sind, unabhängig von ihrer Richtung, gleich. Um realistischere Szenen zeichnen zu können, musst du Lichter aktivieren und sie an der richtigen Stelle platzieren. Richtig beleuchtete Szenen zu schaffen ist nicht leicht, aber ihr Effekt ist sehr gut.

Um Licht zu aktivieren kannst du folgende Funktion verwenden:

d3d_set_lighting(enable) Aktiviert oder deaktiviert die Benutzung von Licht.

Wenn Licht benutzt wird, wird zuerst die Farbe für jeden Vertex in einem Polygon bestimmt. Als nächstes wird die Farbe aller internen Pixel mithilfe dieser Werte berechnet. Dies kann auf zwei verschiedene Wege geschehen: Entweder bekommt das ganze Polygon die selbe Farbe, oder die Farbe verläuft weich über das Polygon (Smooth Shading). Normalerweise wird Letzteres verwendet, kann aber mit folgender Funktion geändert werden:

d3d_set_shading(smooth) Aktiviert oder deaktiviert Smooth Shading.

Um Licht nutzen zu können, musst du Lichter definieren. Es gibt zwei Arten von Lichtern: gerichtete Lichter (Lichter, die nur in eine Richtung strahlen, wie z.B. ein Scheinwerfer) und Punktlichter (wie eine Glühbirne). Lichter haben eine Farbe. (Es werden nur diffuse lichter unterstützt.) Die folgenden Funktionen existieren, um Lichter zu definieren und zu benutzen:

d3d_light_define_direction(ind, dx, dy, dz, col) Definiert ein gerichtetes Licht. ind ist der Index des Lichtes (eine kleine positive Ganzzahl). (dx,dy,dz) ist die Richtung des Lichts, col die Farbe (oft c_white). Diese Funltion aktiviert das Licht nicht.
d3d_light_define_point(ind, x, y, z, range, col) Definiert ein Punktlicht. ind ist der Indes des Lichtes (eine kleine positive Ganzzahl). (x,y,z) ist die Position des Lichtes. range gibt an, wie weit das Licht scheint. Die Intensität des Lichtes wird über diese Strecke abnehmen. col ist die Farbe des Lichtes. Diese Funktion aktiviert das Licht nicht.
d3d_light_enable(ind, enable) Aktiviert oder deaktiviert das Licht mit dem Index ind.

Wie ein Objekt das Licht reflektiert hängt von dem Winkel zwischen der Richtung des Lichts und dem normal-Vektor (Ein Vektor, der von der Oberfläche wegzeigt) der Oberfläche zusammen. Folglich musst du, um belichtete Objekte zu erstellen, nicht nur die Position der Vertexe definieren, sondern auch ihre Normalen. Dafür gibt es vier weitere Fuktionen, die die Vertexe der Primitives erzeugen:

d3d_vertex_normal(x, y, z, nx, ny, nz, xtex, ytex) Fügt den Vertex (x,y,z) zum Primitive hinzu, mit dem normal Vektor (nx,ny,nz) mit der Position (xtex,ytex) in der Textur, Farbmischung und Alphawerten hinzu.
d3d_vertex_normal_color(x, y, z, nx, ny, nz, xtex, ytex, col, alpha) Fügt den Vertex (x,y,z) mit der Position (xtex,ytex) in der Textur, mit seiner eigenen Farbe und Alpha zum Primitive hinzu, mit dem normal Vektor (nx,ny,nz).
d3d_vertex_normal_texture(x, y, z, nx, ny, nz, xtex, ytex) Fügt den Vertex (x,y,z) zum Primitive hinzu, mit dem normal Vektor (nx,ny,nz) und den Texturkoordinaten (xtex,ytex).
d3d_vertex_normal_texture_color(x, y, z, nx, ny, nz, xtex, ytex, col, alpha) Fügt den Vertex (x,y,z) zum Primitive hinzu, mit dem normal Vektor (nx,ny,nz) und den Texturkoordinaten (xtex,ytex), mit seinen eigenen Farb- und Alpha Werten geblendet.

Die Funktionen, die die einfachen Formen zeichnen, setzen ihre normal-Vektoren automatisch richtig.

Suche Suche


Alternative Versionen Alternative Versionen

Du kannst dieses Handbuch auch auf einer langen Seite (± 1.5 mb) ansehen.

Auch verfügbar in: Niederländisch Englisch Französisch

ZIP Download helpfile

Werbung Werbung

GameMaker Handbuch