http download des assets et compatibilité OS

Généralités sur la programmation 3D
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

http download des assets et compatibilité OS

Message par falsam »

Avec ce code de test, je charge les éléments d'une scene depuis un serveur. Chez moi le temps de download est immédiat. Tous le monde n'ayant pas la fibre, j'aimerais faire un test.

:arrow: Pouvez vous lancer ce code et me dire combien de temps il vous faut pour charger ces quelques éléments.

:arrow: J'aurais besoin aussi de savoir si ce code fonctionne sous Mac OS et Linux.

Code : Tout sélectionner

; Credit : https://www.musicscreen.be/musique-libre-de-droit-ambiances1.html
EnableExplicit

Global camera

Global Texture, Material, Mesh
Global Ground, Player, PlayerSpeed, CurrentAnimation.s

Global SoundLoop

Global Bottom

Global Assets.s = GetUserDirectory(#PB_Directory_Downloads)
Global Url.s = "http://falsam.com/Download/"

Global StartTime.q

; Sommaire
Declare Start()
Declare DownLoad(Url.s)
Declare Exit()


; Download des assets

StartTime = ElapsedMilliseconds()
DownLoad(Url + "sound/fluid.ogg")
DownLoad(Url + "textures/terrain/gras2_512.png")
Download(Url + "textures/sky/Evening.zip")
DownLoad(Url + "packs/Sinbad.zip") 

Debug "Délai de download " + Str(ElapsedMilliseconds() - StartTime) + " Milliseconde(s)"

Start()

Procedure Start()
  
  ; Initialisation de l'environnemet 3D
  If Not (InitEngine3D(#PB_Engine3D_DebugLog) And InitKeyboard() And InitSprite())
    MessageRequester("Information", "Impossible d'initialiser l'environnement 3D")
    Exit()
  EndIf
  
  ; Window & Screen 3D
  ExamineDesktops()
  OpenScreen(DesktopWidth(0), DesktopHeight(0), 32, "")
  KeyboardMode(#PB_Keyboard_International | #PB_Keyboard_AllowSystemKeys)
  EnableWorldPhysics(#True)  
  
  ; Localisation des elements 3D
  Add3DArchive(Assets, #PB_3DArchive_FileSystem)
  Add3DArchive(Assets + "Sinbad.zip", #PB_3DArchive_Zip)
  Add3DArchive(Assets + "Evening.zip", #PB_3DArchive_Zip)
  Parse3DScripts()
  
  EnableWorldPhysics(#True) 
  WorldGravity(-20)
  
  KeyboardMode(#PB_Keyboard_International | #PB_Keyboard_AllowSystemKeys)
  
  
  Bottom = CreateSprite(-1, ScreenWidth(), 150, #PB_Sprite_AlphaBlending)
  
  ; Light
  SkyBox("evening.jpg"); , RGB(255, 255, 255), 1, 900, 6000)
  CreateLight(#PB_Any,RGB(255, 218, 185), -10000, 1000, 10000)
  WorldShadows(#PB_Shadow_Additive)
  
  ; Camera
  camera = CreateCamera(#PB_Any, 0, 0, 100, 100)
  MoveCamera(camera, 0, 10, 40)
  CameraLookAt(camera, 0, 0, 0)
  
  SoundLoop = LoadSound3D(#PB_Any, "fluid.ogg")
  PlaySound3D(SoundLoop, #PB_Sound3D_Loop)
  
  ;- Entités
  Texture   = LoadTexture(-1, "gras2_512.png")
  Material  = CreateMaterial(-1, TextureID(Texture))
  Mesh      = CreatePlane(-1, 10000, 10000, 100, 100, 30, 30)
  Ground    = CreateEntity(-1, MeshID(Mesh), MaterialID(Material))
  CreateEntityBody(Ground, #PB_Entity_StaticBody, 1, 0, 1)
  
  Mesh = LoadMesh(#PB_Any, "sinbad.mesh")
  Player = CreateEntity(-1, MeshID(Mesh), #PB_Material_None, 0, 170, 0)
  ScaleEntity(Player, 25, 25, 25)
  CreateEntityBody(Player, #PB_Entity_ConvexHullBody, 200, 1, 500)
  EntityAngularFactor(Player, 0, 1, 0)
  
  ; Render
  Repeat 
    ExamineKeyboard() 
    
    ;-keyboard events : Distance and move
    If KeyboardPushed (#PB_Key_Up)
      PlayerSpeed = 300
      CurrentAnimation = "RunBase"
    ElseIf KeyboardPushed (#PB_Key_Down)
      PlayerSpeed = -300
      CurrentAnimation = "RunBase"
    Else
      CurrentAnimation = "IdleTop"
      PlayerSpeed = 0
    EndIf
    
    ;-keyboard events : Rotation around player and turn
    If KeyboardPushed (#PB_Key_Left)
      RotateEntity(Player, 0, 3, 0, #PB_Relative)
      CurrentAnimation = "RunBase"
    ElseIf KeyboardPushed (#PB_Key_Right)
      RotateEntity(Player, 0, -3, 0, #PB_Relative)
      CurrentAnimation = "RunBase"
    EndIf   
    
    If PlayerSpeed
      DisableEntityBody(Player, #False) ; Wake up entity (BugWare)
      MoveEntity(Player, 0, 0, PlayerSpeed, #PB_Absolute|#PB_Local)
    EndIf
    
    ;Play animation
    If EntityAnimationStatus(Player, CurrentAnimation) = #PB_EntityAnimation_Stopped
      StartEntityAnimation(Player, CurrentAnimation)
    EndIf
    
    CameraFollow(Camera, EntityID(Player), 180, EntityY(Player) + 100, 500, 1, #True)
    
    RenderWorld(60)
    FlipBuffers()
  Until KeyboardPushed(#PB_Key_Escape)
EndProcedure

Procedure DownLoad(Url.s)  
  Protected FileName.s = GetFilePart(Url)
  Protected StartTime = ElapsedMilliseconds()
  Protected Result
  
  Debug "Chargement de " + FileName + " en cours ..."
  Result =  ReceiveHTTPFile(Url, Assets + GetFilePart(Url))
  If Result
    Debug "Temps de chargement " + Str(ElapsedMilliseconds() - StartTime) + " milliseconde(s) " + #CRLF$
  Else 
    Debug url + " is not download"
    Exit()
  EndIf  
EndProcedure

Procedure Exit()
  End  
EndProcedure
:idea: Utiliser les flèches de votre clavier pour déplacer Sinbad. Esc fin de l'exécution.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: http download des assets et compatibilité OS

Message par falsam »

Chez moi
Chargement de fluid.ogg en cours ...
Temps de chargement 506 milliseconde(s)

Chargement de gras2_512.png en cours ...
Temps de chargement 164 milliseconde(s)

Chargement de Evening.zip en cours ...
Temps de chargement 136 milliseconde(s)

Chargement de Sinbad.zip en cours ...
Temps de chargement 264 milliseconde(s)

Délai de download 1070 Milliseconde(s)
Windows 10 - Fibre à terminaison cuivre (FTTLA)
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: http download des assets et compatibilité OS

Message par Micoute »

Bonjour falsam,

chez moi, par rapport à chez toi, les temps sont doublés.

Chargement de fluid.ogg en cours ...
Temps de chargement 1163 milliseconde(s)

Chargement de gras2_512.png en cours ...
Temps de chargement 363 milliseconde(s)

Chargement de Evening.zip en cours ...
Temps de chargement 213 milliseconde(s)

Chargement de Sinbad.zip en cours ...
Temps de chargement 465 milliseconde(s)

Délai de download 2204 Milliseconde(s)
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: http download des assets et compatibilité OS

Message par falsam »

Merci Micoute. L'affichage est correcte ? le son fonctionne ?

Suite a des observations sur Discord, j'ai modifié le code de manière à ce que ca fonctionne sous Linux (Du moins j’espère).
- Si Linux inutile d'utiliser OpenGL
- #PB_Window_Maximize ne fonctionnant pas correctement sous Linux, la dimension maximale de l'OpenScreen() est donnée par ExamineDesktop()
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
SPH
Messages : 4726
Inscription : mer. 09/nov./2005 9:53

Re: http download des assets et compatibilité OS

Message par SPH »

Avec la fibre 200mbps et win64 :
Chargement de fluid.ogg en cours ...
Temps de chargement 1023 milliseconde(s)

Chargement de gras2_512.png en cours ...
Temps de chargement 260 milliseconde(s)

Chargement de Evening.zip en cours ...
Temps de chargement 191 milliseconde(s)

Chargement de Sinbad.zip en cours ...
Temps de chargement 409 milliseconde(s)

Délai de download 1884 Milliseconde(s)
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: http download des assets et compatibilité OS

Message par falsam »

@SPH. Merci pour ton test. L'affichage et le son fonctionnent ?
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
SPH
Messages : 4726
Inscription : mer. 09/nov./2005 9:53

Re: http download des assets et compatibilité OS

Message par SPH »

falsam a écrit :@SPH. Merci pour ton test. L'affichage et le son fonctionnent ?
Tout fonctionne 8)
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: http download des assets et compatibilité OS

Message par GallyHC »

pour ma part

Code : Tout sélectionner

Chargement de fluid.ogg en cours ...
Temps de chargement 595 milliseconde(s) 

Chargement de gras2_512.png en cours ...
Temps de chargement 264 milliseconde(s) 

Chargement de Evening.zip en cours ...
Temps de chargement 183 milliseconde(s) 

Chargement de Sinbad.zip en cours ...
Temps de chargement 318 milliseconde(s) 

Délai de download 1360 Milliseconde(s)
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: http download des assets et compatibilité OS

Message par Patrick88 »

windows 10 - 4g SFR - 23 Mb/s download

Chargement de fluid.ogg en cours ...
Temps de chargement 2341 milliseconde(s)

Chargement de gras2_512.png en cours ...
Temps de chargement 671 milliseconde(s)

Chargement de Evening.zip en cours ...
Temps de chargement 344 milliseconde(s)

Chargement de Sinbad.zip en cours ...
Temps de chargement 981 milliseconde(s)

Délai de download 4337 Milliseconde(s)

Pat
Avatar de l’utilisateur
Mindphazer
Messages : 639
Inscription : mer. 24/août/2005 10:42

Re: http download des assets et compatibilité OS

Message par Mindphazer »

Code : Tout sélectionner

Chargement de fluid.ogg en cours ...
Temps de chargement 1863 milliseconde(s) 

Chargement de gras2_512.png en cours ...
Temps de chargement 264 milliseconde(s) 

Chargement de Evening.zip en cours ...
Temps de chargement 156 milliseconde(s) 

Chargement de Sinbad.zip en cours ...
Temps de chargement 505 milliseconde(s) 

Délai de download 2788 Milliseconde(s)
Par contre, sur Mac OS, le chargement du son ne fonctionne pas (Loadsound3D), mais c'est pas ta faute.
J'ai un message d'erreur furtif pour un composant obsolète, je pense que PB utilise une librairie obsolète sur la dernière version de MacOS.

En commentant les 2 lignes, ça fonctionne impecc
Bureau : Win10 64bits
Maison : Macbook Pro M1 14" SSD 512 Go / Ram 16 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: http download des assets et compatibilité OS

Message par Ollivier »

Etant dépourvu de ce type de connexion jusqu'à présent, j'ai un délai de téléchargement infini.
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: http download des assets et compatibilité OS

Message par Patrick88 »

Mindphazer a écrit :le chargement du son ne fonctionne pas (Loadsound3D), mais c'est pas ta faute.
pareil sur MacOS 10.13.6 High Sierra

Pat
Avatar de l’utilisateur
Guillot
Messages : 529
Inscription : jeu. 25/juin/2015 16:18

Re: http download des assets et compatibilité OS

Message par Guillot »

Chargement de fluid.ogg en cours ...
Temps de chargement 3935 milliseconde(s)

Chargement de gras2_512.png en cours ...
Temps de chargement 452 milliseconde(s)

Chargement de Evening.zip en cours ...
Temps de chargement 249 milliseconde(s)

Chargement de Sinbad.zip en cours ...
Temps de chargement 1098 milliseconde(s)

Délai de download 5734 Milliseconde(s)



tout marche
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: http download des assets et compatibilité OS

Message par Micoute »

Oui falsam, tout fonctionne.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: http download des assets et compatibilité OS

Message par falsam »

Hello je relance ce sujet. Pouvez vous tester à nouveau le code du premier message avec PB 6.0 uniquement et poster vos temps de chargements des différents éléments.

Voici les miens.
Chargement de fluid.ogg en cours ...
Temps de chargement 516 milliseconde(s)

Chargement de gras2_512.png en cours ...
Temps de chargement 261 milliseconde(s)

Chargement de Evening.zip en cours ...
Temps de chargement 162 milliseconde(s)

Chargement de Sinbad.zip en cours ...
Temps de chargement 318 milliseconde(s)

Délai de download 1257 Milliseconde(s)
Pas de Delta Time dans ce code. On ne crie pas :mrgreen:
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre