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 :

Pas d'affichage de texture sur certains PC


Sujet :

GLUT

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2005
    Messages : 21
    Points : 7
    Points
    7
    Par défaut Pas d'affichage de texture sur certains PC
    Voilà le bout de code qui a l'air de poser problème (je suis dans un programme API Windows et le code est écrit dans la boucle de message de la fonction WinMain):
    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
    24
     
    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
    glClear(GL_COLOR_BUFFER_BIT);
     
    **Chargement de l'image comme texture**
     
    glPushMatrix();
     glBegin(GL_QUADS);
      glTexCoord2f(0.0, 1.0);
      glVertex2f(-1.0+coeffLargeur, -1.0+coeffHauteur);
     
      glTexCoord2f(0.0, 0.0);
      glVertex2f(-1.0+coeffLargeur, 1.0-coeffHauteur);
     
      glTexCoord2f(1.0, 0.0);
      glVertex2f(1.0-coeffLargeur, 1.0-coeffHauteur);
     
      glTexCoord2f(1.0, 1.0);
      glVertex2f(1.0-coeffLargeur, -1.0+coeffHauteur);
     glEnd();
    glPopMatrix();
     
    glFlush();
    SwapBuffers(hDC);
    Les fonctionnalités de l'OpenGL sont initialisées dans la fonction EnableOpenGL et glEnable(GL_TEXTURE_2D) a été activé.

    Je remarque que sur certains PC, l'affichage n'est pas fait, ,et j'observe un cadre blanc correspondant à la taille de l'image que je veux afficher sur le fond noir de la fenêtre OpenGL.
    L'image est bien chargée en mémoire, car elle est affichée selon l'ordinateur sur lequel on se trouve et je peux récupérer les dimensions de l'image pour les afficher dans la barre de titre de ma fenêtre.

  2. #2
    Membre habitué Avatar de ken_le_videur
    Profil pro
    Inscrit en
    juillet 2002
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2002
    Messages : 129
    Points : 145
    Points
    145
    Par défaut
    C'est pas un histoire de profondeur de couleur ? genre les postes ou ça marche pas sont en 16 bits et toi tu charge des images 24 ou 32 bits ?

  3. #3
    Membre averti Avatar de Bob.Killer
    Profil pro
    Inscrit en
    mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : mai 2004
    Messages : 336
    Points : 332
    Points
    332
    Par défaut
    c koi comme pc ? peu etre que la résolution de la texture est trop grande ou pas puissance de 2
    Pensez aux tutoriels programmation : http://programmation.developpez.com/cours-tutoriels/

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2005
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    J'utilise des images TGA (donc en 32 bit) et les deux PC sur lequel cela ne marche pas sont des portables, en 32bits d'affichage chacun.

    Pour les dimensions de l'image, effectivement ce ne sont pas des puissances de 2. 800x600 pour certains, mais les tailles peuvent être très variables. Dans ce cas, coment faire pour qu'OpenGL accepte les images de taille variable?

    A noter que les 2 machines (je n'en ai pas essayé plus) sur lesquelles marche le prog tournent avec une Nvidia 6800 et une 6800GT pour le second.

  5. #5
    Membre averti Avatar de Bob.Killer
    Profil pro
    Inscrit en
    mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : mai 2004
    Messages : 336
    Points : 332
    Points
    332
    Par défaut
    c koi ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    **Chargement de l'image comme texture**
    j espère que tu genères pas ta texture à chaque passage tu dois juste faire un bind de ton ID
    Pensez aux tutoriels programmation : http://programmation.developpez.com/cours-tutoriels/

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2005
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Non, pas de génération à chaque passage.
    Sinon je vient de trouver le problème: tout bête en plus, mais je l'avait oublié: OpenGL 1.1 ne supporte que les textures dont les dimensions ne sont pas en puissances de 2. Vivement OpenGL 2.0 !
    Sinon, le problème se pose autrement: comment charger de telles images comme texture?

  7. #7
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Simplement en les plaçant dans une texture de puissance de 2 plus grande.
    Exemple pour du 800*600, tu places l’image dans une texture 1024*1024, ensuite tu calculs les coordonnées de la textures à afficher.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2005
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Encore une fois, je viens de trouver après recherches...
    J'ai utilisé la fonction de Mipmapping gluBuild2DMipmaps et tout est rentré dans l'ordre.
    Merci à ceux qui m'ont aidé, ainsi qu'à ceux qui n'ont rien fait

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/06/2008, 15h58
  2. pas d'affichage de trace sur rad6
    Par skanderb dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/05/2007, 16h37
  3. [DEBUTANT]ne pas pouvoir cliquer sur certains champs d'une liste deroulante
    Par eclipse012 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 26
    Dernier message: 03/10/2006, 17h44
  4. Popup ne s'ouvre pas sur certain PC
    Par Nicos77 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 18/11/2005, 17h32
  5. Disparition des textures sur certaines cartes 3D
    Par Francky033 dans le forum DirectX
    Réponses: 1
    Dernier message: 01/10/2004, 06h40

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