L'option #PB_Entity_PlaneBody est static ?
Publié : mar. 28/mars/2017 14:43
Avec les précédentes versions de Purebasic j'utilisais l'option #PB_Entity_StaticBody pour créer une entité plane static.
Avec la version 5.60 de PureBasic je trouve cette option lente.
Un test avec ce code qui affiche un plan et un cube qui chute sur ce plan. Les textures proviennent des exemple de PureBasicSous Windows10 Intel i3 il me faut presque 3 secondes pour générer le sol.
Si maintenant je chosis l'option #PB_Entity_PlaneBody, le temps de génération est insignifiant.
■ Contrairement à l'option #PB_Entity_StaticBody, La documentation n'indique pas si #PB_Entity_PlaneBody donne un body static.
Avec mon code en tout cas c'est le cas.
J'aimerais que d'autres utilisateurs testent ce code.
Peut être que Fred ou Comtois pourront apporter une réponse. Merci.
Avec la version 5.60 de PureBasic je trouve cette option lente.
Un test avec ce code qui affiche un plan et un cube qui chute sur ce plan. Les textures proviennent des exemple de PureBasic
Code : Tout sélectionner
InitEngine3D()
InitSprite()
InitKeyboard()
OpenWindow(0, 0, 0, 1024, 768, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0), WindowHeight(0))
Add3DArchive(#PB_Compiler_Home + "Examples/3d/Data/Textures", #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "Examples/3D/Data/Packs/desert.zip", #PB_3DArchive_Zip)
;Textures
CreateMaterial(0, TextureID(LoadTexture(-1, "Dirt.jpg")))
CreateMaterial(1, TextureID(LoadTexture(-1, "Caisse.png")))
CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, -50, 30, -100, #PB_Absolute | #PB_Local)
CameraLookAt(0, 0, 0, 0)
;Ciel
SkyBox("desert07.jpg")
;Lumiere et ombre
CreateLight(0, RGB(255, 255, 255), -100, 500, 100)
WorldShadows(#PB_Shadow_Additive)
;Ground
StartTime.f = ElapsedMilliseconds()
CreatePlane(0, 1000, 1000, 200, 200, 30, 30)
CreateEntity(0, MeshID(0), MaterialID(0))
CreateEntityBody(0, #PB_Entity_StaticBody)
;CreateEntityBody(0, #PB_Entity_PlaneBody)
Debug (ElapsedMilliseconds() - StartTime)/1000
;Box
CreateCube(1, 20)
CreateEntity(1, MeshID(1), MaterialID(1), 0, 30, 0)
CreateEntityBody(1, #PB_Entity_BoxBody, 1, 0.5, 0.5)
Repeat
If ExamineKeyboard()
If KeyboardReleased(#PB_Key_Escape)
Break
EndIf
EndIf
RenderWorld(50)
FlipBuffers()
Until WaitWindowEvent(1) = #PB_Event_CloseWindow
Si maintenant je chosis l'option #PB_Entity_PlaneBody, le temps de génération est insignifiant.
■ Contrairement à l'option #PB_Entity_StaticBody, La documentation n'indique pas si #PB_Entity_PlaneBody donne un body static.
Avec mon code en tout cas c'est le cas.
J'aimerais que d'autres utilisateurs testent ce code.
Peut être que Fred ou Comtois pourront apporter une réponse. Merci.