Essai Particules St Valentin ^^

Généralités sur la programmation 3D
Avatar de l’utilisateur
Ar-S
Messages : 9476
Inscription : dim. 09/oct./2005 16:51
Contact :

Essai Particules St Valentin ^^

Message par Ar-S »

Ma 1ère tentative de création et animation de particules.
PB 4.60 minimum

Code à copier dans : \Examples\3D


J'ai testé le code en fullscreen 1680 x 1050 / 32 / 60

Code : Tout sélectionner

  ; ------------------------------------------------------------
  ;
  ;  Test de création de Particlules PB 4.60 by Ar-S
  ;
  ;  Pour la St valentin.
  ;
  ; ------------------------------------------------------------

  
  IncludeFile "Screen3DRequester.pb"
   
  Define.f KeyX, KeyY, MouseX, MouseY
  
  If InitEngine3D()
    
    Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
    
    InitSprite()
    InitKeyboard()
    InitMouse()
    
    If Screen3DRequester()
      
      LoadTexture(0, "flareCoeuruniRedt.png")
      
      CreateMaterial(0, TextureID(0))
      DisableMaterialLighting(0, 1)
      MaterialBlendingMode   (0, #PB_Material_AlphaBlend)
      
      
      CreateParticleEmitter(0, 5, 5, 1, 0)
      ParticleMaterial    (0, MaterialID(0))
      ParticleTimeToLive  (0, 10, 10)
      ParticleEmissionRate(0, 25)
      ParticleSize        (0, 5, 5)
      ParticleColorRange  (0, RGB(200,0,0), RGB(255,0,0))
      MoveParticleEmitter(0, -50, 0, 0)
      ParticleVelocity(0, 135, 135)
      
      CreateParticleEmitter(1, 15, 15, 1, 0)
      ParticleMaterial    (1, MaterialID(0))
      ParticleTimeToLive  (1, 10, 10)
      ParticleEmissionRate(1, 13)
      ParticleSize        (1, 15, 15)
      ParticleColorRange  (1, RGB(200,0,0), RGB(255,0,0))
      MoveParticleEmitter(1, -50, 0, 0)
      ParticleVelocity(1, 150, 150)
      
      
      CreateCamera(0, 0, 0, 100, 100)
      
      CamX = -150
      Droite = 1
      gauche = -1
      
      CameraLocate(0,-50,60,150)
      
      Repeat
        Screen3DEvents()
        
        RenderWorld()
        
        If CamX <= -150
          Direction = Droite
        ElseIf CamX > 20
          Direction = gauche
          
        EndIf
        
        CamX + Direction
        CameraLocate(0,CamX,60,150)
        
        Screen3DStats()
        
        FlipBuffers()
      Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
    EndIf
    
  Else
    MessageRequester("Error", "The 3D Engine can't be initialized",0)
  EndIf
  
  End
  
L'image : flareCoeuruniRedT.png
à copier dans Examples\3D\Data\Textures
Image

Ce qui me rebute :
- C'est dommage de ne pas pouvoir changer la taille de chaque particules tout comme on peut modifier la vélocité.
- je n'ai encore bien cerné le fonctionnement de positionnement de la caméra et des particules (absolue, relatif..)

Ce qui m'hallucine
- La fluidité du rendu. impressionnant

Du coup, je n'arrive pas à ralentir la "propulsion" des particules, je souhaiterai qu'elles montent de façon plus lente.
ou peut on gérer cela ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
case
Messages : 1527
Inscription : lun. 10/sept./2007 11:13

Re: Essai Particules St Valentin ^^

Message par case »

particle velocity a vue de nez ca doit bien servir a definir la vitesse de celles ci.
je suis au taf et je poste via teamviewer donc pas moyen de tester ton code
ImageImage
Avatar de l’utilisateur
Ar-S
Messages : 9476
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Essai Particules St Valentin ^^

Message par Ar-S »

Salut,
Je vais tester ça, mais il me semble que velocity jouait sur la dispersion des particules et non sur la vitesse.

----edit----

Effectivement, ça a l'air de le faire en abaissant la valeur max du velocity. Mais j'ai l'impression que la dispertion est du coup moins grande.

J'essaye maintenant d'insérer un sprite3D mais je n'arrive même pas à l'initialiser... Je suis pas fait pour la prog 3d..
.. mais j'persiste :)

Code : Tout sélectionner

  ; ------------------------------------------------------------
  ;
  ;  Test de création de Particlules PB 4.60 by Ar-S
  ;
  ;  Pour la St valentin.
  ;
  ; ------------------------------------------------------------
  
  UsePNGImageDecoder()
  
  
  ; --- Sprites ----
  Enumeration
    #S1 
    #S13D
  EndEnumeration
  
  
  
  IncludeFile "Screen3DRequester.pb"
  
  Define.f KeyX, KeyY, MouseX, MouseY
  
  If InitEngine3D()
    
    Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
    
    InitSprite()
    InitSprite3D()
    InitKeyboard()
    InitMouse()
    
    If Screen3DRequester()
      
      ILOVEU = LoadSprite(#S1, "I:\PROG\PureBasic4_60\Examples\3D\Data\Textures\aime.png", #PB_Sprite_AlphaBlending)
      If ILOVEU = 0
        Debug "Erreur loadsprite 3D"
      EndIf
      
      CreateSprite3D(#S13D, #S1)
      Sprite3DQuality(1)
      
      
      LoadTexture(0, "flareCoeuruniRedt.png")
      
      
      CreateMaterial(0, TextureID(0))
      DisableMaterialLighting(0, 1)
      MaterialBlendingMode   (0, #PB_Material_AlphaBlend)
      
      
      CreateParticleEmitter(0, 5, 5, 1, 0)
      ParticleMaterial    (0, MaterialID(0))
      ParticleTimeToLive  (0, 10, 10)
      ParticleEmissionRate(0, 25)
      ParticleSize        (0, 5, 5)
      ParticleColorRange  (0, RGB(200,0,0), RGB(255,0,0))
      MoveParticleEmitter(0, -50, 0, 0)
      ParticleVelocity(0, 1, 80)
      
      CreateParticleEmitter(1, 15, 15, 1, 0)
      ParticleMaterial    (1, MaterialID(0))
      ParticleTimeToLive  (1, 10, 10)
      ParticleEmissionRate(1, 13)
      ParticleSize        (1, 15, 15)
      ParticleColorRange  (1, RGB(200,0,0), RGB(255,0,0))
      MoveParticleEmitter(1, -50, 0, 0)
      ParticleVelocity(1, 1, 100)
      
      
      CreateCamera(0, 0, 0, 100, 100)
      
      CamX = -180
      Droite = 1
      gauche = -1
      
      CameraLocate(0,-50,60,150)
      
      Repeat
        Screen3DEvents()
        
        RenderWorld()
        
        If Start3D()
            DisplaySprite3D(1, 0, 30)
          
            
          Stop3D()
        EndIf
        
        
        
        If CamX <= -150
          Direction = Droite
        ElseIf CamX > 50
          Direction = gauche
          
        EndIf
        
        CamX + Direction
        CameraLocate(0,CamX,60,150)
        
        Screen3DStats()
        
        FlipBuffers()
      Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
    EndIf
    
  Else
    MessageRequester("Error", "The 3D Engine can't be initialized",0)
  EndIf
  
  End
  
Le fichier aime.png
Image


Le but étant de faire plaisir à madame tout en m'améliorant avec PB ^^
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Essai Particules St Valentin ^^

Message par Kwai chang caine »

Ar-S a écrit :Le but étant de faire plaisir à madame tout en m'améliorant avec PB ^^
:lol: :lol: Comme je te comprends... :roll:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre