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

OpenGL Discussion :

systeme de particules de feu


Sujet :

OpenGL

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 161
    Points : 97
    Points
    97
    Par défaut systeme de particules de feu
    salut,

    je voudrais crée une systeme de particle de feu qui me permette de gerer du feu, quelqu'un peu m'aider svp!!?

  2. #2
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    [troll]mais oui bien sur tu prend une allumette et c'est parti pour un effet de particules de folie [/troll]

    on pourrait avoir juste un peut plus d'info sur ton niveau et autre, genre qu'est ce que tu connait en terme de moteurs de particules, de prog openGL et tout le tintouin...

    sinon un tres bon site avec un tutoe sur les moteurs de particules (et en francais ) http://glinfrench.apinc.org/
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 161
    Points : 97
    Points
    97
    Par défaut
    euh mon niveau est plutot debutant sans l'etre totalement, je suis en 2eme année d'iut info et je recherche à realiser un systeme de particule de feu avec si possible glut.

    dans un premier temps, il faudrais que je genere des particule de bas en haut et dans un deuxieme temps avec interpolation trilinéaire que je puisse faire bouger le tout de facon aléatoire de maniere à crée un effet "réaliste" lol en facon de parler :p

  4. #4
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    interpolation trilineaire ??? faudra m'expliquer ce que c'est car la je seche... tu veut peut etre parler de 3 interpolation linaire ? une sur chaque composante d'un vecteur...

    sinon un effet de feu basique est tres facil a crée, il suffit de crée des particules dans une zone donnée, de leur donner une vitesse vers le haut et de leur donner une couleur rouge (plus un peut de vert et de bleu pour l'addition...) au depart et noir a la fin. Tu passe en blending additif et tu affiche le tout... facile etant donnée que tu n'a même pas a trier tes particule en fonction de la distance vu que ca utilise du blending additif...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  5. #5
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 161
    Points : 97
    Points
    97
    Par défaut
    Imagine :
    une matrice 3D de valeurs. On peut considérer que ce sont des valeurs associées à des points V 3D alignés sur une grille 3D régulière

    On peut calculer une valeur Vxyz en un point quelconque (x,y,z) qui ne soit pas un des points de la grille 3D, par interpolation trilinéaire des valeurs des 8 points de la grille qui l'entourent :

    Vxyz = V000.(1 - a).(1 - b).(1 - c) +
    V100. a .(1 - b).(1 - c) +
    V010.(1 - a). b .(1 - c) +
    V001.(1 - a).(1 - b). c +
    V101. a .(1 - b). c +
    V011.(1 - a). b . c +
    V110. a . b .(1 - c) +
    V111. a . b . c

    Où a,b,c sont les parties décimales de x,y,z. Donc a,b,c sont compris entre 0 et 1. On suppose que les 8 points voisins sont alignés sur une grille régulière espacée d'une unité.

    voila pour l'interpolation trilinéaire lol.

    sinon dans un premier temps, je voudrais bien savoir comment faire deplacer une particule de bas en haut lol et en generer plusieur grace à une liste.

    mais bon je sais pas si c la meilleur solution et surtout comment m'y prendre

  6. #6
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    generalement l'interpolation n'est pas utilisée pour des matrice en 3D mais uniquement pour des vecteurs (apres on peut voir une matrice comme un vecteur de vecteurs

    sinon pour le deplacement des particules c'est de la cinematique de base (niveau 1ere S...) c'est vraiment tres simple...

    ta particule a une position dans l'espace (un vecteur 3D) et une direction (aussi un vecteur 3D) pour notre fau ce vecteur de direction sera (0,1,0) donc pointant vers le haut. en fait ce vecteur definit le deplacement de la particule chaque seconde.

    apres a chaque image, tu calcule le temps ecoulé (elapsedTime) depuis l'image precedente puis tu ajoute le vecteur de deplacement pondéré par le temps ecoulé a la position... en gros ca donne un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    int previousTime;
    void display()
    {
        // fonction appelé a chaque affichage
        // ici on utilise glut
        int time = glutGet(GLUT_ELAPSED_TIME);
        float elapsedTime = (time - previousTime) * 0.001;
        // on multiplie par 0.001 pour passer d'une valeur en millisecondes en secondes.
        // on considere la position codée sur un float[3]
        particule.position[0] = particule.direction[0] * elapsedTime;
        particule.position[1] = particule.direction[1] * elapsedTime;
        particule.position[2] = particule.direction[2] * elapsedTime;
     
       // apres on peut faire la même chose avec la couleur, la rotation et autre...
    }
    voila avec ca tu devrait pouvoir commencer a faire des effets de particules basique. pour des effets plus complexes il faut vraiment avoir une structure adaptée... en ce moment je suis justement en train de bosser sur un moteur de particules ouvert, si tu veut je peut te l'envoyer par mail (pas aujourd'hui par contre )
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  7. #7
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut
    je pas si ca te conviendera mais dans ce jeu :

    http://tomatoes.sourceforge.net/

    y a un moteur de particules extrement simple avec un code tres clair , il est pas super evolué mais c bien pour debuter

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 30
    Points : 34
    Points
    34
    Par défaut
    Perso, je suis parti de là :
    http://nehe.gamedev.net/data/lessons....asp?lesson=19
    puis des exemples sur ce site http://www.codesampler.com/oglsrc.htm

    Et après j'ai bidouillé...

Discussions similaires

  1. Performance des systemes de particules dans les jeux commerciaux.
    Par jolgeirr dans le forum Développement 2D, 3D et Jeux
    Réponses: 8
    Dernier message: 13/05/2008, 12h38
  2. Tests unitaires pour des systemes de particules
    Par franc82 dans le forum OpenGL
    Réponses: 1
    Dernier message: 05/03/2007, 18h24
  3. [VB6] [Système] Récupérer le contenu d'une fenêtre DOS
    Par Nounours666 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 18/11/2004, 16h38
  4. Mon Systeme de particules :)
    Par Sphax dans le forum OpenGL
    Réponses: 9
    Dernier message: 18/08/2003, 18h43
  5. [TP7]systeme d'exploitation
    Par numeror dans le forum Turbo Pascal
    Réponses: 10
    Dernier message: 15/08/2002, 08h47

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