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 :

probleme de vue


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Par défaut probleme de vue
    j'ai créer une rue en opengl mais je n'en voit qu'une petite partie mais si j'avance, la rue apparait a la place du vide .
    que dois je faire pour voire ma rue en entier
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    #include <windows.h>
    #include <gl/gl.h>
    #include <gl/glut.h>
    #define WIDTH 640
    #define HEIGHT 480
    int id_rue = 0;
    float viseex = 0,viseey = 0.0,viseez = -1.7142855 * 0.4;
    float emplacementx = 0,emplacementy = 0.4,emplacementz = 0;
    int a = 0;
    int murexterieurx[14] = {1.5,1.5,1.5,1.5,9.5,9.5,9.5,9.5,11,11,11,11,1.5,1.5};
    int murexterieury[14] = {0,2.45,0,2.45,0,2.45,0,2.45,0,2.45,0,2.45,0,2.45};
    int murexterieurz[14] = {-4,-4,8,8,8,8,0.5,0.5,0.5,0.5,-4,-4,-4,-4};
    void rue(){
    id_rue=glGenLists(1);
    glNewList(id_rue,GL_COMPILE);
    glBegin(GL_QUADS);
    	glColor3f(0.0,0.0,0.0);
    	glVertex3f(-1,0,-3);
    	glVertex3f(1,0,-3);
    	glVertex3f(1,0,3);
    	glVertex3f(-1,0,3);
    	glColor3f(0.5,0.5,0.5);
        glVertex3f(1,0,3);
        glVertex3f(1.1,0.05,3);
        glVertex3f(1.1,0.05,-3);
        glVertex3f(1,0,-3);
        glVertex3f(1.1,0.05,-3);
        glVertex3f(1.1,0.05,3);
        glVertex3f(1.2,0.05,3);
        glVertex3f(1.2,0.05,-3);
        glVertex3f(1.2,0.05,3);
        glVertex3f(1.2,0.05,-3);
        glVertex3f(1.2,0.0,-3);
        glVertex3f(1.2,0.0,3);
        glVertex3f(1.2,0.0,-3);
        glVertex3f(1.2,0.0,3);
        glVertex3f(1,0,3);
        glVertex3f(1,0,-3);
        glVertex3f(-1,0,3);
        glVertex3f(-1.1,0.05,3);
        glVertex3f(-1.1,0.05,-3);
        glVertex3f(-1,0,-3);
        glVertex3f(-1.1,0.05,-3);
        glVertex3f(-1.1,0.05,3);
        glVertex3f(-1.2,0.05,3);
        glVertex3f(-1.2,0.05,-3);
        glVertex3f(-1.2,0.05,3);
        glVertex3f(-1.2,0.05,-3);
        glVertex3f(-1.2,0.0,-3);
        glVertex3f(-1.2,0.0,3);
        glVertex3f(-1.2,0.0,-3);
        glVertex3f(-1.2,0.0,3);
        glVertex3f(-1,0,3);
        glVertex3f(-1,0,-3);
        glEnd();
        glEndList();
    }
    void Clavier(unsigned char key, int x, int y) 
    {
    if(key == 'z'){
    emplacementz = emplacementz - 0.1;
    viseez = viseez - 0.1;
    }
    if(key == 'q'){
    emplacementx = emplacementx - 0.1;
    viseex = viseex - 0.1;
    }
    if(key == 's'){
    emplacementz = emplacementz + 0.1;
    viseez = viseez + 0.1;
    }
    if(key == 'd'){
    emplacementx = emplacementx + 0.1;
    viseex = viseex + 0.1;
    }
    if(key == 'p'){
    int ancienx = viseex;
    viseex = 0 - viseez;
    viseez = ancienx;
    }
    glLoadIdentity();
    gluLookAt(emplacementx,emplacementy,emplacementz,viseex,viseey,viseez,0,1,0);
    glutPostRedisplay();
    }
    void reshape(int w,int h){
    glViewport(0,0,w,h);
       glMatrixMode(GL_PROJECTION);
       glLoadIdentity();
       gluPerspective(45.0,(float) w/h,1.,10.);
    }
    void init(){
    glClearColor(0.0,0.0,1.0,0.0);
    rue();
    }
    void motion(int x, int y)
    {
    }
    void Display()
    {
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glLoadIdentity();
        gluLookAt(emplacementx,emplacementy,emplacementz,viseex,viseey,viseez,0,1,0);
        glCallList(id_rue);
        glBegin(GL_QUADS);
        glColor3f(1,0,0);
        glVertex3f(-1,0,-3);
        glVertex3f(1,0,-3);
        glVertex3f(1,1,-3);
        glVertex3f(-1,1,-3);
        glEnd();
       	glFlush();
    	glutSwapBuffers();
     }
    int main( int argc, char *argv[ ])
    {
    	glutInit(&argc,argv);
        glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH);
        glutInitWindowSize(WIDTH,HEIGHT);
    	glutInitWindowPosition(50,50);
    	glutCreateWindow("Fenetre OpenGL");
        init();
    	glutDisplayFunc(Display); 
    	glutPassiveMotionFunc(motion);
        glutKeyboardFunc(Clavier);
    	glutReshapeFunc(reshape);
    	glutMainLoop(); // lance le gestionnaire glut
    	return 0;
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Par défaut j'ai oublier de dire
    pour avancer,on appuie sur z,gauche : q droite : d reculer : s

  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
    met ton gluPerspective(45.0,(float) w/h,1.,10.);

    avec une valeur plus importante comme dernier paramettre, c'est la distance de vision.
    par contre fait attention car si une distance de vision trop petite coupe une partie de la scene, une distance de visuion trop grande risque de crée des probleme de z fighting, ce qui n'est pas mieux

    tiens un autre truc

    glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH);

    utilise plutot GLUT_DOUBLE que GLUT_SINGLE, toutes les cartes graphique a l'heure acctuelle supportent le double buffering et tu y gagnera vraiment en confort visuel quand l'affichage commencera a ralentire...
    par contre il ne faudra pas oublier de faire un glutSwapBuffer() a la fin de ton affichage.

    voila @+

    [EDIT] oups j'avait pas vu qu'il y avait deja le swapping des buffer
    * 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
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Par défaut merci
    merci pour l'aide mais je met quoi comme valeur?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Par défaut j'ai changer
    j'ai changer ce que tu m'a dis mais je ne voit aucune difference

  6. #6
    Membre éclairé Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Par défaut
    mets met ton gluPerspective(45.0,(float) w/h,0.1f,1000.0f);


    par exemple

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Par défaut je ne voit aucune difference
    en changeant, on ne voit toujours pas plus loin.

  8. #8
    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
    enleve deja les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    glLoadIdentity(); 
    gluLookAt(emplacementx,emplacementy,emplacementz,viseex,viseey,viseez,0,1,0);
    avant le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    glutPostRedisplay();
    ils sont inutiles vu que la fonction qui est appelé juste apres glutPostRedisplay est la fonction de display...

    sinon je ma demande si il ne faudrait pas mettre un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    glMatrixMode(GL_MODELVIEW);
    a la fin de ta fonction reshape...
    * 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

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Par défaut genial
    c'est ce qui me fallait

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

Discussions similaires

  1. Problemes de vue ?
    Par ChameauFou dans le forum Requêtes
    Réponses: 3
    Dernier message: 21/05/2008, 17h43
  2. [oracle9] probleme de vue
    Par jacques64 dans le forum SQL
    Réponses: 4
    Dernier message: 17/09/2007, 17h09
  3. [Plone]Probleme de vue de mon new type de contenu
    Par schnito dans le forum Zope
    Réponses: 2
    Dernier message: 09/03/2007, 09h09
  4. probleme de vue sur sous formulaire
    Par fabrice518 dans le forum Access
    Réponses: 12
    Dernier message: 05/09/2005, 10h35
  5. Probleme en vue
    Par vodevil dans le forum Langage
    Réponses: 6
    Dernier message: 26/07/2005, 09h57

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