Milkshape-> Ogre3D->Purebasic

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
kayfr72
Beiträge: 130
Registriert: 12.09.2004 19:13
Wohnort: Lehrberg

Milkshape-> Ogre3D->Purebasic

Beitrag von kayfr72 »

Hallo

Wollte mal fragen ob schon einer mal mit PB4Beta Milkshape-Modelle mit dem OgreExporter in Purebasic zur Animation gebracht hat. Alles bei mit funktioniert. Modell steht,dieTexturen stehen. Nur die Animation wenn ich diese über den Exporter wandle und in Purebasic einfüge, bekomme ich eine Fehlermeldung bei RenderWorld mit Invalid Memory Access . Mach ich was falsch?

Code: Alles auswählen

IncludeFile "Screen3DRequester.pb"

Define.f KeyX, KeyY, MouseX, MouseY

#RobotMesh    = 0
#RobotTexture = 0
#Robot        = 0
  
If InitEngine3D()

  Add3DArchive("Data2\"          , #PB_3DArchive_FileSystem)
  Add3DArchive("Data2\Skybox.zip", #PB_3DArchive_Zip)
  
  InitSprite()
  InitKeyboard()
  InitMouse()
  
  If Screen3DRequester()
    
    LoadMesh   (#RobotMesh   , "Figur.mesh")
    ;LoadTexture(#RobotTexture, "panzer.jpg")
    Parse3DScripts()
    ;CreateMaterial(0, TextureID(#RobotTexture))
    
    CreateEntity(#Robot, MeshID(#RobotMesh), #PB_Material_None)
    ;EntityMaterial(#Robot, MaterialID(0))
    
    ;AnimateEntity(#Robot, "Walk")
    
    ;DisableMaterialLighting(0, 1)
    
    ;MaterialAmbientColor(0, RGB(100, 100, 100))
    ;MaterialSpecularColor(0, RGB(255, 255, 255))
    ;ScrollMaterial(0, 0.15, 0, 1)
        
    CreateLight(0, RGB(255,255,255), 100.0, 100.0, 100.0)
    LightSpecularColor(0, RGB(255, 255, 255))
    
     ;SkyBox("Stevecube.jpg")
   
    CreateCamera(0, 0, 0, 100, 100)
    CameraLocate(0,0,0,100)
     CameraBackColor(0, RGB(0, 0, 255))
      
    Repeat
      Screen3DEvents()
      
      ClearScreen(RGB(0, 0, 255))
            
      If ExamineKeyboard()
      
        If KeyboardPushed(#PB_Key_Left)
          KeyX = KeyX-1
        ElseIf KeyboardPushed(#PB_Key_Right)
          KeyX = 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
      
      
      
      RotateEntity(#Robot, KeyX, 0, 0)
      
      RotateCamera(0, MouseX, MouseY, RollZ)
      MoveCamera  (0, 0, 0, KeyY)
      
      RenderWorld()
      Screen3DStats()
      FlipBuffers()
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
  EndIf
    
Else
  MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
  
End
Verwende Win98SE,Ati Radeon 9200
Benutzeravatar
kayfr72
Beiträge: 130
Registriert: 12.09.2004 19:13
Wohnort: Lehrberg

Beitrag von kayfr72 »

Kann mir da keiner helfen?
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

kayfr72 hat geschrieben:Kann mir da keiner helfen?
ich glaube mich erinnern zu können, dass es da ein generelles Problem mit
RenderWorld gibt. Ich kann Dir aber leider den entsprechenden Thread, der
vor nicht allzulanger Zeit erstellt wurde, nicht heraussuchen, weil die
Suchfunktion dieses Boards mal wieder kläglich versagt. Klick' Dich mal
durch die Threads des entsprechenden Forums.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
kayfr72
Beiträge: 130
Registriert: 12.09.2004 19:13
Wohnort: Lehrberg

Beitrag von kayfr72 »

Hatte aber schon mal eine Animation mir gebastelt.Ist schon länger her. War eine ältere Version von Milkshape,OgreKonverter und Purebasic. Das einzigste was damals fehlte war die die unterschiedliche Textur. Außerdem der Robo in der Example läuft ja auch. Man bräuchte einen Exporter von Mesh zu Milkshape! Gib's sowas überhaupt. Und welches Programm hat den Mesh vom Robot erstellt? Kann man die Mesh irgendwie editieren das das funkt?
Benutzeravatar
kayfr72
Beiträge: 130
Registriert: 12.09.2004 19:13
Wohnort: Lehrberg

Beitrag von kayfr72 »

Fehler gefunden. Muß in Milkshape alle Körper einen Animationspunkt zuweisen. Dann funkioniert die Animation. Hab gelesen man kann die Animation nicht mehr stoppen? Oder gibt es da manchmal einen Api-Befehl der das schafft? Ein Problem ist gelöst, da taucht das nächste auf :roll: Fred: Sowas müßte noch in die 4.0 rein. Das geht so nicht. Erst ne Sache starten und kein Stoppen mehr. :lol:
Gesperrt