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

Développement 2D, 3D et Jeux Discussion :

Nouvelle FAQ Mathématiques pour les jeux : 82 réponses à vos questions [FAQ]


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut Nouvelle FAQ Mathématiques pour les jeux : 82 réponses à vos questions
    Nouvelle FAQ Mathématiques pour les jeux : 82 réponses à vos questions

    Je vous annonce aujourd'hui la création de la toute nouvelle FAQ concernant tout ce qu'il faut savoir sur les mathématiques utiles pour le développement de jeux ou d'application multimédia 2D et 3D. Cette nouvelle FAQ a été créé sur les bases de l'ancienne FAQ sur les Matrices et les Quaternions mais agrémentées du toute nouvelle partie sur la Trigonométrie.

    Vous retrouverai ainsi, toute ce qu'il faut savoir avant d'attaquer un projet de jeux.

    Liens :


    Que pensez vous de cette nouveauté ?
    Avez de nouvelles questions sur ce sujet qui n'apparaitrait pas ?
    Quels sont les thèmes que souhaiteriez voir abordés ?
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  2. #2
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut


    Particulierement la derniere (nouvelle) section sur la trigonométrie, c'est ce qu'il manquait et qui nous évitera des passages sur wikipedia en cas de doute

    Merci :-)
    "le langage C permet de tout faire, y compris se tirer dans le pied. Le langage C++ permet de tout faire, y compris se tirer dans le pied - et réutiliser la balle"

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    C'est une super idée de faq : ) Merci !!

  4. #4
    Membre chevronné
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Points : 1 921
    Points
    1 921
    Par défaut
    Bonne initiative.
    Juste une remarque que mon coté prof de math me force à dire.
    Il serait de bon aloi de revoir la partie 'matrice inverse et système linéaire'.

    En général, on n'a jamais besoin d'inverser une matrice mais toujours de résoudre un SL. L'un est une opération en n^3 l'autre en n^2. Je conçois que l'objectif ici est de répondre à des besoins de gens qui inverse des transformations 3D (je suppose) mais une ligne qui explique ça serait du meilleur effet.

    Le prof de math vous remercie

  5. #5
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Citation Envoyé par Joel F Voir le message
    Bonne initiative.
    Juste une remarque que mon coté prof de math me force à dire.
    Il serait de bon aloi de revoir la partie 'matrice inverse et système linéaire'.

    En général, on n'a jamais besoin d'inverser une matrice mais toujours de résoudre un SL. L'un est une opération en n^3 l'autre en n^2. Je conçois que l'objectif ici est de répondre à des besoins de gens qui inverse des transformations 3D (je suppose) mais une ligne qui explique ça serait du meilleur effet.

    Le prof de math vous remercie
    Nous en avons pris note
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 160
    Points
    53 160
    Par défaut
    Citation Envoyé par raptor70 Voir le message
    Nous en avons pris note
    Il est vrai que la taille des matrices n'est pas très problèmatique ici (2x2, 3x3, 4x4)...

    Pour les systèmes plus complexes, tu peux citer le cours de Jean-Marc Blanc que nous hébergeons sur la rubrique Algorithmes => Résolution des systèmes linéaires
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Juste une petite coquille qui m'a sauté aux yeux sur le théorème d'Al Kashi:

    a² = b² + c² - 2 * b * c * cos(A)

  8. #8
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Citation Envoyé par Grindan Voir le message
    Juste une petite coquille qui m'a sauté aux yeux sur le théorème d'Al Kashi:

    a² = b² + c² - 2 * b * c * cos(A)
    C'est noté également...
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  9. #9
    Membre habitué
    Profil pro
    Dev
    Inscrit en
    Mai 2009
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Mai 2009
    Messages : 257
    Points : 190
    Points
    190
    Par défaut
    sera-t-il possible dans l'avenir d'y ajouter les calculs de volumes englobants (bounding box, convex hull, etc..) ? ça relève plus de l'algorithmie que de l'algèbre linéaire mais ce serait utile, non ?

    de même qu'on pourrait ajouter des méthodes de créations de polyhèdres en tout genre

  10. #10
    Membre éclairé Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Points : 791
    Points
    791
    Par défaut
    Très bonne initiative!

    J'utilise la trigo très régulièrement, mais je dois très souvent vérifié les propriétés par acquis de conscience..

    Juste un petit ajout qui peut être utile (et qiu ne coûte pas plus cher..): préciser ce qu'est le sens trigonométrique dans la définition du cercle

    9a peut paraitre évident, mais bon.

  11. #11
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Citation Envoyé par coda_blank Voir le message
    sera-t-il possible dans l'avenir d'y ajouter les calculs de volumes englobants (bounding box, convex hull, etc..) ? ça relève plus de l'algorithmie que de l'algèbre linéaire mais ce serait utile, non ?

    de même qu'on pourrait ajouter des méthodes de créations de polyhèdres en tout genre
    Merci de la suggestion. Je pense effectivement que les calculs de bounding box serait plus intéressant dans la FAQ "programmation 3D". Ici on se concentre sur la partie "mathématique" (en occultant la finalité)

    Citation Envoyé par seeme Voir le message
    Très bonne initiative!

    J'utilise la trigo très régulièrement, mais je dois très souvent vérifié les propriétés par acquis de conscience..

    Juste un petit ajout qui peut être utile (et qiu ne coûte pas plus cher..): préciser ce qu'est le sens trigonométrique dans la définition du cercle

    9a peut paraitre évident, mais bon.
    C'est noté. Merci
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  12. #12
    Membre chevronné Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 042
    Points : 2 232
    Points
    2 232
    Par défaut
    A ceci je conseil un livre parfait pour les mathématiques pour les jeux.
    Essential Mathematics for Games & interactive applications de James m.van verth et Lars M.Bishop( ingénieurs OpenGL et développeur technologie chez NVidia). Bonne critique de plusieurs gros du jeu (Erin Catto(Blizzard)).
    Ce livre est très complet, en Anglais, simple et dure de décrocher ( moi qui n'aimais pas les maths...).

    Un gros conseil pour une lecture.
    Homer J. Simpson


  13. #13
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Salut,
    pour faire la rotation d'un objet dans mon jeu Tetris, j'ai utilisé ces deux formules :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    nouveauX  = ancienX*cos(angle_rotation)-ancienY*sin(angle_rotation);
    nouveauY  = ancienY*cos(angle_rotation)+ancienX*sin(angle_rotation);
    le centre de rotation étant le point de coordonnées (0,0).

  14. #14
    Acropole
    Invité(e)
    Par défaut
    Il n'y aurait pas une erreur dans les quaternions ?

    La norme se calcule en multipliant le quaternion par son conjugué.


    Ce qui peut s'implémenter comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    QFLOAT quaternion_magnitude(QUAT *qa)
    {
        return sqrt(qa->qw * qa->qw +
                    qa->qx * qa->qx + qa->qy * qa->qy + qa->qz * qa->qz));
    }
    Or juste au dessus il est dit :

    Ceci peut être fait en inversant le signe de la partie vectorielle du quaternion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    quaternion_conjugate(QUAT *qr, QUAT *qa)
    {
        qr->qw =  qa->qw;
        qr->qx = -qa->qx;
        qr->qy = -qa->qy;
        qr->qz = -qa->qz;
    }
    Mais il n'y a pas de signe négatif dans le calcul de la norme (et il y'a une parenthèse en trop à la fin de sqrt)

    ce qui donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    QFLOAT quaternion_magnitude(QUAT *qa)
    {
        return sqrt(qa->qw * qa->qw -
                    qa->qx * qa->qx - qa->qy * qa->qy - qa->qz * qa->qz));
    }
    Mais il faudrait mettre en valeur absolue avant sqrt.

  15. #15
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 807
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 807
    Points : 7 613
    Points
    7 613
    Par défaut
    Citation Envoyé par Acropole Voir le message
    Il n'y aurait pas une erreur dans les quaternions ?
    Et non, faut prendre ça pour la multiplication.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

Discussions similaires

  1. SplatGL : une nouvelle bibliothèque de rendu Python pour les jeux 2D
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 01/11/2014, 17h38
  2. UNET : une nouvelle technologie pour les jeux en ligne multijoueur dans Unity
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 26/05/2014, 23h54
  3. Valve annonce Steam Greenlight : une nouvelle plateforme pour les jeux indépendants
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 17
    Dernier message: 27/07/2012, 17h21
  4. Création d'un Framework pour les jeux
    Par alex6891 dans le forum UML
    Réponses: 2
    Dernier message: 04/05/2006, 15h27
  5. Résolution des images pour les jeux vidéos
    Par YuGiOhJCJ dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 04/04/2006, 13h24

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