Hilfe

LoadTerrain

B3D

Aufruf

Terrain = LoadTerrain (Datei$ [,Parent])

Parameter

Datei$ Dateiname und gegebenenfalls Pfadangabe einer Grafikdatei (bmp, jpg, png)
Parent Identität des Objekts, an das es angehängt werden soll


Rückgabewert

Die Identität des Terrains wird zurückgeliefert. Wenn eine Null zurückgeliefert wird, dann konnte die Grafikdatei nicht geladen werden.


Beschreibung

Dieser Befehl lädt ein Terrain und liefert die Identität des Terrains zurück. Die rote Farbe des Bildes bestimmt dabei die Höhe des Terrains. Das erstellte Terrain hat danach die selbe Größe wie das Bild. Die Höhe des Terrains ist 1.
Tipps zur Erstellung eines guten Terrains:
-Glätte das Terrain (Weichzeichnen)
-Reduziere Y-Größe des Terrains
-Erhöhe X/Z-Größe des Terrains
-Reduziere CameraRange

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 geladene Terrain wird normalerweise an der Position 0,0,0 erstellt. Wurde Parent angegeben, dann wird es an der Position des Parent-Objekts erstellt.


Heighmap-Beispiel


Beispiel

Standardbeispiel:

Erstellt ein Terrain aus einer heightmap. Die Kamera lässt sich mit Tasten verschieben:

Graphics3D 640, 480, 16, 1
SetBuffer BackBuffer()
camera = CreateCamera()
PositionEntity camera, 1, 1, 1
light = CreateLight()
RotateEntity light, 90, 0, 0

terrain = LoadTerrain("media/height_map.bmp")
TerrainDetail terrain, 4000, True
ScaleEntity terrain, 1, 50, 1
grass_tex = LoadTexture("media/mossyground.bmp")
EntityTexture terrain,grass_tex, 0, 1

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.1
   If KeyDown(200) = 1 Then MoveEntity camera, 0, 0, 0.1
   x# = EntityX(camera)
   y# = EntityY(camera)
   z# = EntityZ(camera)
   terra_y# = TerrainY(terrain, x#, y#, z#) + 5
   PositionEntity camera, x#, terra_y#, z#
   RenderWorld
   Flip
Wend
End

Übersicht 3D Grafik Terrain