Seite 1 von 1

3d nur schwarzer Bildschirm!

Verfasst: 17.05.2007 13:24
von D4uS1
Ich habe ein wenig mit der Irrlicht Engine Experimentiert und hab mich dann doch eher für OGRE entschieden, da hier die Erklärungen auf Deutsch sind und vor allem kann ich unter dem Abschnitt Hilfe eine Suchfunktion nutzen.

Nun mein Problem(oder eher eine Frage):
Wenn ich 3d Programmieren möchte erhalte ich nur ein schwarzes Bild, woran liegt das, 2d Sprites Werden nachwievor dargestellt.
Muss ich irgentetwas spezielles machen damit es funktioniert?

Beispiel:

Code: Alles auswählen

If InitEngine3D()
Else
 MessageRequester("Fehler", "Konnte 3d Engine nicht laden", #PB_MessageRequester_Ok)
EndIf
InitSprite()
UseJPEGImageDecoder()
InitKeyboard()

#ScreenWidth = 1024
#ScreenHeight = 768
#Color = 16
If OpenScreen(#ScreenWidth, #ScreenHeight, #Color, "Test")
Else
 MessageRequester("Fehler", "Konnte den Bildschirm nicht öffnen", #PB_MessageRequester_Ok)
EndIf

;erstellen der Kamera
#MainCam = 0
MainCamX = 0
MainCamY = 0
MainCamWidth = 100
MainCamHeight = 100
If CreateCamera(#MainCam, MainCamX, MainCamY, MainCamWidth, MainCamHeight)
Else
 CloseScreen()
 MessageRequester("Fehler", "Konnte die Hauptkamera nicht erstellen!", #PB_MessageRequester_Ok)
EndIf

#Light_Menu = 0
Light_Color = $FFFFFF
If CreateLight(#Light, Light_Color )
Else
 MessageRequester("Fehler", "Konnte das Licht nicht erstellen", #PB_MessageRequester_Ok)
EndIf


If Add3DArchive("Texturen", #PB_3DArchive_FileSystem)
Else
 MessageRequester("Fehler", "Konnte das 3d Archiv nicht erstellen", #PB_MessageRequester_Ok)
EndIf


;Testschleife
While Beenden = 0
 StartDrawing(ScreenOutput())
 DrawText(10, 10, "TestText")
 StopDrawing()

 AmbientColor(RGB(255, 255, 0))

 ExamineKeyboard()

  If SkyBox("Sky_Menu.jpg")
  Else
   Break
   CloseScreen()
   MessageRequester("Fehler", "Konnte die Skybox nicht laden", #PB_MessageRequester_Ok)
  EndIf
 If KeyboardPushed(1)
  Break
   Beenden = 1
 EndIf

 RenderWorld()
FlipBuffers()
Wend
Was ist daran falsch, muss ich noch etwas ergänzen?

Verfasst: 17.05.2007 13:38
von Vallan
Also:
Sachen wie Skybox() usw dürfen in 3D engines normalerweise nich in einer Schleife Stehen (die werden nicht gelöscht, dh du hast ca 100 Skyboxen wenn das geht, Du musst AmbientColor auch nur aufrufen wenn du was änderst.)

Außerdem weip ich icht ob man bei Render World überhaupt noch ein flipBuffers() braucht.

PRobir das mal aus.

Verfasst: 17.05.2007 13:46
von D4uS1
ok ich hab alles so gemacht wie du es gesagt hast, aber ich habe trotzdem noch einen schwarzen Bildschirm.
PS: Ohne FlipBuffers() wird der 2d Text nicht angezeigt.

Verfasst: 17.05.2007 14:09
von Vallan
KA ich abeite schon lange nichtmehr mit Ogre ...

Verfasst: 17.05.2007 14:45
von D4uS1
ok es lag an der skybox, mit der Testskybox von PB, zu finden im PB Verzeichnis unter Examples/Source/Date/Skybox.zip, funktionierts.