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 :

dessiner objet en background


Sujet :

OpenGL

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut dessiner objet en background
    bonjour tout le monde je suis nouveau ici et aussi en Opengl. je voudrais mettre une texture en background mais je n'y arrive pas :cry: je sais que pour faire ca je dois dessiner un objet en utilisant glBegin(GL_QUADS); apres lui avoir donner la texture desiree cette objet est censee prendre tout l'arriere plan et ainsi etre utilise comme background pour la scene(enfin c'est ce que j'ai compris). Le probleme c'est que je fais tout ca et voila ca ne marche quand meme pas :( pourtant j'ai dessiner plusieurs spheres auxquelles j'ai donne des textures et ca a tres bien marche donc je vois pas pourquoi la ca ne marche pas.
    Donc si vous pourrez m'aider ca me ferai enormement plaisir!!!



    Voila la partie de mon code ou j'essaye de dessiner l'objet
    void Draw()
    {


    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);


    glPushMatrix();

    GLuint uni_texture = LoadTextureRAW("image.bmp",1);

    glBindTexture(GL_TEXTURE_2D, texture);



    glDisable(GL_DEPTH_TEST);

    glEnable(GL_TEXTURE_2D);
    glBegin(GL_QUADS);
    glTexCoord2f(03.0f, 4.0f); glVertex2f( -2.0f, -2.0f);
    glTexCoord2f(0.0f, 1.0f); glVertex2f( -1.0f, 1.0f);
    glTexCoord2f(1.0f, 1.0f); glVertex2f( 1.0f, 1.0f);
    glTexCoord2f(1.0f, 0.0f); glVertex2f( 1.0f, -1.0f);
    glEnd();
    glDisable(GL_TEXTURE_2D);
    glPopMatrix();


    glutSwapBuffers();
    }

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    C'est bon comme j'ai pas su comment faire j'ai cree une grande sphere que j'ai dessiner en premier comme ca elle se trouve derriere les autres objets et je lui donner la texture desiree. Le seul problem est que comme j'utilise glRotatef(); plus loin le background tourne aussi avec les autres objets mais bon c'est le mieux que je peux faire donc c'est deja ca mais quand meme si qq peut m'aider pour une meilleure solution je dis pas non!
    Merci

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2010
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 73
    Points : 90
    Points
    90
    Par défaut
    Fait bien attention à l'ordre des transformations et leur répercutions.

    Si tu ne veux appliquer des transformations séparé ton code devrait ressembler à :

    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
    void Draw()
    {
    //Effacement des buffers
    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     
    glPushMatrix(); // ici une sauvegarde de la matrice précédente est effectuée
    //Dessin de ton fond
    glPopMatrix(); // récupération de la matrice sauvegardée
     
    glPushMatrix(); //sauvegarde
    //Dessin de ton objet avec prise en compte de la rotation
    glPopMatrix(); // retour à la matrice sans rotation
     
    glutSwapBuffers();
    }

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 41
    Points : 47
    Points
    47
    Par défaut
    j'ai cree une grande sphere que j'ai dessiner en premier comme ca elle se trouve derriere les autres objets
    Pourquoi désactive-tu le test de profondeur ? Sans ça, tu n'as pas à t'occupper de l'ordre dans lequel tu place tes objets.

    Pour le probleme de rotation, Awakening te donne la bonne marche à suivre pour tous tes objets. Si le probleme persiste, tu peut vérifier si tu remet bien tes matrices à 0 à chaque frame ( glLoadIdentity() ) ?

Discussions similaires

  1. Réponses: 11
    Dernier message: 09/08/2006, 00h11
  2. Réponses: 2
    Dernier message: 30/05/2006, 16h26
  3. [DOM] Changement du background grâce a l'objet DOM style
    Par Olaf MENJI dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 19/12/2005, 17h31
  4. [Dessin] Objet graphique
    Par silver_78 dans le forum 2D
    Réponses: 2
    Dernier message: 03/10/2005, 11h52
  5. Dessin d'objets 2D en cliquer-deplacer
    Par Korea dans le forum OpenGL
    Réponses: 9
    Dernier message: 10/01/2005, 04h46

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