Re: Problème avec la 3D
Publié : mer. 21/juil./2010 6:36
Bon je laisse tomber les problèmes de 3D et je vais mettre PB un peut de coté pour le moment. Mon choix ce porte vers le langage python, histoire de voir un peut autre choses. @+
m'est avis , qu'il ne sait meme pas de quoi tu parle !!G-Rom a écrit :La vache, tu lis mes post ??![]()
AS TU MIS LE SUBSYSTEM OPENGL ???![]()
même si tu n'utilises plus purebasic , tu pourrais répondre pour que l'on comprenne l'erreur...
MetalOS a écrit :Vous devenez grave là![]()
. Non je n'est pas employé le système opengl enfin je pensais que sous linux il était utilisé automatiquement à la compilation. Il faut le déclarer ?
PS: Autrement, oui je suis nul et fier de l'être.
C'est vrai que les exemples ne marche pas au premier abord , mais rien de compliqué , tu as juste les chemins à mettre sous forme unix , et le subsystem à rajouté , on ne le déclare pas, c'est une librairie , pas une variable ou une fonction.En même temps je test les exemples donnés avec PB, alors si il sont faut dès le départ... et que OpenGL n'est pas déclaré. J'ai l'impression que fred a laissé les exemple Windows sans les adapter à Linux.
Code : Tout sélectionner
Global Wire.a = 0
Procedure Bouger()
Define.f KeyX, KeyY, MouseX, MouseY
If KeyboardPushed(#PB_Key_A)
KeyX = -1
ElseIf KeyboardPushed(#PB_Key_D)
KeyX = 1
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_W)
KeyY = -1
ElseIf KeyboardPushed(#PB_Key_S)
KeyY = 1
Else
KeyY = 0
EndIf
MouseX = -MouseDeltaX()
MouseY = -MouseDeltaY()
RotateCamera(0, MouseY, MouseX, 0, #PB_Relative)
MoveCamera(0, KeyX, 0, KeyY)
EndProcedure
Procedure Wireframe()
If KeyboardReleased(#PB_Key_Z)
If Wire = 0
CameraRenderMode(0, #PB_Camera_Textured)
Wire = 1 - Wire
ElseIf Wire = 1
CameraRenderMode(0, #PB_Camera_Wireframe)
Wire = 1 - Wire
EndIf
EndIf
EndProcedure
If InitEngine3D()
InitSprite()
InitMouse()
InitKeyboard()
OpenScreen(1440,900,32,"Essai 1",#PB_Screen_WaitSynchronization,60)
;OpenWindow(1,0,0,800,600,"Essai 1",#PB_Window_ScreenCentered)
;OpenWindowedScreen(WindowID(1),0,0,800,600,1,0,0,#PB_Screen_WaitSynchronization)
Add3DArchive("Data", #PB_3DArchive_FileSystem)
;Add3DArchive("Data/Model3D", #PB_3DArchive_FileSystem)
;Add3DArchive("Data/Texture", #PB_3DArchive_FileSystem)
c.i = 0
For a = 0 To 20
For b = 0 To 20
If LoadMesh(0,"Model3D/robot.mesh")
LoadTexture(0,"Texture/r2skin.jpg")
CreateMaterial(0,TextureID(0))
CreateEntity(c,MeshID(0),MaterialID(0))
EntityMaterial(c,MaterialID(0))
EntityLocate(c,b * 40,0,a * 50)
AnimateEntity(c,"Walk")
FreeTexture(0)
FreeMesh(0)
c = c +1
Else
MessageRequester("Model3D introuvable.","Robot.mesh n'a pas put etre chargé.")
EndIf
Next
Next
CreateLight(0, RGB(255,255,255))
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0,0,0,100)
Repeat
ExamineMouse()
ExamineKeyboard()
ClearScreen(RGB(0,0,0))
Bouger()
Wireframe()
RenderWorld()
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(10,10,Str(CountRenderedTriangles()),RGB(255,255,255))
DrawText(10,30,Str(Engine3DFrameRate(#PB_Engine3D_Current)),RGB(255,255,255))
StopDrawing()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
EndIf
n'est pas égal à :Model3D/robot.mesh
Model3D/Robot.mesh