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 :

Tourner une texture


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    pot
    pot est déconnecté
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 46
    Par défaut Tourner une texture
    Salut !
    Comment faut-il faire pour "tourner une texture ? Je fais comme ça, mais ça n'a pas l'air de marcher...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    glEnable(GL_TEXTURE_2D)
    glBindTexture(Gl_TEXTURE_2D,texture)
    glMatrixMode(GL_TEXTURE)
    glLoadIdentity()
    glPushMatrix()
    glRotatef(angle,2,0,0)
    glPopMatrix()
    glMatrixMode(MODELVIEW)
    ...........

  2. #2
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 53
    Par défaut
    Salut,


    Il me semble que tu modifies ta matrice de texture puis que tu la détruits juste après en faisant un appel à glPopMatrix, ce qui remet l'ancienne matrice (l'identité par défaut) sur le haut de la pile. En enlevant l'appel à glPopMatrix, cela devrait mieu fonctionner, par contre vérifie bien que tu n'empiles pas une nouvelle matrice à chaque image (tu n'as a priori pas besoin de faire un glPushMatrix dans ce cas en fait).

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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    exactement, tu fait un push, ta transformation puis un pop juste apres... donc tu recupere la matrice sauvegardée par le push...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  4. #4
    pot
    pot est déconnecté
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 46
    Par défaut
    Je viens de modifier le code, mais ça ne marche toujours pas...
    la fonction glrotate est ça en fait :
    glRotatef(angle, 1.0, 0.0, 0.0)
    en fait, au lieu de tourner la texture, ça fait plutot un effet de scale...

  5. #5
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Essaye d'animer l'angle pour voir exactement comment la texture tourne...

    Via l'animation peut être tu vas te rendre compte qu'elle ne tourne pas sur le bonne axe...?

    Sinon je ne vois pas, si déjà tu as une transformation de ta texture, c'est que cela s'applique

  6. #6
    pot
    pot est déconnecté
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 46
    Par défaut
    Ben, en animant l'angle, ça agrandit la texture en hauteur (euh.. je sais pas si tu vois ce que je veux dire )

  7. #7
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    glMatrixMode(GL_TEXTURE);
    glLoadIdentity();
    glRotatef(angle, 0.0, 1.0, 0.0);

  8. #8
    pot
    pot est déconnecté
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 46
    Par défaut
    Ben, maintenant, ça fait un effet de scale sur l'axe horizontal...
    Je comprend plus, moi

  9. #9
    pot
    pot est déconnecté
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 46
    Par défaut
    Arf, j'ai trouvé, fallait faire:
    glRotatef(angle, 0.0, 0.0, 1.0)
    Je vois pas pourquoi, mais ça marche
    Merci a tous !
    Gaetan

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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    normal : les textures2D sont placé sur un axe XY, donc si tu veut les faire tourner, il faut effectuer la rotation sur le seul axe qui n'appartienne pas a ton plan... donc Z
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

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

Discussions similaires

  1. Color key d'une texture
    Par Freakazoid dans le forum DirectX
    Réponses: 9
    Dernier message: 07/07/2004, 16h48
  2. comment modifier une texture?
    Par tibyann dans le forum DirectX
    Réponses: 6
    Dernier message: 16/06/2004, 15h27
  3. Charger 16x16 sur une texture 256x256
    Par Johngame dans le forum DirectX
    Réponses: 4
    Dernier message: 06/03/2004, 17h16
  4. Chargement d'une texture a partir de la mémoire
    Par logramme dans le forum DirectX
    Réponses: 6
    Dernier message: 27/01/2003, 14h57
  5. Changer l'image d'une texture
    Par alltech dans le forum DirectX
    Réponses: 5
    Dernier message: 21/08/2002, 01h31

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