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 :

Loader (Wavefront) .obj


Sujet :

OpenGL

  1. #21
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Merci je vais essayer tout de suite

  2. #22
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Alors je n'avait pas pu essayer de suite comme j'avait dit .

    La je vien d'essayer, je ne sait si j'ai bien fait l'impléméntation, mais ca ne fonctionne pas lol, voici un petit code de ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    /// construct VBO
            vertices = new float[numFaces*9];
            for ( int i = 0; i < numFaces; ++i )
            {
                vertices[9*i]   = vertex[ index_vertex[i].x-1 ].x;
                vertices[9*i+1] = vertex[ index_vertex[i].x-1 ].y;
                vertices[9*i+2] = vertex[ index_vertex[i].x-1 ].z;
                vertices[9*i+3] = vertex[ index_vertex[i].y-1 ].x;
                vertices[9*i+4] = vertex[ index_vertex[i].y-1 ].y;
                vertices[9*i+5] = vertex[ index_vertex[i].y-1 ].z;
                vertices[9*i+6] = vertex[ index_vertex[i].z-1 ].x;
                vertices[9*i+7] = vertex[ index_vertex[i].z-1 ].y;
                vertices[9*i+8] = vertex[ index_vertex[i].z-1 ].z;
            }
            ///
     
     
    /// draw stuff
    {
       glVertexPointer (3, GL_FLOAT, 0, vertices);
       glNormalPointer (GL_FLOAT, 0, &normal[0]);
       glDrawArrays (GL_TRIANGLES,0,numFaces*3); // numFaces c'est le nombre // d'index vertex, c'est bien ca qu'il faut mettre?
    }
    Ca compile mais plante à l'éxecution
    Ou ai-je foiré

  3. #23
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    Citation Envoyé par Happy
    Alors je n'avait pas pu essayer de suite comme j'avait dit .

    La je vien d'essayer, je ne sait si j'ai bien fait l'impléméntation, mais ca ne fonctionne pas lol, voici un petit code de ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    /// construct VBO
            vertices = new float[numFaces*9];
            for ( int i = 0; i < numFaces; ++i )
            {
                vertices[9*i]   = vertex[ index_vertex[i].x-1 ].x;
                vertices[9*i+1] = vertex[ index_vertex[i].x-1 ].y;
                vertices[9*i+2] = vertex[ index_vertex[i].x-1 ].z;
                vertices[9*i+3] = vertex[ index_vertex[i].y-1 ].x;
                vertices[9*i+4] = vertex[ index_vertex[i].y-1 ].y;
                vertices[9*i+5] = vertex[ index_vertex[i].y-1 ].z;
                vertices[9*i+6] = vertex[ index_vertex[i].z-1 ].x;
                vertices[9*i+7] = vertex[ index_vertex[i].z-1 ].y;
                vertices[9*i+8] = vertex[ index_vertex[i].z-1 ].z;
            }
            ///
     
     
    /// draw stuff
    {
       glVertexPointer (3, GL_FLOAT, 0, vertices);
       glNormalPointer (GL_FLOAT, 0, &normal[0]);
       glDrawArrays (GL_TRIANGLES,0,numFaces*3); // numFaces c'est le nombre // d'index vertex, c'est bien ca qu'il faut mettre?
    }
    Ca compile mais plante à l'éxecution
    Ou ai-je foiré
    Tu veux faire quoi ? Des vbo ou des vertex arrays ? As-tu bien enclanché glEnableClientState pour les normales et les vertex ?

    glEnableClientState (GL_VERTEX_ARRAY);
    glEnableClientState (GL_NORMAL_ARRAY);

    glVertexPointer (3, GL_FLOAT, 0, vertices);
    glNormalPointer (GL_FLOAT, 0, &normal[0]);
    glDrawArrays (GL_TRIANGLES,0,numFaces*3);

    glDisableClientState (GL_VERTEX_ARRAY);
    glDisableClientState (GL_NORMAL_ARRAY);

    Ca c'est pour les vertex arrays. Pour les VBO faut d'abord tout mettre dnas la mémoire du GPU, et les appels sont légèrement différents.

  4. #24
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Merci vraiment pour ton aide!

    Oui j'ai tout activé et les vertex arrays fonctionnent avce un autre loader.
    Enfin le probleme est que je ne peut tester d'autres solutions pour l'instant.
    Je vais essayer ce week& et je tien au courant avec le code source si ca intérésse quelqun

  5. #25
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    Si tu veux pour les VBO je peux te passer mon code.

  6. #26
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Citation Envoyé par Bakura
    Si tu veux pour les VBO je peux te passer mon code.
    Merci , en fait je crois que je vais m'en sortir avec la partie du code source de ton loader

  7. #27
    Yno
    Yno est déconnecté
    Membre éprouvé Avatar de Yno
    Inscrit en
    Novembre 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 138
    Par défaut
    Salut,

    Tiens, voici un lien pour les VBOs :
    http://www.g-truc.net/article/vbo-fr.pdf

    Je ne sais pas ce qu'il vaut honêtemment, mais je l'ai lu et essayé d'appliquer, essayé seulement car je suis tombé face aux extensions et alors j'ai eu la flemme, je remets ça à demain.

    Bonne chance à toi pour ton loader

  8. #28
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    Pour les extensions, GLEW est indispensable Facile d'utilisation.

  9. #29
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Merci beaucoup!
    Comme ca j'aurais plus de chances de réussir

  10. #30
    Yno
    Yno est déconnecté
    Membre éprouvé Avatar de Yno
    Inscrit en
    Novembre 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 138
    Par défaut
    Oui je connais l'existence de Glew, mais à sa compilation (linux) il ne trouve pas -lXmu...
    Bon enfin, c'est pas trop grave :-°

    Merci quand même.

    Au fait, est-ce qu'il existe une autre méthode que les tableaux pour utiliser les VBOs ?
    Du genre:

    glBindBuffer();
    glTexCoord..
    glVertex...
    ...

    ?

  11. #31
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    Je comprends pas ta question ? Comment ça autrement que des tableaux ?

  12. #32
    Yno
    Yno est déconnecté
    Membre éprouvé Avatar de Yno
    Inscrit en
    Novembre 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 138
    Par défaut
    Créer un VBO en spécifiant les données d'une autre façon que par le biais de tableaux.

    Par exemple, si on veut faire du multi-texturing avec les VBO, on fait comment ?

  13. #33
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Je ne comprends pas trop le sens de ta question non plus. Si tu utilises les VBO il faudra à un moment ou un autre que tu remplisses ton (ou tes) vertex buffer, quelque soit la forme de tes données source.

    Le multi-texturing ça ne change pas grand chose si ce n'est qu'au lieu d'avoir une paire de coordonnées de texture tu en auras plusieurs dans ton (ou tes) vertex buffer.

  14. #34
    Yno
    Yno est déconnecté
    Membre éprouvé Avatar de Yno
    Inscrit en
    Novembre 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 138
    Par défaut
    Bon d'accord.

    Cependant, en lisant ce tutoriel:
    http://mdeverdelhan.developpez.com/t...ght/tutoriel2/

    Je vois qu'un calcul est effectué entre caque rendu du moindre sommet (pour le lightmapping) et donc j'en conclu que cette technique ne peux pas être appliquée avec des VBO. (ou alors il me manque une case )
    Donc pour obtenir ce type de rendu, soit on n'utilise pas de VBO, soit, d'après quelques brefs acticles en anglais que j'ai pu lire hier soir, on utilise les shaders pour obtenir l'effet souhaité.
    Si possible, j'aurai voulu être éclairé sur ces quelques doutes :-°

    Et si il faut effectivement utiliser les shaders (ou pas, celà dit ), j'ai bien trouvé quelques liens, mais si vous en avez en français, je suis pas contre
    Merci.

    PS:
    Oups, je suis légèrement HS...

    EDIT:
    Je suis si bête...
    Il me suffit de modifier les valeurs de mon tableau, puis d'effectuer le rendu, le tutoriel fait ces calculs en même temps que le rendu, ça m'a embrouillé...
    Cela dit, il existe peut-être une façon plus rapide que cette dernière pour du lightmapping dynamique... (et/ou bump mapping)

  15. #35
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    effectivement, on peut très facilement reporter le calcul des coordonnées de textures du light mapping sur un vertex program...
    le calcul etant particulièrement simple, ca doit faire un shader de quelques lignes à peine
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

Discussions similaires

  1. [Blender] Exporter un Wavefront (.obj)
    Par Ezarion dans le forum Développement 2D, 3D et Jeux
    Réponses: 15
    Dernier message: 07/01/2011, 09h42
  2. Mesh depuis wavefront .obj
    Par yohannc dans le forum DirectX
    Réponses: 4
    Dernier message: 23/05/2010, 12h01
  3. Problème affichage cube (loader .obj)
    Par barbieaqua dans le forum OpenGL
    Réponses: 11
    Dernier message: 03/04/2008, 19h31
  4. Loader des .obj avec glm sdl
    Par lapointemar dans le forum SDL
    Réponses: 0
    Dernier message: 23/08/2007, 02h54

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