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 :

Texture qui disparait


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Par défaut Texture qui disparait
    Salut à tous !
    Je suis confronté à un petit soucis que je n'avais jamais rencontré jusque la !
    J'ai développé une toute petite appli basique OpenGL, je voulais tester quelques fonctions, me familiariser plus avec les textures.
    Du classique, je charge mon fichier à l'aide auxDIBImageLoad, un coup de glGenTextures pour générer un Id puis glBindTexture.
    Pour finir le classique gluBuild2DMipmaps.

    Aucun soucis, j'affiche un Quad, je place les coordonnées de la texture avec glTexCoord, tout cela aprés l'avoir activé avec glBindTexture.

    Résultat : Aucun soucis, la texture s'affiche.

    Mais dés que je bouge la fenêtre ne serait ce que d'1milimètre, la texture disparait. Attention, je dis bien bouger la fenêtre pas la redimensionner.

    Je me dis que quelque chose a du m'échapper pourtant rien de bien compliqué dans le code.

    Quelqun a déja rencontré ce soucis ? (Si besoins est je mettrais des sources).

  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 : 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
    tu a bien une boucle d'affichage ? ou alors tu fait bien appel à ta fonction de dessin lors d'un evenement repaint ?
    * 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

  3. #3
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    Tu utilises une bibliothèque de fenêtrage ou tu codes la fenêtre en win32 ou autre ?
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  4. #4
    Membre chevronné
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Par défaut
    Pour baffman : Boucle classique
    Je ne déssine pas ma scène sur le message WM_PAINT mais comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    while (msg.message != WM_QUIT)
    	{
    		if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
    		{
    			TranslateMessage(&msg);
    			DispatchMessage(&msg);
    		}
    		else
    		{
    			/* Affichage : glBegin(...) ... glEnd() etc... */
    		}
    	}
    Pour shenron :
    Pur API Win32.

  5. #5
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Si ta texture est bien chargée en mémoire (et cela doit être le cas, vu que tu as la texture bien dessiné la première fois), alors il y a deux possibilités:

    - Soit lorsque tu dessines, ton bind utilise le mauvais index dès que tu as bougé la fenêtre. Il faudrait comparer la valeur du bind entre le moment où tout marche et après le bug

    - Soit c'est tes coordonnées qui posent problèmes. Lorsque tu bouges la fenêtre, il y a une modification des coordonnées.
    Pour le savoir, dessines la même scéne sans texture. Et regarde si tout disparait. Si c'est le cas, ton problème ne se situe probablement avec les textures...


    Tu dis que lors de la redimension tout marche:
    Même si tu redimensionnes en très petit et ragrandit?
    Et si tu minimises la fenêtre?
    Et si tu mets une 2eme fenetre par dessus et apres tu l'enleves?

    Il est possible que tu as initialisé des variables et que le dessin n'est fait qu'une seule fois, lorsque tu bouges la fenêtre, il redessine la scéne mais avec des variables qui ne sont plus correctement initialisés. Ce genre de problème peut aussi venir du fait que tu as oublié d'appeler LoadIdentity (si tu utilises Translatef)...

    Que de possibilités...

    Jc

  6. #6
    Membre chevronné
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Par défaut
    Citation Envoyé par fearyourself
    Tu dis que lors de la redimension tout marche:
    Même si tu redimensionnes en très petit et ragrandit?
    Et si tu minimises la fenêtre?
    Et si tu mets une 2eme fenetre par dessus et apres tu l'enleves?
    La façon dont je crée la fenetre ne permet pas son redimensionnement ni la minimiser.
    On peut seulement la bouger ou la fermer.

    Citation Envoyé par fearyourself
    Il est possible que tu as initialisé des variables et que le dessin n'est fait qu'une seule fois, lorsque tu bouges la fenêtre, il redessine la scéne mais avec des variables qui ne sont plus correctement initialisés. Ce genre de problème peut aussi venir du fait que tu as oublié d'appeler LoadIdentity (si tu utilises Translatef)...
    Il ny'a aucun glTranslate ou autre, j'ai réduit le code à son strict minimum pour mieux cerner le probleme : glBind pour la texture.
    un glBegin de QUAD, placement des coordonnées des textures, des vertices et glEnd
    Pour terminer un SwapBuffer.

    Les coordonnées des vertices sont en dur, aucune variable.

  7. #7
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Donc il reste encore:

    - Et si tu mets une 2eme fenetre par dessus et apres tu l'enleves?

    - Dessines la même scéne sans texture. Et regarde si tout disparait. Si c'est le cas, ton problème ne se situe probablement avec les textures...

    Et sinon, poste tout le code, si tu l'as déjà réduit, ça ne devrait pas être trop difficile à cerner le problème..

    Jc

  8. #8
    Membre chevronné
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Par défaut
    Si je met une deuxieme fenetre et que je l'enleve, rien ne disparait tout est ok.

    Je dessine la scene sans texture et tout disparait des que ça bouge, donc oui ça ne semble pas venir des textures Je continue les recherches.

Discussions similaires

  1. Texte qui disparait sous internet explorer.
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 14/08/2005, 02h55
  2. texture qui ne s'affiche pas
    Par cutibipoulet dans le forum OpenGL
    Réponses: 1
    Dernier message: 16/05/2005, 09h59
  3. Tooltip qui disparait et mis en forme
    Par xtest dans le forum MFC
    Réponses: 17
    Dernier message: 17/04/2005, 22h52
  4. [WebForms][Javascript] Une DropDownList qui disparait....
    Par prem's dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 02/03/2005, 10h50
  5. LABEL QUI DISPARAIT SUR UN PICTUREBOX !
    Par Sophie42 dans le forum MFC
    Réponses: 2
    Dernier message: 13/01/2004, 12h10

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