CreateTerrain Problem (Gelöst)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Quaxi
Beiträge: 66
Registriert: 11.09.2004 12:42

CreateTerrain Problem (Gelöst)

Beitrag von Quaxi »

Hallo,
ich versuche mich gerade das erste mal an einer kleinen 3D Anwendung und wollte den CreateTerrain Befehl benutzen. Allerdings ernte ich damit immer nur einen schwarzen Bildschirm. Wenn ich ihn auskommentiere wird die eingebaute SkyBox normal angezeigt.
Die SkyBox hab ich selber gezeichnet, die terrain Daten sind aus dem mitgelieferten PureBasic Beispiel entnommen. Hier der Code:

Code: Alles auswählen

InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()

Enumeration
  #CAMERA
EndEnumeration

OpenScreen(1024,768,32,"3D-Test")

Add3DArchive("Data\", #PB_3DArchive_FileSystem)

ClearScreen(0,0,0)

CreateCamera(#CAMERA, 0,0,100,100)
CameraLocate(#CAMERA, 128, 25, 128)

AmbientColor(RGB(255,255,255))

CreateMaterial  (0, LoadTexture(0, "terrain_texture.jpg"))
AddMaterialLayer(0, LoadTexture(1, "terrain_detail.jpg"), 1)
CreateTerrain("terrain.png", MaterialID(0), 4, 0.6, 4, 4)

SkyDome("Sky.jpg",1)

Repeat
  ExamineKeyboard() : ExamineMouse()
  
  RotateCamera(#CAMERA, -MouseDeltaX(),0,0)
  RotateCamera(#CAMERA, 0,-MouseDeltaY(),0) 
  
  If KeyboardPushed(#PB_Key_Up) : MoveCamera(#CAMERA, 1,0,0) : ElseIf KeyboardPushed(#PB_Key_Down) : MoveCamera(#CAMERA, -1,0,0) : EndIf
  If KeyboardPushed(#PB_Key_Left) : MoveCamera(#CAMERA, 0,0,1) : ElseIf KeyboardPushed(#PB_Key_Right) : MoveCamera(#CAMERA, 0,0,-1) : EndIf
  
  RenderWorld()
  
  StartDrawing(ScreenOutput())
  FrontColor(255,100,100) : DrawingMode(1) 
  Locate(0,0) : DrawText("Camera: X="+Str(CameraX(#CAMERA)) + " Y="+Str(CameraY(#CAMERA))+" Z="+Str(CameraZ(#CAMERA)))
  Locate(0,12) : DrawText("FPS="+StrF(Engine3DFrameRate(0), 1))
  StopDrawing()
  
  FlipBuffers()

Until KeyboardPushed(#PB_Key_Escape)

End
EDIT:-
Sodele, nun bin ich doch noch selbst darauf gekommen. Anscheinend ist es wichtig das man die Kamera erst nach dem CreateTerrain erstellt. Zummindest hats bei mir dann funktioniert.
Benutzeravatar
double7
Beiträge: 55
Registriert: 20.09.2004 00:40
Kontaktdaten:

Beitrag von double7 »

Vielen Dank, dieses Problem bereitete mir schon ´ne Weile Kopfschmerzen. Hast Recht, die Position der Initialisierung der Kamera ist ausschlaggebend. :allright:
[0d1n6 15 n07 @ j0b 17´5 |1f357y|3
Antworten