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 :

Problème de matrices


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Par défaut Problème de matrices
    Bon cette fois je vois vraiment pas ce qui bug.
    Je suis à la lettre ce qui est spécifié dans le livre OpenGL 2.0 Guide officiel:

    Voilà mon code:
    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
    #include <stdlib.h>
    #include <stdio.h>
    #include <GL/glut.h>
    #include <GL/glext.h>
    /*Définition d'un triangle*/
    #define draw_triangle()	glBegin(GL_LINE_LOOP);glVertex3f(-2.5, 0.0, 0.0);glVertex3f(2.5, 0.0, 0.0);glVertex3f(0.0, 4.5, 0.0);glEnd();
     
    void init()
    {
    	glClearColor(0.0, 0.0, 0.0, 0.0);
    	glShadeModel(GL_FLAT);
    }
     
    void display()
    {
    	glClear(GL_COLOR_BUFFER_BIT);
    	/*Activation des pointillés*/
    	glEnable(GL_LINE_STIPPLE);
    	/*Spécification de la matrice des models et de visualisation*/
    	glMatrixMode(GL_MODELVIEW);
    	/*Chargement de la matrice identité*/
    	glLoadIdentity();
    	/*Ajout de la matrice de base*/
    	glPushMatrix();
    	/*Spécification de la camera*/
    	gluLookAt(0.0, 2.5, 15.0, 0.0, 2.5, 0.0, 0.0, 1.0, 0.0);
    	/*Premier triangle de couleur blanche*/
    	glColor3f(1.0, 1.0, 1.0);
    	draw_triangle();
    	/*Déplacement du repère vers la droite*/
    	glTranslatef(-1.0, 0.0, 0.0);
    	/*Deuxième triangle de couleur rouge*/
    	glColor3f(1.0, 0.0, 0.0);
    	glLineStipple(1, 0xF00F);
    	draw_triangle();
    	/*Chargement de la matrice de base*/
    	glPopMatrix();
    	/*Ajout de la matrice de base*/
    	glPushMatrix();
    	glScalef(1.5, 0.5, 1.0);
    	/*Troisième triangle de couleur vert*/
    	glColor3f(0.0, 1.0, 0.0);
    	glLineStipple(1, 0xF0F0);
    	draw_triangle();
    	/*Chargement de la matrice de base*/
    	glPopMatrix();
    	glRotatef(45, 0.0, 0.0, 1.0);
    	/*Troisième triangle de couleur bleu*/
    	glColor3f(0.0, 0.0, 1.0);
    	glLineStipple(1, 0x8888);
    	draw_triangle();
    	glFlush();
    	/*Desactivation des pointillés*/
    	glDisable(GL_LINE_STIPPLE);
    }
     
    void reshape(int w, int h)
    {
    	glViewport(0, 0, (GLsizei) w, (GLsizei) h);
    	glMatrixMode(GL_PROJECTION);
    	glLoadIdentity();
    	gluPerspective(60.0, 1.0, 1.5, 20.0);
    	glMatrixMode(GL_MODELVIEW);
    }
     
    int main(int argc, char *argv[])
    {
    	glutInit(&argc, argv);
    	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    	glutInitWindowSize(500, 500);
    	glutInitWindowPosition(500, 150);
    	glutCreateWindow(argv[0]);
    	init();
    	glutDisplayFunc(display);
    	glutReshapeFunc(reshape);
    	glutMainLoop();
    	return EXIT_SUCCESS;
    }
    Mais mon programme n'affiche que les 2 premier triangles...
    Pourquoi ça n'affiche pas le reste?

  2. #2
    Membre averti
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut
    Salut !

    Personne ne répond à mon topic alors je peux toujours essayer de répondre au tiens en attendant

    Je te conseille de placer ton gluLookAt avant ton premier glPushMatrix, tu effectues un glPopMatrix après ton deuxième triangle, j'imagine donc (je débute, je dis peut être des bêtises ) que tu annules ton gluLookAt après cet appel.

    Donc les triangles dessinés après le son avec la vue par défaut d'openGl et non la vue spécifié par ton gluLookAt.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Par défaut
    C'est exactement ça...
    Merci !!!

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

Discussions similaires

  1. [Débutant] Problème création matrice de rigidité
    Par sylvain1001 dans le forum MATLAB
    Réponses: 4
    Dernier message: 22/12/2008, 16h42
  2. [Fortran 77] Problème de matrice
    Par info! dans le forum Fortran
    Réponses: 23
    Dernier message: 14/12/2008, 22h44
  3. Divers problèmes de matrice passant de numpy a scipy
    Par thance dans le forum Calcul scientifique
    Réponses: 25
    Dernier message: 12/06/2007, 23h33
  4. Problème de matrice
    Par anasTelecoms dans le forum MATLAB
    Réponses: 1
    Dernier message: 27/05/2007, 10h55
  5. problème de matrice
    Par micfont999 dans le forum C++
    Réponses: 9
    Dernier message: 07/01/2007, 15h19

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