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 :

Afficher un triangle avec OpenGL


Sujet :

OpenGL

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut Afficher un triangle avec OpenGL
    Bonjour,

    je débute avec OpenGL.
    Je voulais créer un triangle mais le problème est que je n'ai rien à l'affichage
    Voici le 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
    #include <GL/gl.h>
    #include <GL/glu.h> 
     
    int main(int argc, char *argv[])
    {
      glClear(GL_COLOR_BUFFER_BIT);
     
      glBegin(GL_TRIANGLES);
      glColor3ub(255,0,0);    glVertex2d(-0.75,-0.75);
      glColor3ub(0,255,0);    glVertex2d(0,0.75);
      glColor3ub(0,0,255);    glVertex2d(0.75,-0.75);
      glEnd();
     
      return 0;
    }

  2. #2
    Expert éminent sénior

    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 : 44
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Premium
    Bonjour,

    je débute avec OpenGL.
    Je voulais créer un triangle mais le problème est que je n'ai rien à l'affichage
    Voici le 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
    #include <GL/gl.h>
    #include <GL/glu.h> 
     
    int main(int argc, char *argv[])
    {
      glClear(GL_COLOR_BUFFER_BIT);
     
      glBegin(GL_TRIANGLES);
      glColor3ub(255,0,0);    glVertex2d(-0.75,-0.75);
      glColor3ub(0,255,0);    glVertex2d(0,0.75);
      glColor3ub(0,0,255);    glVertex2d(0.75,-0.75);
      glEnd();
     
      return 0;
    }
    C'est un peu court comme code non ?
    Il faut faire pas mal de chose pour ouvrir une fenêtre OpenGL correctement.

    Premièrement il faut décider qui ouvre une fenêtre (OpenGL ne gére que l'affichage) :

    - Glut
    - SDL
    - Win API

    sont les plus classiques. Je te conseillerais Glut/SDL pour commencer et tu peux facilement trouver un tutoriel dessus.

    Si tu regardes dans mes tutoriels, le pong utilise SDL/OpenGL comme combinaison.

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par fearyourself
    C'est un peu court comme code non ?
    Il faut faire pas mal de chose pour ouvrir une fenêtre OpenGL correctement.

    Premièrement il faut décider qui ouvre une fenêtre (OpenGL ne gére que l'affichage) :

    - Glut
    - SDL
    - Win API

    sont les plus classiques. Je te conseillerais Glut/SDL pour commencer et tu peux facilement trouver un tutoriel dessus.

    Si tu regardes dans mes tutoriels, le pong utilise SDL/OpenGL comme combinaison.
    Bonjour,

    dans le cadre de mes études, j'utiliset OpenGL/GLUT.
    Aurais-tu un cours facile d'accès à me conseiller ?
    Le cours de mon prof m'est difficile à comprendre ainsi que ceux que j'ai touvé sur le net

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 943
    Points : 1 156
    Points
    1 156
    Par défaut
    Alors la pour GLUT tu as l'embaras du choix.
    Regarde du coté des universités.
    Il y a egalement sur le site un cour de prise en main d'openGL utilisant glut.

  5. #5
    Expert éminent sénior

    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 : 44
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Premium
    Bonjour,

    dans le cadre de mes études, j'utiliset OpenGL/GLUT.
    Aurais-tu un cours facile d'accès à me conseiller ?
    Le cours de mon prof m'est difficile à comprendre ainsi que ceux que j'ai touvé sur le net
    Pour un code qui ouvre une fenêtre en Glut :
    http://jeux.developpez.com/sources/o...se#WINDOW_glut

    Ensuite, non je ne connais pas de cours sur Glut. Si tu regardes dans le forum Contribuez, il y a pas mal de questions Glut que j'ai mis en place mais je vais en faire un article à la place. Faudra patienter par contre...

    http://www.developpez.net/forums/sho...d.php?t=147694
    http://www.developpez.net/forums/sho...d.php?t=193497
    http://www.developpez.net/forums/sho...d.php?t=191443

    Jc

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920

  7. #7
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut
    Comment fait-on pour compiler un programmer écrit avec OpenGL/GLUT.
    Par exemple, ce 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
    #include<stdlib.h>
    #include<GL/glut.h>
     
    void affichage(void)
    {
      /*Initialisation des pixels */
      glClear(GL_COLOR_BUFFER_BIT);
      /* dessin d'un polygone (rectangle) avec les sommets en (0.25, 0.25, 0.0) et (0.75, 0.75, 0.0)*/
      glBegin(GL_POLYGON);
      glColor3f(1.0, 0.0, 0.0);
      glVertex2f(-0.5, -0.5);
      glColor3f(0.0, 1.0, 0.0);
      glVertex2f(0.5, -0.5);
      glColor3f(0.0, 0.0, 1.0);
      glVertex2f(0.5, 0.5);
      glColor3f(1.0, 1.0, 1.0);
      glVertex2f(-0.5, 0.5);
      glEnd();
     
      /* On force l'affichage du resultat */
      glFlush();
    }
     
    void clavier(unsigned char touch, int x, int y)
    {
      switch(touche)
        {
        case 'p': /* affichage du carre plein */
          glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
          glutPostRedisplay();break;
        case 'f': /* affichage en mode fil de fer */
          glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
          glutPostRedisplay();break;
          case 's': /* affichage en mode sommet seul */
          glPolygonMode(GL_FRONT_AND_BACK, GL_POINT);
          glutPostRedisplay();break;
        case 'q': /* la touche 'q' quitte le programme */
          exit(0);
        }
    }
     
    int main(int argc, char *argv)
    {
      /* Initialisation de glut et création de la fenêtre */
      glutInit(&argc, argv);
      glutInitDisplayMode(GLUT_RGB);
      glutInitWindowPosition(200, 200);
      glutInitWindowSize(250, 250);
      glutCreateWindow("exemple 1");
     
      /* Initialisation d'OpenGl */
      glClearColor(0.0, 0.0, 0.0, 0.0);
      /* On passe à 2 pixels pour des raisons de clarté */
      glPointSize(2.0);
     
      /* enregistrement des fonctions de rappels */
      glutDisplayFunc(affichage);
      glutKeyboardFunc(clavier);
     
      /* entree dans la boucle principale de glut*/
      glutMainLoop();
     
      return 0;
    }

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Quel est le problème exactement ?

  9. #9
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Citation Envoyé par Premium
    Comment fait-on pour compiler un programmer écrit avec OpenGL/GLUT.
    Quel IDE et/ou quel compilateur ?

  10. #10
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut
    Quand je compile comme en C, ça me met des erreurs.
    Il faut que je rajoute des options mais lesquelles ?

  11. #11
    Expert éminent sénior

    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 : 44
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Premium
    Quand je compile comme en C, ça me met des erreurs.
    Il faut que je rajoute des options mais lesquelles ?
    Il faudrait être plus spécifique tout de même :

    - Quel système d'exploitation ?
    - Quel compilateur ?
    - Quelles options est-ce que tu utilises ?
    - Quel est le message d'erreur ?

    Nous ne pouvons pas deviner...

    Jc

  12. #12
    Expert éminent sénior

    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 : 44
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Premium
    Comment fait-on pour compiler un programmer écrit avec OpenGL/GLUT.
    Par exemple, ce code :
    glut.c: In function 'clavier':
    glut.c:26: error: 'touche' undeclared (first use in this function)
    glut.c:26: error: (Each undeclared identifier is reported only once
    glut.c:26: error: for each function it appears in.)
    glut.c: In function 'main':
    glut.c:45: warning: passing argument 2 of 'glutInit' from incompatible pointer type
    Première erreur : ton paramètre n'a pas de 'e'

    Deuxième erreur : ton main prend un char** comme paramètre...

    Compilation :

    gcc -Wall -Wextra -O2 glut.c -lGL -lglut
    Jc

  13. #13
    Membre averti
    Profil pro
    Responsable technique
    Inscrit en
    Février 2006
    Messages
    363
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable technique

    Informations forums :
    Inscription : Février 2006
    Messages : 363
    Points : 353
    Points
    353
    Par défaut
    Tiens un bon tuto pour débuter avec glut ou win32 et en francais:
    http://www-evasion.imag.fr/Membres/A...aching/opengl/

  14. #14
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut
    Je voudrai savoir si OpenGL s'écrit de la même façon quel que soit l'OS et aussi si Glut, AUX, SDL servent uniquement à gérer la fênetre ?

  15. #15
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Citation Envoyé par Premium
    Je voudrai savoir si OpenGL s'écrit de la même façon quel que soit l'OS et aussi si Glut, AUX, SDL servent uniquement à gérer la fênetre ?
    sous Unix « OpenGL », sous windows « OpenGL », sous Irix « OpenGL ».... oui cela s’écrit pareil

    Oui c'est exactement la même syntaxe sur tous les systèmes.
    Glut gère la fenêtre/mode fullscreen et l'interaction avec la souris, le clavier etc... AUX idem.

    SDL est bien plus complet et permet de quasiment tout faire. Gestion de l’Audio, le réseau, les threads, la souris, le clavier, joystick etc.., de plus il y a beaucoup d'add-on à SDL qui fait que SDL est très très complet.

  16. #16
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 671
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 671
    Points : 7 045
    Points
    7 045
    Par défaut
    Citation Envoyé par Ti-R
    SDL est bien plus complet et permet de quasiment tout faire. Gestion de l’Audio, le réseau, les threads, la souris, le clavier, joystick etc.., de plus il y a beaucoup d'add-on à SDL qui fait que SDL est très très complet.
    Question subsidiaire :
    Si je n'utilise pas SDL pour gérer la fenêtre et clavier / souris; Est ce que je peux quand même utiliser SDL pour gérer d'autres choses, ou est ce que c'est un tout ?

  17. #17
    Expert éminent sénior

    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 : 44
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Lung
    Question subsidiaire :
    Si je n'utilise pas SDL pour gérer la fenêtre et clavier / souris; Est ce que je peux quand même utiliser SDL pour gérer d'autres choses, ou est ce que c'est un tout ?
    Cela dépend de ce que tu veux utiliser et s'il a besoin d'un contexte de fenêtre SDL pour le faire. Par exemple, SDL_ttf s'utilise tout seul facilement je pense (pas testé),

    Jc

  18. #18
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Prends SDL, j'ai eu un mal fou avant de faire marcher glut sous code::blocks

  19. #19
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par Laurent Gomila
    Quel est le problème exactement ?
    J'ai un souci avec le cours et les sources car ça indique qu'il faut que le cours et les sources soient dans le même répertoire.
    C'est ce que j'ai fait mais je ne peuc pas cliquer sur les liens qu'il y a dans le pdf.
    Comment faire ?

    Merci

  20. #20
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Citation Envoyé par Premium
    J'ai un souci avec le cours et les sources car ça indique qu'il faut que le cours et les sources soient dans le même répertoire.
    C'est ce que j'ai fait mais je ne peuc pas cliquer sur les liens qu'il y a dans le pdf.
    Comment faire ?

    Merci
    Essaye d'utiliser la version PPT.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/07/2011, 17h51
  2. Afficher du texte avec OpenGL
    Par Happy dans le forum Contribuez
    Réponses: 0
    Dernier message: 27/09/2009, 00h29
  3. Afficher des cylindres avec OpenGL
    Par PetitProgJava dans le forum OpenGL
    Réponses: 3
    Dernier message: 10/01/2009, 02h14
  4. Afficher un tiangle avec OpenGL
    Par sidahmed dans le forum OpenGL
    Réponses: 5
    Dernier message: 18/03/2006, 21h50
  5. Afficher une image avec opengl
    Par kmaniche dans le forum OpenGL
    Réponses: 4
    Dernier message: 07/02/2006, 09h04

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