PROTOTYPE D’UN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL

Slides:



Advertisements
Présentations similaires
Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation.
Advertisements

Z y x Repère des objets (repère de modélisation) x z y Repère du monde.
( Application Programming Interface)
Développement logiciel sur micro-contrôleurs PIC en C
Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation.
PoBot – Club de Robotique de Sophia Antipolis – La vision sur un robot Afin de pouvoir se déplacer correctement et savoir où aller,
Transition image classique image numérique
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
1 Visualisation avec OpenGL Jérémie Allard 4 Novembre 2002.
Programmation des logiciels infographiques interactifs 2D et 3D, et le OpenGL.
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
Langage C :acquisition des connaissances sous forme de TP.
Algorithmes sur les images dans Excel
Programmation graphique
GRAPHISME PAR ORDINATEUR
1 Transformations affines But: fixer le positionnement et lorientation des objets de la scène.
Transformations de visualisation en OpenGL
SUJETS SPÉCIAUX EN INFORMATIQUE I PIF Contenu du cours Transformations géométriques des objets –Transformations 2D –Transformations entre systèmes.
Gestion des événements liés à la fenêtre et aux périphériques dentrée.
Réaliser un photomontage simple sur GIMP
Modélisation géométrique à l’aide d’un maillage
Images synthètiques de haute qualité
1 PROTOTYPE PGC++ Vecteur_3D DÉFINITION. 2 class Vecteur_3D { private : float vx, vy, vz, vw; // Représentation en coordonnées homogènes. public : Vecteur_3D();
IFT3730 : Infographie 3D Systèmes et modèles graphiques Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.
IFT2740 : Outils de l'infographie 3D Systèmes et modèles graphiques
OpenCV: Introduction au Traitement d’Images et Vidéo
8PRO100 Éléments de programmation Les types composés.
Formation Développeur Java Applet et interfaces graphiques avec AWT
Application de texture en OpenGL
Texture 2D en PGC++.
Découpage des objets selon le volume de vue
Techniques de points de contrôle en OpenGL : formes de Bézier
Représentation et traitement des images en OpenGL
Éclairage en OpenGL.
Faculté Polytechnique de Mons
Listes d’affichage.
(Vient du grec et signifie « Peut prendre plusieurs formes »)
Modélisation Géométrique et Synthèse d’image Sandrine LANQUETIN Marc NEVEU 1.
LES PILES ET FILES.
La notion de type revisitée en POO
GRAPHISME PAR ORDINATEUR
7ième Classe (Mardi, 24 novembre) CSI2572. Devoir 3 ?
Notions avancées du C++
Argc et argv Utilisation des paramètres de la ligne de commande.
Autres éléments du langage
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
GRAPHISME PAR ORDINATEUR
Tutorat en bio-informatique
Page d’accueil. Blanc cassé Indigo Vert Couleurs.
Les surcharges d'opérateurs
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
© Sofia ZAIDENBERGCNRS Mai Interfaces Graphiques Tracer une fonction y = f(x) avec JAVA 2D.
Chapitre VIII Découpage d’une scène selon une fenêtre donnée.
8PRO100 Éléments de programmation Les pointeurs de caractères.
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 10 Textures –Définir la texture –Superposition d’une texture sur une surface plane –Superposition.
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 6 Transformation et animation de plusieurs modèles 3D avec XNA –Chargement des modèles 3D (modèle.
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 8 Rendu de surfaces –Modèles de rendu de surfaces –Illumination de la scène –Sources lumineuses –Composante.
TUTORIAL PHOTOSHOP CS1/2 Par Onilink Spécialement créé pour Bereblue :3.
PS3_16 Project 3D Vision On Chip Implémentation VHDL de la «Census Transform» F. Bertrand.
DESIGN GRAPHIQUE A. DAAIF ENSET Université Hassan II
Architecture et Fonctionnement d’un GPU Géométrie Rendu.
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Introduction à la programmation graphique
Traitement d’images 420-D78-SW A15 Semaine 02.
Éclairage, ombrage Fiat lux !.
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 10 Textures –Définir la texture –Superposition d’une texture sur une surface plane –Superposition.
L’image Quelques repères sur l’image Quelques repères sur l’image.
L’outil Processing pour de la programmation créative
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
Transcription de la présentation:

PROTOTYPE D’UN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL #include <windows.h> #include <GL/gl.h> #include <GL/glu.h> #include <GL/glut.h> #include <GL/glaux.h> #include "Triangle_3D.h" #include "Couleur_RVB.h"   typedef enum {sommets, contour, surface} Mode_d_affichage; void Afficher(Triangle_3D T, Mode_d_affichage M, Couleur_RVB C);

void Initialisation(void) { /* Permet d'initialiser la couleur de fond RVB. Le 4ième paramètre permettra de fixer le niveau de transparence.*/   glClearColor(0.0, 0.0, 0.0, 0.0); /* Permet de fixer les 3 composantes réelles de la couleur d'affichage. Elle demeure inchangée tant que ses attributs ne sont pas modifiés. */ glColor3f(1.0, 0.0, 0.0); /* OpenGL possèdent 2 matrices, MODELVIEW et PROJECTION pour représenter respectivement les transformations ponctuelles et les transformations visuelles courantes. On opte ici pour la matrice de projection. */ glMatrixMode(GL_PROJECTION);

/* Permet d'initialiser la matrice de transformation courante soit, la matrice de projection dans ce cas-ci à la matrice identité. */   glLoadIdentity(); /* Permet de spécifier une projection orthographique où le volume de visionnement est un parallélépipède. La signification des paramètres est : gauche, droite, bas, haut, proche et loin. */ glOrtho(0.0, 800.0, 0.0, 500.0, -1.0, 1.0); /* La matrice de transformation courante devient la matrice de transformation visuelle. */ glMatrixMode(GL_MODELVIEW); }

void Affichage_Triangle( void ) {   Point_3D A(200, 100, 0); Point_3D B(100, 200, 0); Point_3D C(100, 100, 0);   Triangle_3D T1(A, B, C); A[1] += 100; A[2] += 100; B[1] += 100; B[2] += 100; C[1] += 100; C[2] += 100; Triangle_3D T2(A, B, C); C[1] += 100; C[2] += 100; Triangle_3D T3(A, B, C);   /* Permet d'effacer l'écran en utilisant la couleur de fond. */   glClear(GL_COLOR_BUFFER_BIT); Couleur_RVB C1(1, 0, 0); Afficher(T1, sommets, C1);   Couleur_RVB C2(0, 1, 0); Afficher(T2, contour, C2); Couleur_RVB C3(0, 0, 1); Afficher(T3, surface, C3);   /* Permet de s'assurer que l'exécution des primitives d'affichage est complétée. */   glFlush();  }

void main(int argc, char** argv) { /* Permet d'initialiser des paramètres de certains utilitaires d'OpenGL.   */ glutInit(&argc, argv);   /* Permet de fixer les modalités d'affichage à l'écran. Les couleurs seront spécifiées à partir de 3 composantes rouge, vert et bleu. */ glutInitDisplayMode (GLUT_RGB); /* Permet de fixer la dimension de la fenêtre à l'écran soit, 800 pixels de largeur par 500 de hauteur. */ glutInitWindowSize(800, 500); /* Permet de fixer la position du coin supérieur gauche de la fenêtre. */ glutInitWindowPosition(500, 100);

/* Permet de créer une fenêtre avec comme titre celui passé en paramètre. Les paramètres de cette fenêtre doivent avoir été fixés au préalable. */ glutCreateWindow("Affichage de triangles"); /* Nous devons placer dans la fonction en paramètre les primitives d'affichage; celle-ci sera exécutée quand la fenêtre est créée.   Cette fonction sera aussi appelée si le système de gestion des fenêtres détermine que la fenêtre d'OpenGL a besoin d'être réaffichée. */ glutDisplayFunc(Affichage_Triangle); /* Permet d'initialiser les paramètres de visionnement et les attributs d'OpenGL. */ Initialisation(); /* Permet de conserver l'image produite à l'écran. Le programme exécuté est mis en attente, l'image affichée à l'écran. */   glutMainLoop(); }

void Afficher(Triangle_3D T, Mode_d_affichage M, Couleur_RVB C) { glColor3f(C[1], C[2], C[3]);   if (M == sommets) { glBegin(GL_POINTS); glVertex3f(T[1][1], T[1][2], T[1][3]); glVertex3f(T[2][1], T[2][2], T[2][3]); glVertex3f(T[3][1], T[3][2], T[3][3]); glEnd(); } else if (M == contour) { glBegin(GL_LINE_LOOP); { glBegin(GL_POLYGON); }