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 :

Charger coordonnées vertices dans tableau : la bonne méthode


Sujet :

OpenGL

  1. #1
    Invité
    Invité(e)
    Par défaut Charger coordonnées vertices dans tableau : la bonne méthode
    Bonsoir,

    Comment allez-vous ?
    Une petite question concernant la méthode pour charger les coordonnées des vertices lu depuis un fichier *.obj ?

    J'avais pensé à celle-ci : créer un tableau dynamique de pointeurs de tableaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    std::vector<float*> ptfloat;
    if (string=='o')   
        ptfloat.append(new float[])
    if (string=='v')
         ptfloat[0]->append(<la valeur lue dans le fichier *.obj>);
    Notez qu'ici j'ai mis la fonction append() qui est une fonction Qt qui n'a rien à voir avec la fonction traditionnelle si l'on utilise pas Qt mais c'est juste pour donner une idée.

    Est-ce, selon vous, la bonne méthode ? Y-a-t-il mieux ?

    En vous remerciant d'avance.

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Normalement, pour vous simplifier une partie du travail, vous devriez avoir créer une structure Vector3D contenant au minimum trois float (ou double): x, y, z.

    Ainsi, lorsque vous voulez sauvegarder tous les points de votre géométrie, il suffit d'avoir un std::vector (ou QVector) de Vector3D. Comme cela, vous évitez tous les problèmes de pointeurs.
    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.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Pour la 2D j'imagine qu'on ne fonctionne pas pareil : l'autre jour vous disiez que c'était avec des sprites : le dessin de ces sprites (vertices, etc...) est lui aussi stocké qq part ?

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Pour la 2D (mais ce n'était pas trop le sujet ici ) on stocke des positions (Vector2D) qui ne contiennent que x et y.
    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.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci. Pardon d'avoir débordé d'un poil (j'imagine quand même mal un poil qui déborde).
    Et pour ce qui est de la structure Vector3D c'est vrai que j'y avais pas pensé.

    J'imagine que quand on développe un jeu vidéo, on rentre dans la "cour des grands", dans le "vif du sujet" de la programmation... Pas de place pour les novices
    Sinon c'est va voir ailleurs si j'y suis...

  6. #6
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Pour faire un jeux on t'avait conseillé de commencé en 2D , tu t'aurais pas pris la tête sur affichage,surtout que charger un .obj est pas d'une grande difficulté (sans compter les problème 3D qui t'attendent sont largement plus compliqué que un loader .obj).
    Il y a un code source sur devellopez.com pour lire les obj,et plein d'autre sur le web.

    Pour lire un .obj tu récupère dans un tableau tous les vecteur
    ce tableau serait une struture 'Vector' avec 3 float x,y,z.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    vecteur x y z   numero du tableau
    v  0.0  0.0  0.0 <= 0
    v  0.0  0.0  1.0 <= 1
    v  0.0  1.0  0.0 <= 2
    v  0.0  1.0  1.0 <= 3
    v  1.0  0.0  0.0 <= 4
    v  1.0  0.0  1.0 <= 5
    v  1.0  1.0  0.0 <= 6
    v  1.0  1.0  1.0 <= 7
    puis après ça dépend de comment est structuré les faces :

    f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3
    f v1//vn1 v2//vn2 v3//vn3
    f v1 v2 v3
    la face 1,prendra les vecteur v1,v2 et v3
    Qui correspond a ton tableau a vector[0],vector[1],vector[2].

    Apres avec opengl tu fais glBegin(GL_QUADS) ou glBegin(GL_TRIANGLE),ça dépendra du nombre de vecteur.

  7. #7
    Invité
    Invité(e)
    Par défaut
    @kannagi : ne t'inquiètes pas pour moi j'avais à peu près compris le principe...

    Ceci dit merci quand même pour ton explication.

    Bon week-end. Cordialement, Gizmo.
    Dernière modification par gbdivers ; 04/12/2011 à 19h31. Motif: HS

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

Discussions similaires

  1. Charger un fichier dans tableau d'entier
    Par nico0007 dans le forum Langage
    Réponses: 12
    Dernier message: 17/04/2008, 11h30
  2. Charger un txt dans tableau html
    Par tondeuz dans le forum Langage
    Réponses: 5
    Dernier message: 30/05/2007, 15h21
  3. charger un fichier dans un tableau
    Par nico0007 dans le forum Delphi
    Réponses: 3
    Dernier message: 16/01/2007, 23h59
  4. Alignement vertical dans un tableau
    Par Aéris22 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 8
    Dernier message: 26/11/2006, 15h46
  5. [HTML] Charger une page dans un tableau? Possible?
    Par mec.nimois dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/10/2005, 11h32

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