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 :

[Texture] Application de la texture incorrecte


Sujet :

OpenGL

  1. #1
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut [Texture] Application de la texture incorrecte
    Je me suis lancé (pas trop loin quand même) dans le développement d'une petite application en OpenGL.

    Je rencontre un problème pour l'application d'une texture sur un GL_QUADS
    J'ai une image de 2048x32 pixels et je veux appliquer 1/32 em sur ce carré.

    Cette image représente 64 Caractères de 32x32 pixels

    Si j'utilise la texture tel quelle, j'ai des lignes de couleurs qui s'affichent à la place du caractères.
    Si je réduit l'image en 256x32 par exemple, ca fonctionne normalement.

    Y a t il une limitation dans la taille d'une texture ?

    Ci dessous mon code (en Delphi)

    Code Delphi : 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
     
    var
      iSizeChar : GlFloat;
    begin
      glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);    
      glLoadIdentity();                                    
     
      glPushMatrix;
        glTranslate(PosX,PosY,Pronfondeur);
        glRotatef(AngleX,1,0,0);
        glRotatef(AngleY,0,1,0);
        glRotatef(AngleZ,0,0,1);
        glBindTexture(GL_TEXTURE_2D, FontTex);
        iSizeChar := 1 / 64; // 1 / 8 si j'utilise une image de 256 x 32
        glBegin(GL_QUADS);
          glTexCoord2f(iSizeChar * 2 ,0);        glVertex2f(-0.25,-0.25);
          glTexCoord2f(iSizeChar * 2 + iSizeChar,0);   glVertex2f(0.25,-0.25);
          glTexCoord2f(iSizeChar * 2 + iSizeChar,1);   glVertex2f(0.25,0.25);
          glTexCoord2f(iSizeChar * 2,1);        glVertex2f(-0.25,0.25);
        glEnd;
      glPopMatrix;
     
       SwapBuffers(Form1.Canvas.Handle);
    end;
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  2. #2
    Membre éprouvé
    Inscrit en
    Juin 2008
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 162
    Par défaut
    Salut
    Oui il y a une taille maximale tu peux la retrouver avec glGetIntegerv(...) avec le parametre GL_MAX_TEXTURE_SIZE

    +

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Bizarre quand même, je ne pense pas que cela dépasse la capacité de texture.

    2048 x 32 en nombre de pixels c'est pareil que 256 x 256.
    Et j'utilise sur une sphere, une texture de 2500 x 1250 et cela fonctionne très bien. (dans une autre partie du programme)

    Donc je n'arrive pas à comprendre pourquoi, ça ne veut pas fonctionner avec ma petite texture
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  4. #4
    Membre éprouvé
    Inscrit en
    Juin 2008
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 162
    Par défaut
    oui bizarre
    Mais c'est aussi tres bizarre que 2500 x 1250 passe. Tu doit avoir une carte graphique qui supporte des dimensions de textures non standards. Normallement il ne faut utiliser que des textures de tailles puissances de 2.

    ++

  5. #5
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    C'est une texture que je n'ai pas encore remanié, mais j'en ai une autre de 1024 x 1024 et ça fonctionne aussi très bien.

    Voici ce que cela affiche avec l'image en 2048x32



    et avec l'image en 256x32

    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  6. #6
    Membre éprouvé
    Inscrit en
    Juin 2008
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 162
    Par défaut
    j'ai l'impression que c'est un probleme de chargement de texture et non pas de manipulation. Verifie que tu la charge en RGB, et aussi les autres parametres ainsi que le format du fichier...

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Bon, en convertissant l'image de base Bmp en Jpeg, ca fonctionne correctement

    Je pense que l'image que Gimp m'a généré n'était pas correcte pour mon programme. En l'ouvrant avec Paint puis en sauvegardant en Jpeg, c'est passé.

    Merci
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

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

Discussions similaires

  1. Tutoriels OpenGL ogldev en français : application basique de texture
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 23/11/2014, 12h49
  2. [OpenGL 1.x] Application d'une texture à un carré
    Par Omalab dans le forum OpenGL
    Réponses: 2
    Dernier message: 20/05/2014, 09h22
  3. [OpenSceneGraph] Application d'une texture
    Par DhFallen dans le forum OpenSceneGraph
    Réponses: 5
    Dernier message: 13/05/2009, 18h35
  4. [ImageMagick] Application d'une texture à des colonnes
    Par Ministar dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 10/09/2007, 15h36
  5. copier une petite texture sur une grosse texture
    Par gaut dans le forum DirectX
    Réponses: 5
    Dernier message: 15/10/2004, 23h12

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