J'ai cherché comment chargé un fichier *.material et j'ai cru que cette fonction existée.
La réponse est non elle n'existe pas. Alors comment faire.
J'ai répondu à ta question.
tous les .material sont chargé ( les chemins seulement ) via Add3dArchive()
puis parse3dScript() te charges tout les script d'ogre.
Dans ton code :
Le material "Test" n'existe pas.
il n'est pas défini dans le .material que tu fournis
seul Wall02 , Wall06 , Wall12 & Wood01 sont valides.
ne sert à rien dans ce cas.
ton code "corrigé" :
Code : Tout sélectionner
Enumeration
#Camera
#Light
#Test_Entity
#Test_Mesh
#Test_Mat
EndEnumeration
Global RotX.f, RotY.f, RotZ.f
If InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
Add3DArchive("./data", #PB_3DArchive_FileSystem)
Parse3DScripts()
OpenWindow(0,0,0,900,700,"3d",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0),0,0,900,700,0,0,0)
;Camera
CreateCamera(#Camera, 0, 0, 900, 700)
CameraLocate(#Camera, -150, 150, 550)
;Fog & Light
Fog(#Blue, 1, 200, 7000)
CreateLight(#Light, RGB(255,255,255), -150, 150, 550)
;Mesh & material
LoadMesh(#Test_Mesh, "test.mesh")
CreateEntity(#Test_Entity, MeshID(#Test_Mesh), #PB_Material_None)
EntityLocate(#Test_Entity, 0, 0, 0)
Repeat
Delay(10)
If ExamineMouse()
RotY = -MouseDeltaX()/10
RotX = -MouseDeltaY()/10
EndIf
RotateCamera(#Camera, RotX, RotY, RotZ, #PB_Relative)
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
EndIf
RenderWorld()
FlipBuffers()
ForEver
Else
MessageRequester("Information", "Impossible d'initialiser le moteur 3D")
EndIf
ps: utilise des float pour les angles.
@++