Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Chargement d'une texture pour Opengl  (Lu 4945 fois)

0 Membres et 1 Invité sur ce sujet

lionel626

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Chargement d'une texture pour Opengl
« le: Juillet 21, 2014, 12:35:40 pm »
Bonjour,
j'aimerais bien savoir comment charger une image est envoyé a opengl (j'utilise l'extension glew) , j'ai essayé la fonction prévu pour sa dans la documentation mais sa ne fonctionne pas.
Merci de vos réponse.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Chargement d'une texture pour Opengl
« Réponse #1 le: Juillet 21, 2014, 12:48:19 pm »
Montre nous ce que tu as essayé, qu'on ne parte pas de zéro dans les explications.
Laurent Gomila - SFML developer

lionel626

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Chargement d'une texture pour Opengl
« Réponse #2 le: Juillet 21, 2014, 12:56:32 pm »
J'ai essayé sa :

//code opengl

//texture
sf::Texture texture;
texture.loadFromFile("image.png")


//boucle principale

sf::Texture::bind(&texture);

//déssin opengl

sf::Texture::bind(NULL);

//actualisation la fenetre


 

J'ai trouvé des solution mais il sont que valable dans les ancienne version opengl moi j'utilise la version 3.3 .

lionel626

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Chargement d'une texture pour Opengl
« Réponse #3 le: Juillet 21, 2014, 12:59:12 pm »
Pour information j'essaye de reproduire sa
le code ne vient pas de moi c'est un tutorielle opengl que je suit.
bool Texture::charger()
{
    // Chargement de l'image dans une surface SDL
 
    SDL_Surface *imageSDL = IMG_Load(m_fichierImage.c_str());
 
    if(imageSDL == 0)
    {
        std::cout << "Erreur : " << SDL_GetError() << std::endl;
        return false;
    }
 
 
    // Génération de l'ID
 
    glGenTextures(1, &m_id);
 
 
    // Verrouillage
 
    glBindTexture(GL_TEXTURE_2D, m_id);
 
 
    // Format de l'image
 
    GLenum formatInterne(0);
    GLenum format(0);
 
 
    // Détermination du format et du format interne pour les images à 3 composantes
 
    if(imageSDL->format->BytesPerPixel == 3)
    {
        // Format interne
 
        formatInterne = GL_RGB;
 
 
        // Format
 
        if(imageSDL->format->Rmask == 0xff)
            format = GL_RGB;
 
        else
            format = GL_BGR;
    }
 
 
    // Détermination du format et du format interne pour les images à 4 composantes
 
    else if(imageSDL->format->BytesPerPixel == 4)
    {  
        // Format interne
         
        formatInterne = GL_RGBA;
 
 
        // Format
 
        if(imageSDL->format->Rmask == 0xff)
            format = GL_RGBA;
 
        else
            format = GL_BGRA;
    }
 
 
    // Dans les autres cas, on arrête le chargement
 
    else
    {
        std::cout << "Erreur, format interne de l'image inconnu" << std::endl;
        SDL_FreeSurface(imageSDL);
 
        return false;
    }
 
 
    // Copie des pixels
 
    glTexImage2D(GL_TEXTURE_2D, 0, formatInterne, imageSDL->w, imageSDL->h, 0, format, GL_UNSIGNED_BYTE, imageSDL->pixels);
 
 
    // Application des filtres
 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
 
 
    // Déverrouillage
 
    glBindTexture(GL_TEXTURE_2D, 0);
 

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Chargement d'une texture pour Opengl
« Réponse #4 le: Juillet 21, 2014, 12:59:52 pm »
C'est bien comme ça qu'il faut procéder.

Si ton programme ne marche pas comme prévu, poste un code complet minimal qui reproduit le problème. http://sscce.org
Laurent Gomila - SFML developer

lionel626

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Chargement d'une texture pour Opengl
« Réponse #5 le: Juillet 21, 2014, 01:07:41 pm »
Je enfaite c'est pour créé une classe pour charger une texture je vous la montre :
Texture.h
class Texture
{
    public:
        Texture(std::string fichierImage);
        virtual ~Texture();
        GLuint getID() const;
void setFichierImage(const std::string &fichierImage);

    private:
        GLuint m_id;
std::string m_fichierImage;
};

 
Texture.cpp
Texture::Texture(std::string fichierImage)
{
    //vide pour le moment j'essaye de trouvé une solution pour pouvoir charger la texture
}

Texture::~Texture()
{
    //dtor
}
 


Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Chargement d'une texture pour Opengl
« Réponse #6 le: Juillet 21, 2014, 01:13:03 pm »
Citer
poste un code complet minimal qui reproduit le problème. http://sscce.org
:)

C'est pas pour t'embêter, c'est pour en venir au coeur du problème plutôt que de passer des jours à te demander plus de précisions, d'autres bouts de code, etc.
Laurent Gomila - SFML developer

lionel626

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Chargement d'une texture pour Opengl
« Réponse #7 le: Juillet 21, 2014, 01:16:57 pm »
C'est un site hébergement code ou sorte de protocole ou restriction.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Chargement d'une texture pour Opengl
« Réponse #8 le: Juillet 21, 2014, 01:18:44 pm »
Hein ?
Laurent Gomila - SFML developer

lionel626

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Chargement d'une texture pour Opengl
« Réponse #9 le: Juillet 21, 2014, 01:21:12 pm »
Je doit transposé mon problème en fonction de se site.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Chargement d'une texture pour Opengl
« Réponse #10 le: Juillet 21, 2014, 01:25:02 pm »
Tu dois nous aider un peu pour qu'on puisse t'aider. Tu es censé avoir debuggé un peu, et réduit le problème de sorte que tu puisses éliminer tout ce qui n'a aucun rapport. Sinon on peut y passer des jours avec plein de posts inutiles... Les forums c'est pas magique, genre "j'ai un problème, hop je vous jette des bribes de code, démerdez-vous". Il faut que tu fournisses un travail en amont pour défricher le problème.
Laurent Gomila - SFML developer

lionel626

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Chargement d'une texture pour Opengl
« Réponse #11 le: Juillet 21, 2014, 02:22:57 pm »
J'ai essayer ce que tu ma dit mais c'est un peux compliqué mon probléme désolé pour incompréhension je vais essayer trouver une solution.Merci quand même.





lionel626

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Chargement d'une texture pour Opengl
« Réponse #12 le: Juillet 21, 2014, 02:44:50 pm »
Enfaites j'ai réussie j'ai pris exemple sur le code exemple de opengl dans la SFML.