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 :

Problème de chargement d'image


Sujet :

OpenGL

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Points : 7
    Points
    7
    Par défaut Problème de chargement d'image
    Bonjour tout le monde!!!!
    J'ai un problème assez bizarre.
    Mon prog tout simple est censé afficher une image en tant que texture sur un carré, et bizarrement sur un pc l'image s'affiche alors que si je teste mon prog sur un autre PC j'ai une image blanche à la place. Les configs des pc sont les mêmes je travaille sous visual C++ et avec openGL....
    Si quelqu'un a déja rencontré ce problème et l'a résolu...pourrai-t-il me faire partager son savoir lol!!
    Merci d'avance...

  2. #2
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Es-tu sûr que l'image est accessible sur le deuxième PC ? Est-ce que tu testes le retour de la fonction qui charge l'image ?

    Sinon je ne connais pas trop OpenGL, mais ça peut aussi venir d'un paramètre mal initialisé. Ou alors est-ce que ta texture est une puissance de deux ?

    PS: Si ton problème se situe au niveau d'OpenGL (probablemen), il vaudra mieux que je déplace dans le forum approprié.
    Fiquet
    - FAQ SDL
    - FAQ C++

  3. #3
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Il faudrait montrer le code qui gère l'ouverture du ficher et l'affichage de l'image...

    Jc

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Voila le code qui charge l'image
    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
    int ChargementImage ( void )
    {
     SDL_Surface *temp = SDL_LoadBMP ( "data/MOI_cadre.bmp" ) ;
     if ( temp == NULL )
     {
      printf ( "image non trouve\n" ) ;
      return 1 ;
     }
     glGenTextures ( 1 , &image ) ;
     glBindTexture ( GL_TEXTURE_2D , image ) ;
     glTexImage2D ( GL_TEXTURE_2D , 0,temp->format->BytesPerPixel , temp->w , temp->h , 0 , GL_RGB , GL_UNSIGNED_BYTE , temp->pixels ) ;
     glTexParameteri ( GL_TEXTURE_2D , GL_TEXTURE_MIN_FILTER , GL_NEAREST ) ;
     glTexParameteri ( GL_TEXTURE_2D , GL_TEXTURE_MAG_FILTER , GL_NEAREST ) ;
      SDL_FreeSurface ( temp ) ;
     return 0 ;
    }
    .....
    Mais je ne pense pas que ça vienne de ça....je vais voir pour l'initialisation de l'openGL....
    MERCI

  5. #5
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Je pencherais sur un débordement mémoire qui pose donc un problème dans cette partie du code ou alors un problème avec le fichier graphique.

    Je te conseille de :

    - Créer une nouvelle image 64*64 et écrase le ficher MOI_cadre.bmp
    - Regarder quelle est la taille de l'image, est-elle bien copiée
    - Faire un petit programme qui ne fait rien d'autre qu'afficher l'image sans faire rien d'autre...

    C'est long mais il n'y a pas grand chose d'autre à faire.

    Pour ce qui est de l'initialisation d'OpenGL, cela pourrait venir de là mais je ne parierais pas là-dessus. Lorsque ça m'arrive c'est plutôt un problème avec les images...

    Jc

  6. #6
    Membre averti
    Profil pro
    Responsable technique
    Inscrit en
    Février 2006
    Messages
    363
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable technique

    Informations forums :
    Inscription : Février 2006
    Messages : 363
    Points : 353
    Points
    353
    Par défaut
    Y a pas un probleme avec sdl aussi?
    Tu ouvre ton fichier bmp avec une fonction sdl si ca se trouve le pc de ton pote aime pas trop.

    Voila un code pour charger une image au format bmp avec Opengl

    BMP.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include <GL/glut.h>
    #include <gl/gl.h>                            
    #include <gl/glu.h>                        
    #include <gl/glaux.h>
    #include <stdio.h>
     
    AUX_RGBImageRec* EGELoadBMP(char *Filename);
    GLuint LoadGLTextures(char *Filename);
    BMP.cpp
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    #include "BMP.h"
     
    AUX_RGBImageRec* EGELoadBMP(char *Filename)
    {
        FILE *Fileptr=NULL;
        AUX_RGBImageRec *Bitmap;
     
        /*Verify that a filename has been writen*/
        if (!Filename)
        {
            return NULL;
        }
     
        Fileptr=fopen(Filename,"r");    
     
        /*Verify that the file exist*/
        if (Fileptr)
        {
            fclose(Fileptr);
            /*Load the bitmap and return a pointer*/
            Bitmap=auxDIBImageLoad(Filename);
            return Bitmap;
        }
        else
        {
            return NULL;
        }
     
        return NULL;    
    }
     
    GLuint LoadGLTextures(char *Filename)
    {
        //int Status=FALSE;
        AUX_RGBImageRec *TextureImage[1];
        GLuint texture;
     
        memset(TextureImage,0,sizeof(void *)*1);    
     
        // Load The Bitmap, Check For Errors, If Bitmap's Not Found Quit
        if (TextureImage[0]=EGELoadBMP(Filename))
        {
            //Status=TRUE;            
     
            /*Allocate memory for the texture*/
            glGenTextures(1, &texture);
     
            /*Set the bitmap as current texture*/
            glBindTexture(GL_TEXTURE_2D, texture);
     
            glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);
     
            glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);    // Linear Filtering
            glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);    // Linear Filtering
        }
     
        gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);
     
        if (TextureImage[0])                            // If Texture Exists
        {
            if (TextureImage[0]->data)                    // If Texture Image Exists
            {
                free(TextureImage[0]->data);                // Free The Texture Image Memory
            }
     
            free(TextureImage[0]);                        // Free The Image Structure
        }
     
        //return Status;    // Return The Status
        return texture;
    }

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Merci beacoup pour ton code drcd....il fonctionne très bien...

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

Discussions similaires

  1. Problème de chargement d'images à partir de JARs
    Par MustOne dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 05/05/2009, 10h54
  2. problème de chargement d'images d'un swf
    Par b_reda31 dans le forum Flash
    Réponses: 2
    Dernier message: 04/11/2008, 22h13
  3. Problème de chargement d'image : LoadMovie
    Par ptitelolo dans le forum Flash
    Réponses: 2
    Dernier message: 27/04/2007, 10h38
  4. [Conception] Problème de chargement d'image
    Par cnguyen dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/08/2006, 01h50
  5. Problème de chargement d'image dynamique sous firefox
    Par Tmex dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 08/03/2006, 10h24

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