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 :

Gestion de collision et OpenGL


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Gestion de collision et OpenGL
    Bonjour,
    J'ai un problème assez ennuyant, je suis dessus depuis près de trois jours.
    Voilà comment cela ce passe :
    J'ai a disposition un "moteur graphique" initialisé avec OpenGL et montrant un cube pouvant se balader sur un terrain. Terrain symboliser de -50 à 50 en largeur et en longueur. Les coordonnées sont de 0 , 0 au niveau du cube (a l'initialisation).
    Je vous parles pas de la hauteur puisqu'elle n'entre pas en jeu ici.

    De plus j'ai une partie du moteur physique de faite : elle gère l'acclération en ligne droite (en avant et en arriere), c'est à dire que mon cube, selon qu'on appuie ou non sur la touche avant ou arriere, accélère, s'arrête progressivement (rien d'appuyer) ou va en arrière.
    Ce moteur est largement porté par la méthode d'Euler qui fait qu'on peut avoir a tout moment l'accéleration la vitesse et la position d'un des quatre point formant la base du cube étant dans le plan (xOz).

    Ce que je cherche : une formule ou quelque chose comme ca qui me permettrain de simuler les rebonds, et une façon pas trop barbare de faire des tests sur les collisions (imaginons que je rajoute un bloc qui simule un mur, je veux pas rajouter 1500 alternatives).

    J'en viens donc à vos idées, vos expériences.
    Merci d'avance.

  2. #2
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Bonjour et bienvenue sur Développez.com

    As-tu lu les règles du forum ?
    Il existe un forum OpenGL et aussi un forum Algorythmes. A mon avis cette question a plus sa place dans ce dernier.
    Demande à un modo de le déplacer.

  3. #3
    Membre à l'essai

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 20
    Points : 21
    Points
    21
    Par défaut
    Le forum OpenGl de ce site te permettrait de recevoir une réponse plus rapide.

    Cordialement

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Excusez moi j'ai du me tromper, je pensais le mettre ici vu que c'était du delphi, mais après réflexion c'est vrai que c'est plus une sorte d'algorithme que je cherche.
    Si quelqu'un pouvait déplacer le topic

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    J'ai lu que les arbres BSP et les Octree seraient ma solution, seulement je suis un peu dans le flou avec ces choses (d'ailleur je crois que vu que je veux faire une sorte de jeu de KART c'est plutôt Octree qu'il me faut).
    Mais pour l'instant ce que je recherche plus dans l'urgence c'est une sorte de formule pour le rebond lorsque je collisionne - sachant que je connais l'acceleration, la vitesse et la position de tous mes points

    Sinon si vous connaissez des bon tutoriels sur les octree pour plus tard (d'ici deux semaines quoi...) ca peut toujours e servir

    Merci d'avance.

  6. #6
    Membre habitué Avatar de PINGOUIN_GEANT
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 149
    Points : 155
    Points
    155
    Par défaut
    j'ai une formule pour les rebonds mais perso je fais plus du calcul scientifique donc il s'agit de colllisions de particules. je ne sais pas si cela peut te servir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    newVitesse=oldVitesse + 2*(n.oldVitesse)n
    n : vecteur normal à la surface
    . : produit scalaire
    on voit que cela fait un choc élastique
    tu peux rajouter un coef. si tu veux.
    après pour savoir ce que font les gars en jeux vidéos, openGL me semble plus approprié

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    J'essayerais cette formule dès que j'arriverais a rassemblait collision et accélération, merci

  8. #8
    Membre actif
    Profil pro
    Ingénieur développement
    Inscrit en
    Juillet 2004
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement

    Informations forums :
    Inscription : Juillet 2004
    Messages : 323
    Points : 291
    Points
    291
    Par défaut
    Tu cherches plutôt à connaitre un algo qui te permet de déterminer s'il y a collision ou plutôt un algo qui te donne la réponse à une collision?

    Par exemple, tu peux très bien t'arrêter quand il y a collision, mais tu peux aussi rebondir ou glisser.
    Pour le rebond, je connais une bonne technique, pour le glissement aussi.
    Pour la détection de collision, un lancer de rayon devrait suffire.

  9. #9
    Membre actif Avatar de Steki-kun
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 222
    Points : 281
    Points
    281
    Par défaut
    si ton cube ne se balade que dans un plan et que tu veux coller des murs au milieu, la meilleure chose à faire pour détecter des collisions est de créer un arbre BSP 2d, en gros ca correspond à couper ton plan en deux parties séparées par un mur et ainsi de suite récursivement pour les deux parties restantes. si tu veux, j'ai fait un powerpoint en latex qui explique le fonctionnement et une implémentation possible (je m'en servais pour afficher une scène 3D mais on peut s'en servir pr la collision), maile moi si ca t'intéresse encore.

    Steki-kun
    steki.kun@gmail.com

  10. #10
    Membre actif Avatar de Steki-kun
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 222
    Points : 281
    Points
    281
    Par défaut
    j'ai aussi le rapport long et très pipo qui va avec d'ailleurs

Discussions similaires

  1. [FLASH MX2004] Gestion de collisions pour plateformes
    Par sourivore dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 10/05/2006, 14h08
  2. Gestion de collision simple.
    Par ThanosT dans le forum DirectX
    Réponses: 2
    Dernier message: 03/05/2006, 13h47
  3. Importer avec Ogre / Gestion des collisions
    Par alex6891 dans le forum Ogre
    Réponses: 9
    Dernier message: 19/02/2006, 18h43
  4. gestion de collisions delphi2005
    Par NotANumber dans le forum Langage
    Réponses: 2
    Dernier message: 16/10/2005, 21h01
  5. Gestion des collisions - terrains
    Par Dranor dans le forum DirectX
    Réponses: 1
    Dernier message: 26/06/2003, 19h50

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