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 :

chargement de texture avec la SDL


Sujet :

OpenGL

  1. #1
    Fry
    Fry est déconnecté
    Membre régulier Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Points : 119
    Points
    119
    Par défaut chargement de texture avec la SDL
    j utilise la SDL avec openGL
    le probleme est que des que j appele plus d une fois cette fonction le programme plante des qu il se lance...
    avant j utilisait glaux pour charger les textures ca marchait bien mais chargeait juste les bmp
    avec SDL_image je peux theoriquement charger BMP, PNM, XPM, XCF, PCX, GIF, JPG, TIFF, PNG, LBM mais la texture bmp que j ai charger avait pas l air tres ressembante....
    je ne vois pas ou est l erreur??
    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
     
    int CCube::LoadTextures(char *Filename,GLuint TexturePos)								
    {
    	SDL_Surface *texture;		
     
    	// Création d'un objet de texture. 
    	glGenTextures (10, &TextureID[TexturePos]);
     
    	// selectionne la texture
    	glBindTexture (GL_TEXTURE_2D, TextureID[TexturePos]);
     
    	// Chargement du fichier.
    	texture = IMG_Load(Filename);
     
    	// Jonction entre OpenGL et SDL.
    	glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA8, texture->w, texture->h, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture->pixels);
     
    	// Parametre de la texture
    	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
    	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
    	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);	// Linear Filtering
    	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);	// Linear Filtering
     
    	// Correction de la perspective des textures
    	glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST); 
     
    	return 0;
    }

  2. #2
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    tu est sur que ton image est en RGBA ?
    if faut verifier les nombre de bits par pixel pour determiner si la texture est en RGB ou en RGBA...

  3. #3
    Fry
    Fry est déconnecté
    Membre régulier Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Points : 119
    Points
    119
    Par défaut
    effectivement j ai pas fait attention a ca....

    avant j utilisais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[TexturePos]->sizeX, TextureImage[TexturePos]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[TexturePos]->data);
    et ca marchait tres bien...
    je ne vois pas a qoi correspond la valeur 3 dans les define?
    comment connaitre le nombre de bit par pixel d une image? ca depend du format?

    #define GL_RGB2_EXT 0x804E
    #define GL_RGB4_EXT 0x804F
    #define GL_RGB5_EXT 0x8050
    #define GL_RGB8_EXT 0x8051
    #define GL_RGB10_EXT 0x8052
    #define GL_RGB12_EXT 0x8053
    #define GL_RGB16_EXT 0x8054
    #define GL_RGBA2_EXT 0x8055
    #define GL_RGBA4_EXT 0x8056
    #define GL_RGB5_A1_EXT 0x8057
    #define GL_RGBA8_EXT 0x8058
    #define GL_RGB10_A2_EXT 0x8059
    #define GL_RGBA12_EXT 0x805A
    #define GL_RGBA16_EXT 0x805B

  4. #4
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    ton objet SDL_Surface doit bien avoire ca quelque part...

  5. #5
    Fry
    Fry est déconnecté
    Membre régulier Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Points : 119
    Points
    119
    Par défaut
    c avec ca que je peu determiner le format RGB ou RGBA?

    texture->format->BytesPerPixel

  6. #6
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    voila...
    normalement avec 24bpp c'est du GL_RGB
    32bpp GL_RGBA

  7. #7
    Fry
    Fry est déconnecté
    Membre régulier Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Points : 119
    Points
    119
    Par défaut
    okay ca marche
    la sturcture renvoi 3 c du RGB ?
    et 4 du RGBA?
    il y a encore d autre modes?
    sinon pour le plantage il vient de cette fonction?
    avant que je l a modifie ca marchait...

  8. #8
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    ca doit etre ca... je connait pas les specif des surfaces SDL ...

Discussions similaires

  1. SDL/Opengl : Probleme de texture avec les thread
    Par tektotodu96 dans le forum OpenGL
    Réponses: 3
    Dernier message: 25/04/2011, 01h42
  2. [2D/3D] Chargement de texture JPG avec OpenGL
    Par purplepachiderme dans le forum Qt
    Réponses: 8
    Dernier message: 28/11/2010, 23h27
  3. Acces violation au chargement de texture avec la SDL
    Par LaDeveloppeuse dans le forum OpenGL
    Réponses: 3
    Dernier message: 16/11/2009, 00h51
  4. Chargement de texture avec DevIL
    Par paps` dans le forum DevIL
    Réponses: 3
    Dernier message: 14/10/2008, 11h42
  5. DirectX / 3dsmax - Exportation et chargement .x, probleme avec les textures
    Par Nikamura dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 06/12/2007, 20h30

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