PureBasic

Forums PureBasic
Nous sommes le Mar 17/Sep/2019 17:36

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
 Sujet du message: L'option #PB_Entity_PlaneBody est static ?
MessagePosté: Mar 28/Mar/2017 14:43 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6849
Localisation: IDF (Yvelines)
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 PureBasic
Code:
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
Sous 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.

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: L'option #PB_Entity_PlaneBody est static ?
MessagePosté: Mar 28/Mar/2017 16:27 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 11/Fév/2005 17:34
Messages: 4223
Localisation: Arras, France
Avec le débogueur, on passe de 0.004 en plane à 1.5 en static. A voir sans lui.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: L'option #PB_Entity_PlaneBody est static ?
MessagePosté: Mer 29/Mar/2017 13:34 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 25/Juin/2015 16:18
Messages: 267
ton plan fait 200*200*2=80 000 triangles
avec staticbody, la physique va gérer tous ces triangles (ils ne sont pas sensés etre 'coplanaire')
avec PlaneBody, il va ce contenter de 2 triangles (a priori)

de plus, depuis pb5.50, la physique est devenu tres lente (environ 4x)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: L'option #PB_Entity_PlaneBody est static ?
MessagePosté: Mer 29/Mar/2017 13:46 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6849
Localisation: IDF (Yvelines)
Donc dans l'exemple que je donne il suffit que je remplace
Code:
CreatePlane(0, 1000, 1000, 200, 200, 30, 30)
par
Code:
CreatePlane(0, 1000, 1000, 1, 1, 30, 30)
Et le temps de génération devient insignifiant pour un visuel identique.

Merci d'avoir mis en évidence cette ligne de code.

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: L'option #PB_Entity_PlaneBody est static ?
MessagePosté: Mer 29/Mar/2017 14:24 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8750
Je passe de 1.1xxxx à 0.0 dans le débug avec la modif

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: L'option #PB_Entity_PlaneBody est static ?
MessagePosté: Mer 29/Mar/2017 22:52 
Hors ligne

Inscription: Mer 21/Jan/2004 17:48
Messages: 5162
falsam a écrit:
Contrairement à l'option #PB_Entity_StaticBody, La documentation n'indique pas si #PB_Entity_PlaneBody donne un body static.
.


Oui on utilise btStaticPlaneShape. C'est pratique pour éviter que les objets sortent du jeu. Voir la démo vehicle.pb, j'ai défini un cube avec des côtés infinis, la voiture ne peut pas sortir .

Citation:
The btStaticPlaneShape simulates an infinite non-moving (static) collision plane.

_________________
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye