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

MFC Discussion :

[MFC][OpenGL]probleme de repositionnement de la camera


Sujet :

MFC

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 28
    Points : 23
    Points
    23
    Par défaut [MFC][OpenGL]probleme de repositionnement de la camera
    bonsoir,
    je développe un logiciel avec rendu OpenGL.
    mon problème est que je n 'arrive pas à repositionner la caméra.
    j'ai créé une fonction SetCam membre de ma classe COpenGL.
    Cette fonction appelle la fonction gluLookAt avec les nouvelles coordonnées.
    J'ai aussi créé une classe CGLview qui permet l'affichage de mon rendu openGL.

    voici un bout de code de ma fonction Draw de cette classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	CDocument* pDoc = GetDocument();
    	// TODO : ajoutez ici le code de dessin
    	VERIFY(wglMakeCurrent(pDC->GetSafeHdc(), hRC));
    	if (openGL.getLoaded() == 0)
    	{
    		glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    		glClearColor(0.0f, 0.0f, 0.0, 0.0);
    		openGL.DrawMap();
    	}
    	openGL.setCam();
    	glFlush();
    	SwapBuffers(pDC->GetSafeHdc());
    Le if permet de charger le monde juste 1 fois.

    A l'execution, rien ne bouge.
    J'ai vérifié la validité des données et fait quelques tests. Il s'avère que lorsque je mets un gluLookAt dans ma fonction DrawMap et que j'enlève le if, ma camera bouge.

    quelqu'un aurait une idée??
    c'est vraiment important Merci (ps je connais les règles du forum concernant l'importance des post. C'est juste histoire de parler, meme si c'est vrai ^^)

  2. #2
    Membre régulier
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Points : 85
    Points
    85
    Par défaut [MFC] - OpenGl : re
    Salut,

    ça fait plutôt un bail que je n'ai pas fait d'openGL mais en regardant ton code et en lisant ton histoire de if, une question m'interpelle.

    D'après ce que tu me dis :

    quand tu ne mets pas le if, la caméra bouge correctement, par conséquent la caméra est bien chargée et les modifications apportées sont prises en compte.

    quand tu mets le if, la caméra ne bouge pas. C'est comme si la fonction getLoaded ne retournait pas 0. Dans ce cas, il est donc logique que les modifications ne soient pas apportés à la caméra : cette dernière ne peut donc pas bouger.

    D'où mon interrogation :

    : Est ce que tu es sur et certain que la fonction getLoaded() liée à ta variable openGL retourne 0 si la caméra est chargée ?

    J'espère que tu vas vite trouver la solution à ton problème.



    Alice

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 28
    Points : 23
    Points
    23
    Par défaut
    Ma fonction if retourné l'état d'une variable. De plus ma fonction SetCam est en dehors du if.
    elle devrait donc etre appelée.

  4. #4
    Membre régulier
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Points : 85
    Points
    85
    Par défaut
    effectivement ta variable setCam est appelée en dehors du if....

    Je précise ma pensée :

    si tu fais un setCam et qu'il n'y a pas de modifications des paramètres caméra, tu ne fais qu'initialiser ses paramètres à leur états actuels sans les modifications.

    D'après ce que je comprends le if (getloaded) ne sert qu'à nettoyer et à préparer ton monde à recevoir un dessin.

    Mais alors où définis tu les paramètres de la caméra pour qu'elle bouge ?????

    Alice

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 28
    Points : 23
    Points
    23
    Par défaut
    c'est lors de la reception d'un objet provenant du réseau.
    Les variables de positionnement de la camera viennent d'un autre poste.
    En mode débug, je vois bien que les coordonnées sont transmises. je les enregistrent dans une variable membre de ma classe COpenGL et j'appelle SetCam pour modifier la position.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/11/2006, 18h37
  2. [MFC]+[dll] probleme au linkage
    Par BainE dans le forum MFC
    Réponses: 3
    Dernier message: 22/06/2005, 12h04
  3. Réponses: 1
    Dernier message: 11/05/2005, 17h28
  4. [MFC][debutant] probleme pour déclarer une structure
    Par Robleplongeur dans le forum MFC
    Réponses: 10
    Dernier message: 21/02/2005, 13h29
  5. [MFC][OpenGL] renseignement
    Par maitre hibou dans le forum MFC
    Réponses: 2
    Dernier message: 02/06/2004, 22h48

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