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

Qt Discussion :

Chargement de texture JPG avec OpenGL


Sujet :

Qt

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Chargement de texture JPG avec OpenGL
    Bonjour à tous !
    J'explique un peu mon problème.
    Je voudrais appliquer des textures à mes objets 3d(déjà importés) sous opengl.

    Le code ci-dessous est la fonction de chargement des textures pour un modèle 3d :

    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
     
    QImage t;
    QImage b;
     
    	for(int i = 0; i < numOfMaterials; i++)
    	{
    		if ( !b.load( pMaterials[i].strFile,"JPG" ) )
    		 {
    			 b.fill(Qt::green);
    		 }
    		 t = QGLWidget::convertToGLFormat( b );
    		 glGenTextures( 1, &m_textures[0] );
    		 glBindTexture( GL_TEXTURE_2D, m_textures[i] );
    		 glTexImage2D( GL_TEXTURE_2D, 0, 3, t.width(), t.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, t.bits() );
    		 glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
    		 glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
    	 }
    Pour une image Bmp, ça fonctionne impec.
    Mais pour un soucis de taille, je souhaiterais le faire avec des images JPG.

    Il me semble que l'erreur se trouve au niveau du :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !b.load( pMaterials[i].strFile,"JPG" )
    En mode debug, lorsque j'arrive à ce niveau,je vois bien que l'image ne se charge pas.
    Est-ce que c'est un problème de plugin jpg pour Qt ?

    Merci d'avance pour vos réponses.

  2. #2
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Bonjour purplepachiderme et bienvenue sur le forum

    Pas de problème pour jpeg, c'est pris en charge par défaut (cd les formats d'images supportés par Qt)

    Plusieurs remarques :

    - utilise qDebug() pour vérifier les chemins et le noms des images passés à load() (toujours vérifier les chemins, la plus part du temps, c'est là le problème, donc jamais supposer qu'il n'y a pas de problème)

    - utilise également qDebug() pour afficher les dimensions de l'image après le load() (pour vérifier que l'image est bien chargée)

    - pas besoin de spécifier le type d'image, c'est optionnel

    - pour charger une texture, tu peux directement le faire à partir du nom de fichier dans QGLWidget avec bindTexture(filename)

    Bon courage

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 11
    Points : 18
    Points
    18
    Par défaut
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QList<QByteArray> QImageReader::supportedImageFormats ()
    juste après l'initialisation de ton QApplication.
    qDebug() sur la liste renvoyée pour t'assurer que ton application peut lire du jpg. Ca peut être ce plugin qui n'est pas chargé.

  4. #4
    Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup pour vos réponses !!
    J'ai testé les différentes propositions.
    Et lorsque je demande la liste des formats supportés après l'initialisation de QApplication

    il me sort :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ("bmp", "pbm", "pgm", "png", "ppm", "xbm", "xpm")
    Génial pas de jpg

    Auriez-vous une idée pour résoudre le problème ??

    J'ajoute que j'ai la version 4.6.2 et qu'elle est intégrée à visual.

  5. #5
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 601
    Points
    188 601
    Par défaut
    Le plug-in de lecture de JPG est-il installé ? (Quel est le contenu de ton répertoire 4.6.2/plugins/imageformats ?)
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  6. #6
    Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    • qjpeg4.dll
    • qjpeg4.exp
    • qjpeg4.lib
    • qjpeg4d.dll
    • qjpeg4d.exp
    • qjpeg4d.ilk
    • qjpeg4d.lib
    • qjpeg4d.pdb


    Pour les autres formats, j'ai les mêmes fichiers.

    Est-ce que ce serait l'intégration dans visual qui n'a pas bien fonctionnée ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 11
    Points : 18
    Points
    18
    Par défaut
    Va donc dans le répertoire de ton install Qt et ouvre le fichier Makefile au root (144 ko chez moi).

    Vérifie que la troisième ligne
    QMAKE = c:\Qt\4.7.1-dynamic\bin\qmake

    correspond bien à la localisation de ton exe qmake (c-a-d %QTDIR%\bin\qmake)

    Est ce le cas ?

  8. #8
    Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Oui c'est le cas .

    Je suis allé voir l'importation du plugin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include <QtPlugin>
     
    Q_IMPORT_PLUGIN(qjpeg)
    Ca me sort une erreur dans les liens.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 11
    Points : 18
    Points
    18
    Par défaut
    Q_IMPORT_PLUGIN n'est pas à utiliser quand tu as compilé en static tes plugins ?
    Vu le nom de tes plugins dans ton répertoire imageformats, tu compiles en face d'un Qt dynamique.
    Donc à priori tu n'as pas à utiliser cette macro.

    Je me pencherai plutot vers ton install VS en fait.
    Tu peux faire un petit main.cpp avec un fichier .pro toute bete et sortir en output le résultat de QImageReader::supportedImageFormats() ?
    Ne passe pas par VS pour ce test mais plutot par une command console.

Discussions similaires

  1. Chargement de texture avec DevIL
    Par paps` dans le forum DevIL
    Réponses: 3
    Dernier message: 14/10/2008, 11h42
  2. Probleme de chargement d'une image avec opengl
    Par JilyJ dans le forum OpenGL
    Réponses: 11
    Dernier message: 30/05/2007, 14h11
  3. Chargement de fichiers .x avec texture
    Par Omfraax dans le forum OpenGL
    Réponses: 3
    Dernier message: 17/01/2007, 09h42
  4. chargement de texture avec la SDL
    Par Fry dans le forum OpenGL
    Réponses: 7
    Dernier message: 27/05/2004, 15h31

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