problème pour Ogre3d

Généralités sur la programmation 3D
Avatar de l’utilisateur
threedslider
Messages : 455
Inscription : dim. 01/juil./2018 22:38

problème pour Ogre3d

Message par threedslider »

Hello,

Je voulais réduire au minimum pour comprendre du moteur Ogre 3D, mais j'ai un problème il se lance pas correctement et n'affiche pas non plus le mesh Sinbad, comment remédier cela, merci ?

Voici le code :

Code : Tout sélectionner

IncludeFile #PB_Compiler_Home + "examples/3d/Screen3DRequester.pb"

InitSprite()
InitKeyboard()

If InitEngine3D()
  
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures"        , #PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Models"          , #PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Packs/desert.zip", #PB_3DArchive_Zip)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Packs/Sinbad.zip", #PB_3DArchive_Zip)
  Parse3DScripts()
  
  If Screen3DRequester()
    
     WorldShadows(#PB_Shadow_Modulative, -1, RGB(127, 127, 127))
        
    ;-Ground    
    DirtMaterial = CreateMaterial(#PB_Any, LoadTexture(#PB_Any, "Dirt.jpg"))
    PlaneMesh = CreatePlane(#PB_Any, 500, 500, 1, 1, 25, 25)
    Ground = CreateEntity(#PB_Any,MeshID(PlaneMesh),MaterialID(DirtMaterial))
    
    EntityRenderMode(Ground, 0)
        
    ;- Sinbad    
    SinbadMesh = LoadMesh(#PB_Any, "Sinbad.mesh")
    CreateEntity(#PB_Any,MeshID(SinbadMesh),#PB_Material_None)  
        
    ;- Light
    CreateLight(#PB_Any, RGB(255, 255, 255), -10, 40, 20, #PB_Light_Point)
    AmbientColor(RGB(255*0.3, 255*0.3, 255*0.3))
    
    ;- Skybox
    Fog(RGB(255,255,255*0.8), 1, 0, 25000)
    SkyBox("desert07.jpg")
    
    ;- Camera    
    Camera = CreateCamera(#PB_Any, 0, 0, 100, 100)
    CameraLookAt(Camera,  EntityX(Plane), EntityY(Plane) + 40, EntityZ(Plane))  
        
    Repeat 
      Screen3DEvents()
      FlipBuffers()
      
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
    
  EndIf
Else
  MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf

End
Avatar de l’utilisateur
threedslider
Messages : 455
Inscription : dim. 01/juil./2018 22:38

Re: problème pour Ogre3d

Message par threedslider »

OK... Bon ben grâce au debugger m'a permis de résoudre ces problèmes donc j'ai modifié un peu il marche maintenant :oops: (Désolé !)

Voici la correction du code :

Code : Tout sélectionner

IncludeFile #PB_Compiler_Home + "examples/3d/Screen3DRequester.pb"

If InitEngine3D()
    
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures"        , #PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Models"          , #PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Packs/desert.zip", #PB_3DArchive_Zip)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Packs/Sinbad.zip", #PB_3DArchive_Zip)
  Parse3DScripts()
  
  InitSprite()
  InitKeyboard()
  
  If Screen3DRequester()
    
     WorldShadows(#PB_Shadow_Modulative, -1, RGB(127, 127, 127))
        
    ;-Ground    
    DirtMaterial = CreateMaterial(#PB_Any, TextureID(LoadTexture(#PB_Any, "Dirt.jpg")))
    PlaneMesh = CreatePlane(#PB_Any, 500, 500, 1, 1, 25, 25)
    Ground = CreateEntity(#PB_Any,MeshID(PlaneMesh),MaterialID(DirtMaterial))
    
    EntityRenderMode(Ground, 0)
        
    ;- Sinbad    
    SinbadMesh = LoadMesh(#PB_Any, "Sinbad.mesh")
    Entity = CreateEntity(#PB_Any,MeshID(SinbadMesh),#PB_Material_None)  
    MoveEntity(Entity, 0, 5.1, 0, #PB_Absolute)
    
    ;- Skybox
    SkyBox("desert07.jpg")
    
    ;- Camera    
    Camera = CreateCamera(#PB_Any, 0, 0, 100, 100)
    MoveCamera(Camera, 0, 10, 30, #PB_Absolute)
    CameraLookAt(Camera,  0, 0, 0)  
    
     ;- Light
    CreateLight(#PB_Any, RGB(255, 255, 255), -10, 40, 20)
    AmbientColor(RGB(255*0.3, 255*0.3, 255*0.3))
        
    Repeat 
      Screen3DEvents()
      RenderWorld()
      FlipBuffers()
      
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
    
  EndIf
 Else
  MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf

End
Du coup j'avais mal codé mais là j'ai compris :lol:
Répondre