IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Simuler un fluide ( fumée ,explosion )


Sujet :

Algorithmes et structures de données

  1. #1
    mat.M
    Invité(e)
    Par défaut Simuler un fluide ( fumée ,explosion )
    Bonjour à tous sorry si le sujet a déja été posé :

    pour un jeu je voudrais simuler de la fumée sur l'écran parce que dessiner des bitmaps sur l'écran c'est pas terrible
    Faut-il utiliser les fractales ou autre ?

    Je voudrais une méthode très simple
    Au besoin avec quelques sin et cos ( attention j'ai pas fait math sup )
    Et quelques paramêtres comme la direction ou la densité...
    Du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for (y=0;x<hauteur_zone_fluide_a_dessiner;x++)
    {
        for (x=0;x<largeur_zone_fluide_a_dessiner;x++)
       { dessiner_pixel(x,y);
        }
    }
    Merci
      0  0

  2. #2
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    J'espère que ce n'est pas pour la vidéo parce que là je n'aurais aucune idée!
    La fumée doit-elle être transparente?
    Moi je vois ça comme ça: tu fais 2 fonctions, l'une qui indique les coordonnées ciblées, l'autre qui dessine les pixels aux endroits indiqués précédemment...
    Sinon la 3D et les images c'est pas mon fort...
      0  0

  3. #3
    mat.M
    Invité(e)
    Par défaut
    Merci pour la réponse je me suis un peu mal exprimé : c'est une animation cadre par cadre en 2d ; on passe d'une image à l'autre selon une tempo précise.
    Pas de 3d là-dedans ni de vidéo on dessine sur l'écran.

    Citation Envoyé par reggae
    La fumée doit-elle être transparente?
    Moi je vois ça comme ça: tu fais 2 fonctions, l'une qui indique les coordonnées ciblées, l'autre qui dessine les pixels aux endroits indiqués précédemment...
    Oui la fumée peut être transparente plus ou moins selon les valeurs RGB du pixel.....
    pour ce qui est des fonctions dont tu parles , justement c'est là la question
    comment faire pour dessiner des pixels et donner l'impression d'un fluide ?

    J'aimerais faire des explosion à la Sudden Strike ( je conçois un jeu similaire ) avec des fumées etc..
      0  0

  4. #4
    Membre émérite
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Par défaut
    Si on ne prend pas en compte le vent ou toute autre perturbation, j'aurais tendance à essayer de partir le l'équation de la diffision de la chaleur + les lois pv=nrt et pv^gama = constante (avec precaution car on n'est surment pas dans des conditions quasi statiques ) pour donner l'anisotropie suivant z.
    La symétrie d'1 tel systeme conduit necessairement à une solution axi-symétrique. En sortir impliquerais alors une source de chaleur étendue avce des gradients de T.
    Je crains que cela n'ai pas une solution aussi rapide que souhaitée.

    Si on s'éloigne de la physique on peut alors utiliser une méthode statistique de type mote-carlo qui devrais aussi donner une évolution acceptable pour un jeu.
    Avec cette technique on peut avoir une évolution temporelle de la densité de particule dans l'espace. Reste , du point de vue informatique à utiliser cette densité comme une atténuation de l'image de fond (une fois intégré dans la direction d'observation ) et de compléter avec du gris. Cela doit être nettement plus simple à mettre en oeuvre que le cas 1 mais reste tout de même + compliqué que les quelques cos ou sin que vous souhaiteriez ...
      0  0

  5. #5
    mat.M
    Invité(e)
    Par défaut
    Merci jp Mignot mais j'ai vraiment du mal à me faire comprendre : je veux faire quelque chose de simple ; de toute façon je ne peux pas implémenter un algorithme complexe parce que pour un jeu il faut que cela soit performant....
    je veux simplement reroduire une fumée , un nuage de points gris blancs.
    Si on ne prend pas en compte le vent ou toute autre perturbation, j'aurais tendance à essayer de partir le l'équation de la diffision de la chaleur + les lois pv=nrt et pv^gama = constante (avec precaution car on n'est surment pas dans des conditions quasi statiques ) pour donner l'anisotropie suivant z.
    Il nya pas de chaleur ici et on ne considére pas de vent: je veux simuler une fumée et lui donner plusieurs formes

    Reste , du point de vue informatique à utiliser cette densité comme une atténuation de l'image de fond (une fois intégré dans la direction d'observation ) et de compléter avec du gris.
    justement c'est cela que j'aimerais avoir mais sous forme de code simple ou de pseudo code comme avec le code donné précedemment.
      0  0

  6. #6
    Membre émérite
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Par défaut
    comment 1
    votre remarque

    l nya pas de chaleur ici
    SI c'est via les gradiants de T que l'on peut simuler l'evolurion temporelle du nuage


    Comment 2
    votre remarque


    justement c'est cela que j'aimerais avoir mais sous forme de code simple
    si le probleme n'est pas de localiser le 'nuage' mais de gerer la transparence, je peu essayer de doner mes suggestions mais un post dans un forum plus directement orienté programmation permetterais sans conteste des réponses plus pertimentes.
      0  0

  7. #7
    mat.M
    Invité(e)
    Par défaut
    Merci jp Mignot mais j'insiste je veux quelque chose de simple !
    Je vais faire une copie d'écran de ce que je veux cela sera plus explicite
    Ou sinon regarder par exemple :
    http://media.www.gamestats.com/media/013/013562/img_1435768.html
    l'avionest en feu je veux simplement reproduire des flammes par exemple derrière un tank , pas avec l'équation de Bernouilli
      0  0

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    La suite ici :

    http://www.developpez.net/forums/viewtopic.php?t=450508

    Merci d'éviter le multipost à l'avenir.
      0  0

Discussions similaires

  1. Simulation de fluide par Navier-Stokes
    Par Shadiest dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 13/01/2024, 12h14
  2. Réponses: 4
    Dernier message: 02/08/2013, 19h22
  3. Nouvel algorithme de simulation de fluides
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 05/05/2013, 23h39
  4. Techniques de simulation de fluides en temps réel
    Par millie dans le forum Mathématiques
    Réponses: 3
    Dernier message: 06/01/2013, 18h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo