Licht

Licht ist eine wichtig Sache in Spielen den Licht sorgt erst für die gewünschte Atmosphäre.
fangen wir als erstes mit der Richtungsbeleuchtung an das ist eigentlich ganz einfach:

Graphics3D 640, 480

SetBuffer BackBuffer()

AmbientLight 20, 20, 20

Global camera=CreateCamera()

Global cylinder=CreateCylinder(30)

PositionEntity cylinder, 0, 0, 5

Global light=CreateLight(1)

PositionEntity light, 0, 2, 4

While Not KeyHit(1)

        TurnEntity cylinder, 1, 1, 1

        WireFrame(0)

        UpdateWorld

        RenderWorld

        Flip

Wend

 

"Ambientlight 20, 20, 20": kennen wir ja schon bereits aber wenn wir schon mal bei Licht sind.
Es ist einfach nur zum ändern der Hintergrundbeleuchtung. Die Zahlen geben den Farbanteil an.

Die Farbe des erstellten Lichtes kann man natürlich auch ändern das macht man mit
"LightColor light, rot, grün, blau".

Die Lichtstärke ändert man mit "Lightrange light, 75" hier ist die Lichtstärke "75".

Es gibt aber nicht nur die Richtungsbeleuchtung sondern auch noch:
     - Punktbeleuchtung
     - Scheinwerferlicht
Die Lichtart kann man ändern indem man die entsprechende Zahl für die Beleuchtungsart in die Klammern
von CreateLight() einsetzt Richtungsbeleuchtung=1, Punktbeleuchtung=2, Scheinwerferlicht=3.

Wenn man einen Scheinwerfer verwendet dann kann man natürlich auch den Lichtkegel verändern das macht man mit
"LightConeAngles light, 0, 2" die erste Zahl steht für den Innenradius des Kegels und die zweite für den äußeren.
Mehr braucht man eigentlich nicht fürs Licht wissen.

 

Effekte

Kommen wir nun zu ein paar Effekten mit denen man zum Beispiel Wasser erstellen kann.
Wir benötigen als erstes eine Wasser und Steintextur die könnt ihr euch einfach abkopieren.

Sie liegen aber auch im Ordner "Bilder". Und hier der Quellcod:

Graphics3D 640, 480

SetBuffer BackBuffer()

Global camera=CreateCamera()

PositionEntity camera, 0, 0, -40

Global wasser=LoadTexture( "wasser.bmp" )

Global stein=LoadTexture( "stein.bmp" )

Global cube1=CreateCube()

PositionEntity cube1, 0, 5, 0

ScaleEntity cube1, 10, 10, 0.5

EntityTexture cube1, stein

Global cube2=CreateCube()

PositionEntity cube2, 0, 0, 0

ScaleEntity cube2, 10, 10, 0.5

EntityTexture cube2, wasser

EntityAlpha cube2, 0.3

While Not KeyHit(1)

        TurnEntity cube1, 1, 0, 0

        TurnEntity cube2, 1, 0, 0

        UpdateWorld

        RenderWorld

        Flip

Wend

   

  Wasser                      Stein

 

 

 

 

 

Mit "EntityAlpha variable, wert zwischen 0 und 1" kann man also einen Körper leicht oder    auch stark durchsichtig erscheinen lassen. Um so größer der wert desto undurchsichtiger wird der   Körper.
 

 

 

 

 

<zurück                                                                                                                                                                                              

<zurück zur Übersicht                                                                                                                                                                          weiter>