Page 1 sur 4

Erreur pour chargement de mesh

Publié : dim. 05/déc./2004 23:07
par vedder
j'essaie de charger un fichier mesh grace a ce code source :

Code : Tout sélectionner

; 
; ------------------------------------------------------------ 
; 
;DUPORT Eric 
; 
;    (c) 2004 - Misleading lands 
; 
; ------------------------------------------------------------ 
; 

IncludeFile "Screen3DRequester.pb" 

DefType.f KeyX, KeyY, MouseX, MouseY 
  
If InitEngine3D() 

  Add3DArchive("Data\" , #PB_3DArchive_FileSystem) 
  Add3DArchive("Data\camp.zip", #PB_3DArchive_Zip) 
  
  InitSprite() 
  InitKeyboard() 
  InitMouse() 
  
  If Screen3DRequester() 
    
    LoadMesh(0,"camp.mesh") 
        
    CreateLight(0, RGB(0,0,0)) 
          
    CreateCamera(0, 0, 0, 100, 100) 
    CameraLocate(0,0,0,100) 
      
    Repeat 
      Screen3DEvents() 
            
      If ExamineKeyboard() 
      
        If KeyboardPushed(#PB_Key_Left) 
          KeyX = -1 
        ElseIf KeyboardPushed(#PB_Key_Right) 
          KeyX = 1 
        Else 
          KeyX = 0 
        EndIf 
        
        If KeyboardPushed(#PB_Key_Up) 
          KeyY = -1 
        ElseIf KeyboardPushed(#PB_Key_Down) 
          KeyY = 1 
        Else 
          KeyY = 0 
        EndIf 
        
        If KeyboardPushed(#PB_Key_PageUp) 
          RollZ = 3 
        Else 
          RollZ = 0 
        EndIf 
        
        If KeyboardPushed(#PB_Key_Add) 
          Frame.f+0.005 
        EndIf 
        
      EndIf 
      
      If ExamineMouse() 
        MouseX = -MouseDeltaX()/10 
        MouseY = -MouseDeltaY()/10 
      EndIf 
      
      
      RotateCamera(0, MouseX, MouseY, RollZ) 
      MoveCamera  (0, KeyX, 0, KeyY) 
      
      RenderWorld() 
      
      FlipBuffers() 
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1 
  EndIf 
    
Else 
  MessageRequester("Error", "The 3D Engine can't be initialized",0) 
EndIf 
  
End 
; ExecutableFormat=Windows 
; DisableDebugger 
; EOF 
mais a la compilation et au lancement je n'ai kun ecran noir , pourquoi ? merci d'avance

Publié : lun. 06/déc./2004 12:33
par comtois
si tu es d'accord pour mettre à disposition quelque part ton fichier , je pourrai faire un essai de mon côté, parce que comme ça ,c'est difficile de te répondre .

Publié : lun. 06/déc./2004 19:54
par vedder

Publié : lun. 06/déc./2004 20:06
par comtois
J'ai ajouté un test , et ton fichier ne se charge pas .

Code : Tout sélectionner

    If LoadMesh(0,"camp.mesh") =0
    Debug "le fichier n'est pas chargé"
    EndIf
Alors j'ai ouvert le fichier , et j'ai pu lire ça
[MeshSerializer_v1.20]

j'imagine que tu as utilisé les convertisseurs sur le site d'ogre ?

pour l'instant purebasic utilise encore les meshes de version 1.0 ou 1.1 .

Tu trouveras ici quelques convertisseurs compatibles :

http://purebasic.hmt-forum.com/viewtopic.php?t=1205

notamment ce pack , ce sont les anciens convertisseurs qu'on trouvait sur le site d'ogre :

http://perso.wanadoo.fr/comtois/sources ... 0.11.1.zip

ou alors tu attends l'année prochaine que Fred fasse la mise à jour de la 3D :)

Publié : mer. 08/déc./2004 21:56
par vedder
non ca ira j'aurais pas la patience d'attendre , en tt cas merci pour ton aide , je reconvertit et je te dis si ca marche :wink:

Publié : mer. 08/déc./2004 22:14
par garzul
Vedder : Tu ma envoyer un mail ? ( Je peux avoir ton adresse msn alors ? ) .

Publié : jeu. 16/déc./2004 14:11
par vedder
euh garzul je t'ai pas envoye de mail non

Publié : ven. 17/déc./2004 11:11
par Pacificator
je sais pas quel logiciel de modelisation t'utilise, mais avec l'exporteur ogre 1.1, tu obtiens d'abord un fichier .Xml, et ensuite il faut utiliser Xmlconverter pour enfin obtenir ton .mesh.
pas tres pratique, c vrai...

Publié : ven. 17/déc./2004 13:20
par vedder
jutilise 3dsmax 5 et 6 je sais que c'est comme ca et pour le moment je tente de convertir en mesh (pas facile )

Publié : ven. 17/déc./2004 19:33
par Pacificator
Oui, j'utilise aussi 3dsmax5, et j'avais aussi eu du mal a comprendre comment convertir en mesh...
Il faut que tu ouvre une invite de commande, (dans accessoire, ou executer>Cmd.exe), puis tu ouvre xmlconverter.exe depuis ms-dos, et tu met le chemin de ta mesh...
regarde le read me, je sais plus exactement ce qu'il faut mettre...

edit

To do this, you need to use the XMLConverter tool, provided in the Ogre source tree under ogrenew/Tools/XMLConverter, or available as a precompiled binary if required. Simply run:

XMLConverter <xml filename>

Publié : sam. 18/déc./2004 17:06
par vedder
j'ai convertit un fichier max en mesh avec ce convertisseur mais ca ne marche toujours pas , j'ai juste une fenetre noire
est ce qu'on mon code est exact ??

Code : Tout sélectionner

IncludeFile "Screen3DRequester.pb"

DefType.f KeyX, KeyY, MouseX, MouseY
  
If InitEngine3D()

  Add3DArchive("Data\" , #PB_3DArchive_FileSystem)
  Add3DArchive("Data\camp.zip", #PB_3DArchive_Zip)
  Add3DArchive("Data\savant.zip", #PB_3DArchive_Zip)

  
  InitSprite()
  InitKeyboard()
  InitMouse()
  
  If Screen3DRequester()
    
    LoadMesh(0,"savant2.max.mesh")
        
    ;CreateLight(0, RGB(0,0,0))
          
    CreateCamera(0, 0, 0, 100, 100)
    CameraLocate(0,0,0,100)
      
    Repeat
      Screen3DEvents()
            
      If ExamineKeyboard()
      
        If KeyboardPushed(#PB_Key_Left)
          KeyX = -1
        ElseIf KeyboardPushed(#PB_Key_Right)
          KeyX = 1
        Else
          KeyX = 0
        EndIf
        
        If KeyboardPushed(#PB_Key_Up)
          KeyY = -1
        ElseIf KeyboardPushed(#PB_Key_Down)
          KeyY = 1
        Else
          KeyY = 0
        EndIf
        
        If KeyboardPushed(#PB_Key_PageUp)
          RollZ = 3
        Else
          RollZ = 0
        EndIf
        
        If KeyboardPushed(#PB_Key_Add)
          Frame.f+0.005
        EndIf
        
      EndIf
      
      If ExamineMouse()
        MouseX = -MouseDeltaX()/10 
        MouseY = -MouseDeltaY()/10
      EndIf
      
     
      RotateCamera(0, MouseX, MouseY, RollZ)
      MoveCamera  (0, KeyX, 0, KeyY)
      
      RenderWorld()
      
      FlipBuffers()
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
  EndIf
    
Else
  MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
  
End
; ExecutableFormat=Windows
; DisableDebugger
; EOF

Publié : sam. 18/déc./2004 18:26
par comtois
même remarque , ajoute un test pour vérifier si ton fichier se charge bien !

Code : Tout sélectionner

If LoadMesh(0,"savant2.max.mesh")=0 
    Debug "le fichier n'est pas chargé" 
EndIf

Publié : dim. 19/déc./2004 12:28
par vedder

Code : Tout sélectionner

If LoadMesh(0,"savant2.max.mesh")= 0
      Debug "le fichier n'est pas chargé"
     EndIf
quand je met ca , il ne m'affiche rien alors j'ai fait autre chose :

Code : Tout sélectionner

If LoadMesh(0,"savant2.max.mesh")= 1
          Debug "le fichier est  bien  chargé"
     EndIf
et la il ne m'affiche rien non plus :?

Publié : dim. 19/déc./2004 13:02
par comtois
tu utilises quoi comme éditeur ? si tu utilises Japbe , il faut lancer ton programme avec la touche [F6]
en clair , il faut que tu es le débugueur activé .
Si tu lances ton code avec l'éditeur de purebasic , vérifie que le débuggeur est bien activé( dans le menu Compilateur de l'éditeur ).
si ton débuggeur est actif , et que tu ne vois rien c'est que tu ne passes pas par cette ligne, donc regarde ce qui t'en empêche .

par exemple vérifie que tu passes bien ce test

Code : Tout sélectionner

If Screen3DRequester() 

sinon si tu veux mettre ton fichier quelque part ,je peux faire un test .

Publié : dim. 19/déc./2004 16:08
par Pacificator
If LoadMesh(0,"savant2.max.mesh")= 0
Debug "le fichier n'est pas chargé"
EndIf
S'il ne t'a rien affiché, c'est que le fichier est chargé.
Le prob est qu'elle est chargée, n'est pas visible.
Faudrait juste que tu crée un materiau que t'associe a la mesh, pour qu'elle soit visible.

exemple:

LoadMesh (0, "Robot.mesh")
CreateMaterial(1, LoadTexture(2, "r2skin.jpg"))
CreateEntity(0, MeshID(0), MaterialID(1), 300, 0, 300)