begin process at 2012 05 30 01:40:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

OpenGL

 > 

Problème d'affichage de texture


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème d'affichage de texture

lundi 22 janvier 2007 à 21:23:16 | Problème d'affichage de texture

Turok

Bonjour,
Alors voila le problème est simple, voici un code que j'utilise pour afficher une simple image 2d en utilisant OpenGl et SDL, mais celui ci ne m'affiche qu'un carré blanc...

#include <SDL/SDL.h>
#include <SDL/SDL_Image.h>
#include <GL/gl.h>
#include <GL/glu.h>


void DrawScreen()
{

    GLuint texture_name;
    SDL_Surface *texture;
    GLuint objet;

    // ---- Création d'un objet de texture. ------------------------------------------------
    glGenTextures (1, & texture_name);
    glBindTexture (GL_TEXTURE_2D, texture_name);
    // Paramétrage 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);

    texture = IMG_Load("Background.png");

    // Jonction entre OpenGL et SDL.
    glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA8, texture->w, texture->h, 0,
    GL_RGBA, GL_UNSIGNED_BYTE, texture-> pixels);


    glEnable (GL_TEXTURE_2D);

    glBindTexture (GL_TEXTURE_2D, texture_name);

    glBegin(GL_QUADS);
        glTexCoord2i (0, 0) ; glVertex2i(0,0);
        glTexCoord2i (1, 0) ; glVertex2i(0,600);
        glTexCoord2i (1, 1) ; glVertex2i(800,600);
        glTexCoord2i (0, 1) ; glVertex2i(800,0);
    glEnd();

    glDisable (GL_TEXTURE_2D);

    glFlush();
    SDL_GL_SwapBuffers();


}

int main(int argc, char *argv[])
{
    SDL_Init(SDL_INIT_VIDEO);
    SDL_WM_SetCaption("Mon premier programme OpenGL !",NULL);
    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,1);
    SDL_SetVideoMode(800, 600, 32, SDL_OPENGL);
    gluOrtho2D(0, 800, 600, 0);

    bool continuer = true;
    SDL_Event event;


    while (continuer)
    {
        SDL_WaitEvent(&event);
        switch(event.type)
        {
            case SDL_QUIT:
            continuer = false;
        }

        glClear(GL_COLOR_BUFFER_BIT);

        DrawScreen();

    }



    SDL_Quit();

    return 0;
}
 

Turok
mardi 23 janvier 2007 à 17:20:56 | Re : Problème d'affichage de texture

luhtor

Bon deja, je sais pas si ta conscience que ton code, charge la texture du disque dur a chaque frame, que tu demandes a opengl de récréer une nouvelle texture a chaque frame sans détruire la précédente.
Donc avant de régler le pb de l'affichage, règles ces quelques aberrations.

Et pense aussi a définir le MAG_FILTER, je sais pas s'il est défini par défaut:
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);


mardi 23 janvier 2007 à 19:03:14 | Re : Problème d'affichage de texture

Turok

Oui, je te remercie de signaler ça, étant donné que j'étais focalisé sur le fait de réussir à afficher une simple image, j'en ai oublié les bases.

Sinon ba toujours le même problème, voici le nouveau code :

#include <SDL/SDL.h>
#include <SDL/SDL_Image.h>
#include <GL/gl.h>
#include <GL/glu.h>


GLuint texture_name;
SDL_Surface *texture;
GLuint objet;


void LoadTextures()
{

    // ---- Création d'un objet de texture. ------------------------------------------------
    glGenTextures (1, & texture_name);
    glBindTexture (GL_TEXTURE_2D, texture_name);
    // Paramétrage de la texture.
    glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    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);

    texture = IMG_Load("Background.png");

    // Jonction entre OpenGL et SDL.
    glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA8, texture->w, texture->h, 0,
    GL_RGBA, GL_UNSIGNED_BYTE, texture-> pixels);

}

void DrawScreen()
{

    glEnable (GL_TEXTURE_2D);

    glBindTexture (GL_TEXTURE_2D, texture_name);

    glBegin(GL_QUADS);
        glTexCoord2i (0, 0) ; glVertex2i(0,0);
        glTexCoord2i (1, 0) ; glVertex2i(0,600);
        glTexCoord2i (1, 1) ; glVertex2i(800,600);
        glTexCoord2i (0, 1) ; glVertex2i(800,0);
    glEnd();

    glDisable (GL_TEXTURE_2D);

    glFlush();
    SDL_GL_SwapBuffers();


}

int main(int argc, char *argv[])
{
    SDL_Init(SDL_INIT_VIDEO);
    SDL_WM_SetCaption("Mon premier programme OpenGL !",NULL);
    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,1);
    SDL_SetVideoMode(800, 600, 32, SDL_OPENGL);
    gluOrtho2D(0, 800, 600, 0);

    bool continuer = true;
    SDL_Event event;

    LoadTextures();


    while (continuer)
    {
        SDL_WaitEvent(&event);
        switch(event.type)
        {
            case SDL_QUIT:
            continuer = false;
        }

        glClear(GL_COLOR_BUFFER_BIT);

        DrawScreen();

    }



    SDL_Quit();

    return 0;
}




Turok


Cette discussion est classée dans : opengl, sdl, gl, texture, 2d


Répondre à ce message

Sujets en rapport avec ce message

TEXTURE SDL_IMAGE JPEG [ par Batman60 ] salutquelqu'un peut me dire ce qui cloche dans mon bout de code utilisé pour charger une texture jpeg j'utilise la lib SDL_IMAGE pour celaest-ce que c Texture openGl [ par neodelphi ] Bonjour tout le monde, j'essaye désespérément d'ajouter des textures dans mon projet openGl, mais je devient fou... J'ai écrit une classe qui me perm bitmap avec SDL_image? [ par Batman60 ] Bonjour Comment afficher des bitmaps correctement(bonnes couleurs,et image non inversée) avec ce code (SDL_ima Texture avec OpenGl [ par Zakata ] Bonjour,Voila j'ai un petit soucis avec les textures et OpenGl. J'ai dans l'espoir de réussir à mettre une image de fond sur une fenetre OpenGl. J'ai transparence en OpenGl [ par F0ra ] Bonjour, J'ai un problème en OpenGl Je voudrais rendre uniquement la couleur rose< [Débutant][OpenGL ES] Problème affichage textures [ par Niicoo ] Bonjour tout le monde,Je dois faire un jeu en OpenGL ES (Objective-c) pour IPhone.Je dois afficher une texture sur un carré (2D). Ça pas de soucis, j' Tableaux dynamiques GLuint [sous windows] [ par Djoss666 ] Bonjour à tous. Je cherche à charger le nom des textures que je récupère dans un fichier, dans un tableau dynamique GLUint, afin de ne pas avoir à re problème de transparence sur texture opengl [ par Batman60 ] bonsoirla transparence sur la texture tga ne s'affiche pas, pourtant j'utilise le code ci-dessous et je ne vois pas quoi d'autre à ajouter ou modifier Texte openGL/Glut [ par thomasvd ] Bonjour!J'ai découvert openglgmut sdl et tout le tralala il y a quelques jours et j'avoue que je m'y perd un peu.En fait je voudrais afficher du texte OpenGL et textures [ par Jackyzgood ] Bonjour à tous ! Maintenant que je commence à être à l'aise en SDL, je me suis dis : ça pourrait être bien de passer à l'OpenGL. J'ai suivis un tuto


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales