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 :

Déplacement de la caméra


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 6
    Par défaut Déplacement de la caméra
    Bonjour,
    cela fait un bout de temps que je travail sur un projet de réalisation de spirales de spirales.
    Malheureusement après avoir réussit à tout générer je n'arrive vraiment pas à comprendre l'impossibilité que j'ai à générer le déplacement de la caméra

    Pourriez-vous regarder ces différents éléments et me donner votre avis

    fonction init
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     sub init       #fonction "init"
    {
      glClearColor(1.0, 1.0, 1.0, 1.0);    #reglage de la couleur du fond d'ecran  
      glShadeModel(GL_SMOOTH);   
      glEnable(GL_DEPTH_TEST);
      glEnable(GL_LIGHTING);
      glEnable(GL_LIGHT0);  
    }
    fonction display
    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
     
    sub display       #fonction "display"
    {
      glLoadIdentity();        #initialisation des parametres precedents
      gluLookAt(-150.0, 0.0, $distance, -150.0, 0.0, 0.0, 0.0, 1.0, 0.0);  #positionnement de la camera
      glEnable(GL_DEPTH_TEST);
      glPushMatrix();           #on sauvegarde les parametres de la camera
      glBegin(GL_LINES);
        ..............................
       glEnd();
     
     
      glPushMatrix();
      glPopMatrix();            #?????
      glutSwapBuffers();
    La fonction permettant la gestion de la souris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    sub souris {
      my ($bouton_souris, $etat_souris, $x_souris, $y_souris)=@_;
      if ($x_souris<=300)
      {
        print "\n deplacement a gauche";
        $distance=$distance-20;
        print "\, distance = $distance";
      }  
      print "\n souris : $x_souris $y_souris ( $bouton_souris >> $etat_souris )";
     
    }
    Et pour finir la fin du programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); #speficités de la fenetre
    glutInitWindowPosition (0, 0);     #reglage de la position initiale de la fenetre
    glutInitWindowSize(1024, 800);      #reglage de la taille de la fenetre
    glutCreateWindow ("Arianne");       #nomination et creation de la fentre
    init ();                           #initialisation
    glutDisplayFunc(\&display);        #fonction à apelé lorsqu'il faut "redessiner" la fenetre
    glutReshapeFunc(\&reshape);        #fonction à apeler lorsqu'il faut redimensionner ou bouger la fenetre
    glutMouseFunc(\&souris);
    glutIdleFunc(\&spinDisplay);
    glutMainLoop();

  2. #2
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 6
    Par défaut pleaze
    S'il vous plait,
    je suis sur ce foutu problème depuis maintenant plusieurs jour,
    je ne m'en sort vraiment pas !!!

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 118
    Par défaut
    Déjà, tu peut nous indiquer quel type de déplacement tu voudrai avoir et quel type de déplacement tu obtient en se moment....

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut
    Salut,

    avec
    gluLookAt(-150.0, 0.0, $distance, -150.0, 0.0, 0.0, 0.0, 1.0, 0.0); #positionnement de la camera


    je pense que le seul mouvement que tu vas obtenir c'est un déplacemnt sur l'axe des Z essentiellement et si ta caméra est orienté selon cet axe alors ta caméra va avancer ou réculer selon si distance est positif ou négatif.

    Si tu désires que ta caméra bouge selon un axe tu peux procéder de cette manière.

    soit X,Y, et Z la positon de ta caméra.
    V un vecteur de direction de ta caméra.
    et une vitesse

    il faudra que tu additione les composantes de V aux coordonées de la caméra en fonction de ta vitesse

    X += V.x * vitesse;
    Y += V.y * vitesse;
    Z += V.z * vitesse;


    Ensuite pour regarder dans la direction de ton vecteur tu peut ecrire
    gluLookAt(X,Y,Z, X + V.x, Y + V.y,Z + V.z, 0,1,0);
    Ton vecteur V est un vecteur de direction normalisé ou unitaire si tu préfère.

    En revanche pour suivre ta spirale, si ta caméra se situe sur le fil de la courbe alors si tu connais tous les points de ta courbe

    tu positionnes ta caméra sur un point de la courbe (P1) et tu pointe ta caméra sur le point suivant (P2).

    gluLookAt(P1.x,P1.y,P1.z, P2.x,P2.y,P2.z 0,1,0);

    Ensuite pour avancer tu positione ta caméra sur P2 et tu pointe sur P3 et ainsi de suite ...

    En espérant pouvoir t'aider...

    Sam

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 6
    Par défaut réponse
    Tout d'abord je veux vous remercier de votre aide.
    Je n'arrive vraiment pas à trouver de documents assez poussé sur l'opengl basé sur le perl. sniff, sniff, sniff
    Mais bon, je vais faire avec.
    En faite, ce que je ne comprend pas c'est qu'avant d'implémenter sur ce programme une caméra déplaçable, j'y était arrivé avec d'autres. En tatonnant, mais les résultats étaient de bonnes qualités ( simple déplacement au clavier ) mais bon, je commence....
    Je demande juste de l'aide pour effectuer un simple déplacement, n'importe lequel. Tout ce que je veux c'est avoir un exemple d'interaction sur ce programme. Avancer la caméra, reculer, pivoter qu'importe, tant que l'on me montre un exemple basé sur le programme......
    Si vous pouviez juste me montrer comment effectuer par exemple un zoom sur mes spirales.
    Comment changer la valeur de la variable $distance et appliquer ce changement sur mon dessin.....

    A l'aide, A L AIDE

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut
    Ah désolé,

    je ne connais pas le perl !!!

    Pour bouger la caméra les explications que je t'ai donné devraient suffire au moins pour une translation de la caméra

    En revanche tu as plein d'exemple de code source sur google et si tu connais le C ou le C++ tu pourras trouver ce dont du as besoin.

    Pour le zoom sur tes spirales il faudrait que tu nous montre une copie d'écran de ton application, car ce n'est pas facile à appréhender comme ça.

    Sam

Discussions similaires

  1. Déplacement de la caméra
    Par Erwan28250 dans le forum Ogre
    Réponses: 6
    Dernier message: 09/03/2013, 17h20
  2. Problème de déplacement de ma caméra
    Par Alays dans le forum OpenGL
    Réponses: 1
    Dernier message: 15/11/2012, 19h52
  3. Déplacement de caméra
    Par Asmod_D dans le forum OpenSceneGraph
    Réponses: 34
    Dernier message: 21/09/2009, 08h36
  4. Calcul des paramètres du déplacement de la caméra
    Par DirtyBoy dans le forum OpenCV
    Réponses: 1
    Dernier message: 24/06/2009, 15h07
  5. Déplacement de caméra dans le monde
    Par korsakoff69 dans le forum DirectX
    Réponses: 9
    Dernier message: 08/09/2006, 11h31

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