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 :

Classes de matrices


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut Classes de matrices
    Bonjour à tous,


    J'ai envie de refaire ma classe de matrice.

    J'ai vu plusieurs sources qui procédaient différemment concernant le stockage des membres.
    - float[16]
    - float[4][4]
    - float a11, a12 (...) a31, a32 (...) a44

    J'ai également vu en type paramétrés:
    template<class TYPE, LINE, COL> pour faire des matrices de type définit et de taille définies.

    Après avoir regardé pas mal de formule, cette dernière solution me semble un peu bizarre compte tenu des différentes formules selon que la matrice soit carrée ou pas, selon les tailles etc...

    Concernant les trois premières manière de stocker, est-ce que la troisième est plus rapide que les deux premières? Car dans la troisième, on référence directement les composants, alors que dans les deux premières, il faut sans cesse additionner le pointeur du premier élément avec l'index de la valeur pour attériri sur l'emplacement de celle-ci...

    Que me conseillez vous?

    Merci beaucoup,

    A bientôt
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  2. #2
    Membre averti
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    Août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 408
    Points : 392
    Points
    392
    Par défaut
    Utilise des unions pour accéder les variables directement.

    Genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    struct _mat4x4 {
    union 
    {
      float a[16];
      float m[4][4];
      struct{
        float _00, _01, [..], _33;};
    }};
    En fait, si on utilise le plus souvent des float[16], c'est parce qu'on les passer directement au système DirectX ou OpenGL, selon ses besoins.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Ok merci, j'y avais pas pensé

    j'ai vu que DirectX utilisait également des unions.

    Merci beaucoup
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/05/2007, 19h46
  2. Réponses: 15
    Dernier message: 21/01/2007, 22h47
  3. Une classe C# pour les matrices
    Par vladvad dans le forum C#
    Réponses: 3
    Dernier message: 02/12/2006, 13h45
  4. Classe C++ matrice
    Par croc14 dans le forum C++
    Réponses: 15
    Dernier message: 26/07/2006, 16h25
  5. aide classe matrice
    Par ba10 dans le forum C++
    Réponses: 8
    Dernier message: 17/05/2006, 08h10

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