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

  1. #1
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    24 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : mai 2008
    Messages : 24 053
    Points : 176 006
    Points
    176 006
    Billets dans le blog
    44

    Par défaut Théorie des collisions : Formes 2D simples

    Bonjour à tous,

    Voici le premier tutoriel sur la théorie des collisions. Celui-ci explore les algorithmes de collision les plus simples en détaillant ce que sont les « Axis Aligned Bounding Box », les « Oriented Bounding Box » et les sphères.

    N'hésitez pas à faire des commentaires.

    Bonne lecture
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  2. #2
    Invité
    Invité(e)

    Par défaut

    bonjour

    excellent tuto il vise l'essentiel, la simplification du calcule qui conduit a une optimisation des performances , je m'amuse a faire des jeux avec collision 2d et je n'avais pensé au teste avec les 'ou' qui est d'une évidence.

    et un marque pages de plus.

    merci

  3. #3
    Membre éprouvé Avatar de dfiad77pro
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    décembre 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : FrancesƆ

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2008
    Messages : 452
    Points : 1 297
    Points
    1 297

    Par défaut

    Très bien présenté et lisible ça fait plaisir


    On attends l'ajout des collisions géométrique 2D complexe ( beaucoup plus lourdes mais précise)

  4. #4
    Membre régulier
    Profil pro
    profiler
    Inscrit en
    février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : profiler

    Informations forums :
    Inscription : février 2008
    Messages : 81
    Points : 95
    Points
    95

    Par défaut

    Si on veut pinailler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    bool Collision(AABB box1,AABB box2)
    {
       if((box2.x >= box1.x + box1.w)      // trop à droite
        || (box2.x + box2.w <= box1.x) // trop à gauche
        || (box2.y >= box1.y + box1.h) // trop en bas
        || (box2.y + box2.h <= box1.y))  // trop en haut
              return false; 
       else
              return true; 
    }
    à "optimiser" par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    bool Collision(AABB box1,AABB box2)
    {
       return ((box2.x >= box1.x + box1.w)       // trop à droite
        || (box2.x + box2.w <= box1.x)           // trop à gauche
        || (box2.y >= box1.y + box1.h)          // trop en bas
        || (box2.y + box2.h <= box1.y));        // trop en haut; 
    }

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    24 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : mai 2008
    Messages : 24 053
    Points : 176 006
    Points
    176 006
    Billets dans le blog
    44

    Par défaut

    J'ose croire que le compilateur aura déjà "pinaillé" pour vous.

    Sinon, le vrai pinaillage à faire, sera sur éviter la copie de l'intégralité de la structure lorsque passé en paramètre à la fonction, car là, la copie des deux structures va vraiment faire perdre du temps.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Membre émérite

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    février 2006
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2006
    Messages : 1 024
    Points : 2 899
    Points
    2 899

    Par défaut

    Puis quand on "optimise" c'est mieux quand ça fait la même chose et pas l'inverse :p
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

  7. #7
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    février 2005
    Messages
    2 018
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2005
    Messages : 2 018
    Points : 2 271
    Points
    2 271

    Par défaut

    Sympa le tuto. Une remarque, est-ce que ceci ne réduirait pas le nombre théorique de tests ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    bool Collision(int curseur_x,int curseur_y,AABB box)
    {
       if (curseur_x < box.x 
        || curseur_x > box.x + box.w
        || curseur_y < box.y 
        || curseur_y > box.y + box.h)
           return false;
       else
           return true;
    }
    Vive les roues en pierre

  8. #8
    Membre du Club
    Inscrit en
    août 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : août 2004
    Messages : 30
    Points : 43
    Points
    43

    Par défaut Question

    Petite question en parcourant rapidement l'article: l'histoire des carrées , pour optimiser ne fallait-il pas faire un décalage vers la gauche pour avoir la valeur? et la droite pour une racine carrée? Je ne me souvient plus

Discussions similaires

  1. Théorie des collisions : Formes 3D simples
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 16/01/2014, 20h04

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