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

GLUT Discussion :

Modifier un cône avec GLUT


Sujet :

GLUT

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut Modifier un cône avec GLUT
    Bonjour,

    Je tentes actuellement de faire un mappage sur la base d'un cône 3D créé avec Glut (via la fonction glutSolidCone).
    Pour être plus précis, je dispose d'une matrice contenant des informations d'intensités sur un spot lumineux réel. Dans ma modélisation, le spot est représenté par un cône et j'aimerai que la base du cône contienne les variations de valeurs contenues dans ma matrice.
    J'ai regardé ce qui se faisait du côté de glut (et opengl) mais j'ai rien trouvé qui pourrait me permettre de faire cela.

    Petite précision qui peut avoir son importance, je développe sous Qt creator 4.8.4 32bits

    Si vous avez une idée, je suis preneur .

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    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 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Vous pouvez essayer, en créant une texture pour l'appliquer sur le cone, mais la solution ne serait pas immédiate.
    Je serai vous, je n'utiliserai pas la fonction toute faite de GLUT, car elle ne vous laisse pas de liberté. De plus, sachant que vous utilisez Qt, vous n'avez pas besoin de GLUT.
    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
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    tout d'abord merci pour votre réponse rapide.
    Je suis vraiment débutant en programmation 3D (il s'agit d’ailleurs d'un besoin très ponctuel). Je ne savais pas que la bibliothèque offerte par qt permettait de s'affranchir de l'utilisation de glut.

    En partant sur votre solution, comment créer une texture à partir d'une matrice 2D. Dans la documentation j'ai vu l'on pouvait le faire à partir d'une image (mais pas à partir d'une matrice de données x,y qui représenterait autre chose que des valeurs pixels).

    Auriez vous une petite idée sur les fonctions à utiliser?
    Merci

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    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 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Que contient votre matrice 2D ? En théorie, il suffit de convertir la matrice 2D en tableau de pixel et vous obtenez une texture.
    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
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    En fait ma matrice est contituée de deux tableaux de doubles. Les deux tableaux ont la même tailles (un pour les données en X, et l'autre pour les données en Y).
    Le premier (X), contient des valeurs d'angles et le second (Y) contient des valeurs d'intensité.
    L'angle 0° est censé correspondre au centre du cône.
    De la même manière, les deux angles extrêmes (positifs et négatifs) correspondent aux bord du cône.

    J'ai donc deux matrice 2D de ce type, une pour l'axe 0x et l'autre pour l'axe 0y.
    Maintenant c'est vrai que je ne vois pas comment produire une texture avec ces données.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Bonjour a tous et bonnes fêtes,
    je me permets de relancer ce topic car il est toujours d'actualité pour moi.
    J'ai tracé mon cône solide et un cercle à sa base.
    Mon problème maintenant revient à travailler sur ce cercle. Pour l'instant j'aimerai tracer la fonction cosinus sur ce cercle mais je ne vois pas trop comment faire.
    Comment puis-je procéder en utilisant un tracé par polygones?

    Auriez vous une idée?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    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 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Qu'en est t-il d'utiliser une texture ?
    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.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Le problème est quasiment résolu avec l'utilisation de texture.
    Mon seul problème est maintenant l'enregistrement dans un fichier. Pour cela, j'utilise la fonction glReadPixels.
    Cependant, à la lecture du buffer, j'obtiens une erreur 1282 et le fichier résultant montre une image complètement décalée (mauvaise perspective) mais avec de bonne couleur.

    Voici la portion de code qui pose problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    unsigned char *pixels = new unsigned char[this->width()*3*this->height()];
     
        glPixelStorei(GL_PACK_ALIGNMENT, 1);
        glReadPixels (0,0, this->width(), this->height(), GL_RGB, GL_UNSIGNED_BYTE, pixels);
    if(glGetError() != GL_NO_ERROR){ //erreur 1282 ici
        qDebug()<<"erreur lecture"<<glGetError();
    }
     
        QImage Image(pixels,this->width()-1,this->height()-1, QImage::Format_RGB888);
        Image=Image.mirrored();
        Image.save("C:\\-----\\tests\\test.png", "png");
        free(pixels);
    Concernant l'initialisation j'ai fais cela: (je précise que l'image s'affiche correctement le problème est uniquement ua niveau de l'enregistrement)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        glShadeModel(GL_SMOOTH);
     
        glClearColor(0.f, 0.f, 0.f, 0.f);
        glClearDepth(1.f);
     
        glEnable(GL_DEPTH_TEST);
        glDepthFunc(GL_LEQUAL);
     
        glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
    Si vous avez une idée, je suis preneur.
    Merci

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Un point qui peut etre important:
    je viens de découvrir que l'enregistrement se passe correctement uniquement lorsque la largeur et la hauteur de la fenêtre ont des valeurs identiques (cas d'une image carrée).

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    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 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Vérifiez à quoi correspond l'erreur 1282 avec les symboles d'erreur défini dans OpenGL, puis après, lisez simplement la documentation de la fonction glReadPixels().

    Je n'ai pas compris le -1, ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QImage Image(pixels,this->width()-1,this->height()-1, QImage::Format_RGB888);
    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.

Discussions similaires

  1. modifier une CBitmap avec du code
    Par kor6k dans le forum MFC
    Réponses: 4
    Dernier message: 04/12/2005, 15h15
  2. modifier un tableau avec javascript
    Par lemmings dans le forum Général JavaScript
    Réponses: 27
    Dernier message: 15/11/2005, 10h10
  3. Probleme avec glut
    Par Blo0d4x3 dans le forum GLUT
    Réponses: 6
    Dernier message: 25/05/2005, 12h35
  4. Problème avec GLUT sous borland c++ builder X
    Par hiko-seijuro dans le forum GLUT
    Réponses: 1
    Dernier message: 04/11/2004, 12h47
  5. Problème pour debuter avec glut
    Par ismael14 dans le forum GLUT
    Réponses: 2
    Dernier message: 26/07/2004, 10h37

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