Hilfe

CreateTerrain

B3D

Aufruf

Terrain = CreateTerrain (Teilung [,Parent])

Parameter

Teilung Anzahl der Segmente an jeder Terrainkante
Parent Identität des Objekts zu dem es hinzugefügt werden soll.


Rückgabewert

Es wird die Identität des Terrains zurückgeliefert.


Beschreibung

Der Befehl CreateTerrain erstellt ein Terrain und liefert die Identität des Terrains zurück.

Das Terrain wird an der Koordinate 0, 0, 0 erstellt. Die Breite und Höhe entsprechen der Teilung.

Ein Terrain ist ein spezielles Objekt, welches level-of-detail (LOD) benutzt. Dadurch sind theoretisch Terrains mit Millionen von Polygonen möglich. Dabei werden nahe Terrainstellen sehr detailliert gezeichnet, weite Terrainstellen haben dagegen geringe Details.
Die ständige "umordnung" der Polygone ist jedoch deutlich erkennbar - dies ist ein bekannter Nebeneffekt, der dabei auftritt. Dieser "pop-up"-Effekt kann jedoch etwas reduziert werden (mit dem Befehl TerrainDetail).

Die Größe des Terrains muss eingegeben werden. Dies kann immer nur ein Exponent von 2 sein (z.B. 2,4,8,16,32,64,128,256...).
Wurde der Parameter "Parent" angegeben, dann wird dieses Terrain zu einem Objekt hinzugefügt. Falls nun ein Parent-Objekt bewegt wird, dann werden alle hinzugefügten Objekte automatisch verschoben. Ein Child-Objekt verschiebt dagegen kein Parent-Objekt mit.
Das Terrain wird normalerweise an der Position 0, 0, 0 erstellt. Wurde Parent angegeben, dann wird die an der Position des Parent - Objekts erstellt.


Beispiel

Standardbeispiel:

Dieses Programm erstellt ein Terrain. Mit den Cursortasten kann man eine Kamera bewegen:

Graphics3D 640, 480
SetBuffer BackBuffer()

camera = CreateCamera()
PositionEntity camera, 0, 1, 0

light = CreateLight()
RotateEntity light, 90, 0, 0

terrain = CreateTerrain(128)

grass_tex = LoadTexture("media/mossyground.bmp")
EntityTexture terrain,grass_tex

While Not KeyHit(1)
   If KeyDown(205) = 1 Then TurnEntity camera, 0, -1, 0
   If KeyDown(203) = 1 Then TurnEntity camera, 0, 1, 0
   If KeyDown(208) = 1 Then MoveEntity camera, 0, 0, -0.05
   If KeyDown(200) = 1 Then MoveEntity camera, 0, 0, 0.05
   RenderWorld
   Text 0, 0, "Benutze Cursortasten..."
   Flip
Wend
End

Übersicht 3D Grafik Terrain