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

Slides:



Advertisements
Présentations similaires
Z y x Repère des objets (repère de modélisation) x z y Repère du monde.
Advertisements

( Application Programming Interface)
Chaîne de Synthèse Réel Modélisation Rendu Image Fichier Scène
Hierarchical Z-Buffer Visibility
Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation.
Les erreurs types à ne pas commettre OpenGL Carina Portella Jean-Philippe Reynier DESS TNI – IDI Année
Couleur – Vision – Image partie 1 : comment l’œil fonctionne-t-il ?
à partir notamment du cours Siggraph 97 et d’autres ….
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
12 novembre 2012 Grégory Petit
1 Visualisation avec OpenGL Jérémie Allard 4 Novembre 2002.
Programmation des logiciels infographiques interactifs 2D et 3D, et le OpenGL.
Réalisation dun travail concret avec des matrices Afficher un objet 3D sur une surface Lui appliqué des transformations Le voir se transformer suivant.
: BOUCHRA AIT BRAHIM BOUCHRA OUJ NAIMA FADIL FOUZYA BN ALLAM OMAR IFZI
Images de Synthèse Animées
Module SIG-Santé 6. Géoréférencement Marc SOURIS Florent DEMORAES
Initiation à 3D Studio Max
Programmation graphique
Création d’un programme :
GRAPHISME PAR ORDINATEUR
IFT3730: Infographie 3D Transformations Géométriques
1 Transformations affines But: fixer le positionnement et lorientation des objets de la scène.
NIKA_2012_v7 avec surdimentionnement optique antiparasite Vue de profil Enveloppe virtuelle anti diffractions parasite (aucun objet 300K ne doit se trouver.
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.
CSS.
Transformation linéaires
Modélisation géométrique à l’aide d’un maillage
Images synthètiques de haute qualité
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
Application de texture en OpenGL
Découpage des objets selon le volume de vue
Techniques de points de contrôle en OpenGL : formes de Bézier
IFT3355: Infographie Transformations Géométriques
Représentation et traitement des images en OpenGL
PROTOTYPE D’UN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL
Listes d’affichage.
Géométrie épipolaire (deux vues)
Modélisation Géométrique et Synthèse d’image Sandrine LANQUETIN Marc NEVEU 1.
Création en images de Synthèse Modèles de rendu d’une scène 3D
P O V est l'acronyme de Persistence Of Vision appelé aussi Pov-Ray pour Persistence Of Vision Ray-Tracer.
 Objet window, la fenêtre du navigateur
GRAPHISME PAR ORDINATEUR
IUT SRC Année 2004/2005Antonio Capobianco 1 HTML>Formater du texte>Les titres Définir les titres HTML distingue 6 niveaux de titre : Titre N°1 Titre N°2.
1 Déformation Bi-manuelle en Réalité Virtuelle Encadrants : Antonio Capobianco, Jérôme Grosjean Étudiants : Michaël Kolomytzeff, Manuel Veit.
POWERPOINT.
© Christine Garcia Cours Power Point LP GESS
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.
Initiation au JavaScript
lignes de C/C++, portable
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.
AJOUTER UNE BORDURE BLANCHE © 2010 Frederic DAVID.
Synthèse d’images Introduction Doc. non diffusé En cours d’élaboration.
Architecture et Fonctionnement d’un GPU Géométrie Rendu.
Introduction à la programmation graphique
Adobe Illustrator Création vectorielle.
GRAPHISME PAR ORDINATEUR
Éclairage, ombrage Fiat lux !.
Introduction aux technologies du jeux-vidéo Steve Gury
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 10 Textures –Définir la texture –Superposition d’une texture sur une surface plane –Superposition.
Premières notions de la 3D
1 Présentation de DREAMWEAVER (1) Gaël TREMEAU GI05 Printemps 2006.
FLASH MX 1ère Séance. Introduction Création d’animation pour le Web, pouvant contenir une forte interactivité. Faible poids des fichiers. Compatible avec.
Guillaume MICHAUD – Yvan LECOMTE
FLASH MX : séance 1 Vivien FILIPPINI Jeanne VERRE Exposé SI28.
Flash MX er Séance LIU Xinlei GI02.
Les Processeurs Graphiques Programmables
Transcription de la présentation:

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation Introduction à OpenGL Sébastien Kuntz Institut de Formation

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL 1.Buts 1.De la formation 2.De la séance 2. Introduction 1.Présentation 2.Origine 3.Composants 3.OpenGL 1.Bases 2.Machine à état 3.Transformations

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation Buts Buts de la formation –Comprendre ce quest OpenGL –Comprendre les mécanismes de rendu 3d –Savoir écrire un programme 3d –Acquérir des bases pour être autonome

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation Buts Buts de la séance –Comprendre ce quOpenGL peut faire pour vous –Connaître les différents composants –Comprendre comment OpenGL gère la 3d

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL : Introduction / Présentation OpenGL : API de programmation 2D et 3D Standard dans l'industrie Crée par Silicon Graphics Developpé par lArchitecture Review Board Performance Souplesse Portabilité Evolutivité et Stabilité de lAPI Robustesse

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL : Introduction / Composants Primitives géometriques –Points, lignes et polygones Primitives dimage – Images – Pixels Le rendu de limage dépend de létat : –de la couleur –des materiaux –des sources lumineuses –etc..

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL : Introduction / Composants OpenGL crée les images Fenêtres et E/S sont spécifiques à un OS GLUT ( GL Utility ) : simple et portable SDL : Genre de DirectX Portable Api Windows, Api X OpenGL est bas niveau Haut niveau construit par dessus OpenSceneGraph, GLU, Performer..

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Les bases 1. Les bases Un exemple simple Syntaxe des fonctions Primitives Passons à la 3ème Dimension !

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Bases / Un exemple simple 1.Un exemple simple : Afficher un carré : #include main() { OpenAWindowPlease(); glClearColor(0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 1.0, 1.0); glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); glBegin(GL_POLYGON); glVertex2f(-0.5, -0.5); glVertex2f(-0.5, 0.5); glVertex2f(0.5, 0.5); glVertex2f(0.5, -0.5); glEnd(); KeepTheWindowOnTheScreenForAWhile(); } (OpenGL Red Book)

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Bases / Syntaxe Syntaxe des fonctions Draw() { // 3 flottants pour une couleur glColor3f(1.0, 0.0, 0.0); float color_array[] = {1.0, 0.0, 0.0}; // un vecteur de 3 flottants glColor3fv(color_array); // 2 entiers glVertex2i( 1, 3 ) // 3 doubles glVertex3d( , , 0.0 ); } Exemple :

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Bases / Syntaxe OpenGL est une machine à états –Choisir un état : glPointSize( size ); glColor3f( 1.0, 0.0, 0.0 ); glLight.. –Activer ou désactiver des propriétés : glEnable ( GL_LIGHTING ); glDisable ( GL_TEXTURE_2D ); L'affichage des primitives dépend de l'état courant de l'ensemble des attributs

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Bases / Axes & Repères Repérage dans lespace –OpenGL définit ses axes par rapport à lécran y x z

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Bases / Primitives OpenGL fournit des primitives d'affichage Lignes : Polygones Doivent etre simples : Pas convexes Sans trous' Sur un seul plan

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Bases / Primitives

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Bases / Primitives Comment utiliser ces primitives ? –la plus simple : glBegin / glEnd glBegin(GL_POLYGON); glVertex2f(0.0, 0.0); glVertex2f(0.0, 3.0); glVertex2f(3.0, 3.0); glVertex2f(4.0, 1.5); glVertex2f(3.0, 0.0); glEnd();

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Bases / Primitives Toutes les commandes ne sont pas valides dans glBegin/glEnd Commandes valides : –glVertex, glColor, glIndex*, glSecondaryColor, glNormal, glMaterial, glFogCoord, glTexCoord, glMultiTexCoord, glEdgeFlag, glArrayElement, glEvalCoord, glEvalPoint, glCallList*

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Bases / Couleurs glColor( R,G,B {,A} ) glBegin(GL_TRIANGLES); glColor3f(1.0f, 0.0f, 0.0f); glVertex3f(0.0f, 0.0, 0.0); //A glColor3f(0.0f, 1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 0.0f); //B glColor3f(0.0f, 0.0f, 1.0f); glVertex3f(1.0f, -1.0f, 0.0f); //C glEnd();

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Bases / 3D Passons à la 3ème dimension ! Un vertex, des vertices : un point en 3D Vecteur Normal Perpendiculaire à une surface Définit son orientation Une seule normale pour une surface plane Surface quelconque: une normale par point

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Bases / Normales Le rendu des lumières a besoin des normales Une normale par primitive ou par vertex : glNormal3f(x,y,z) Les normales DOIVENT etre unitaires - Sans normales -- Avec normales -

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Bases Afficher un cube glBegin(GL_QUADS); Pour chaque face : glColor3f(r,g,b); glNormal3f( Nx, Ny, Nz ); glVertex3f( x1, y1, z1); glVertex3f( x2, y2, z2); glVertex3f( x3, y3, z3); glVertex3f( x4, y4, z4); Fin : glEnd();

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGl / Bases / Display Lists les Display Lists (D.L) permettent de stocker les commandes OpenGL pour de meilleures performances GLuint list; void init( void ) { list = glGenLists(1); glNewList( list, GL_COMPILE ); glBegin(.. ); glVertex(.. ) ;... glEnd(); glEndList() } void display( void ) { glClear( GL_COLOR_BUFFER_BIT ); glCallList( list ); } –Une D.L. ne peut pas etre modifiée –Possibilité d'encapsuler plusieurs niveaux de D.L.

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGl / Bases / Display Lists Gluint glGenLists( Glsizei n ) –alloue n indices de D.L. –retourne le nb d'indices crées glNewList( Gluint list, Glenum mode ) –précise le début d'une D.L. –mode : GL_COMPILE, GL_COMPILE_AND_EXECUTE glEndList() glDeleteLists() glCallList( Gluint list )

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Plan –Fonctions de transformation –Exemple –Piles de matrices –Corrélation transformation / matrice –Comment afficher un point 3d sur un écran 2d ? –Opérations mathématiques –Opérations en OpenGL

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Fonctions de transformations Déplacer un objet : – glTranslate{fd}( x, y, z ) Tourner un objet autour dun axe – glRotate{fd}( angle, x, y, z ) angle en degrés ! Agrandir, retrécir ou inverser un objet: – glScale{fd}( x, y, z )

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Exemple glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslate(1.0,0.0,0.0); DrawSphere(); glTranslate(1.0,0.0,0.0); DrawCarre(); (0,0) (1,0) (2,0)

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Tout se passe comme si OpenGL change de repère On dessine les objets par rapport à ce nouveau repère: - effet dune translation -- effet dune rotation -- effet dun redimensionnement -

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformation Corrélation transformations / matrices –Chaque transformation peut être représentée par une matrice.

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations / Pile de matrices glPushMatrix, glPopMatrix –sauvegarde et restitue le repère courant glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef( 1,0,0 ); // sauvegarde la position actuelle glPushMatrix(); drawCube(); glTranslatef( 1,0,0 ); drawSphere(); // restitue la dernière //position sauvegardée glPopMatrix(); glTranslatef(0,1,0); drawTriangle(); Sauvegarde dans une pile (0,0) (1,0) (2,0) (0,1)

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Hiérarchie glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glPushMatrix(); glTranslate( x,y,z ); drawCorps(); glMultMatrix( transf_bras ); drawBras(); glMultMatrix( transf_avant_bras ); drawAvantBras(); glMultMatrix( transf_main ); drawMain(); glPopMatrix();

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Une matrice est associée au repère courant : –la matrice ModelView représente la transformation du repère original vers le repère courant Appliquer une transformation revient à multiplier la matrice courante par la matrice de la transformation : // on va modifier la matrice du repère glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef(1,0,0); glRotatef(90,1,0,0);

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations glTranslate, glRotate et glScale multiplient la matrice courante par la matrice associée à la transformation On peut créer une matrice à la main : – glLoadMatrixf(GLfloat* m); – glMultMatrixf(GLfloat* m); –!! Attention, les matrices sont stockées par colonne !! GLfloat m[16] = { a0, a1, …, a15 };

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Comment sont appliquées ces transformations? Calculer la position absolue dun vertex :

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Exemple de transformations –Translater un point : –Translater puis tourner un point : –Ce qui se traduit en OpenGl par : glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glRotatef(90,1,0,0); glTranslatef(1,0,0); draw_object();

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Deux façons de voir les transformations : –Dans lordre indiqué, la multiplication des matrices modifie un repère local Les objets sont dessinés dans le repère local Permet de mieux appréhender la hiérarchisation Chaque matrice est une « matrice de changement de repère » –Dans lordre opposé, la multiplication des matrices modifie la position, lorientation ou la taille dun objet Les objets sont dessinés dans un repère global fixe Le code est le même, il nya que la façon de le voir qui change

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Combiner transformations Ordre des transformations –Ordre critique ! Multiplication de matrices non commutatif glMatrixMode(GL_MODELVIEW); glLoadIdentity(); /* translation */ glTranslatef(1,0,0); /* rotation */ glRotatef(45,0,0,1); draw_the_object(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); /* rotation */ glRotatef(45,0,0,1); /* translation */ glTranslatef(1,0,0); draw_the_object();

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / 3d -> Ecran Comment transformer un point en 3d pour lafficher sur un écran 2d?

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Analogie avec un appareil photo –Positionner et orienter lappareil Viewing transformation –Placer les objets quon veut photographier Modeling transformation –Choisir une lentille et/ou ajuster le zoom Projection transformation –Choisir la taille de la photo développée Viewport transformation

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Analogie avec un appareil photo

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Opérations mathématiques : Chaque transformation correspond à un changement de repère Repère de lobjet Matrice de lobjet ( model matrix ) Repère du monde Matrice œil ( View matrix ) Repère de loeil ( caméra ) Matrice de Projection ( projection matrix ) Repère de lécran 2D

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Opérations en OpenGL : –La model matrix et la view matrix sont combinées: Bouger la camera est équivalent à bouger chaque objet dans lautre sens ModelView Matrix – glMatrixMode permet de choisir la matrice courante GL_PROJECTION, GL_MODELVIEW, GL_TEXTURE

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations / Projection La matrice de projection définit la forme du frustum Perspective projection –gluPerspective( FOVy, aspect, zNear, zFar ) –glFrustum( left, right, bottom, top, zNear, zFar ) Orthographic parallel projection –glOrtho( left, right, bottom, top, zNear, zFar) –gluOrtho2D( left, right, bottom, top )

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Préparer la scène : // On va choisir la matrice de projection glMatrixMode( GL_PROJECTION ); // et on la spécifie glOrtho( left, right, bottom, top, near, far ); ou glFrustum( left, right, bottom, top, near, far ); // On informe OpenGL quon va modifier la modelview matrix // et on choisit une transformation pour la caméra glMatrixMode( GL_MODELVIEW ); // On place la caméra gluLookAt() // On combine ici les transformations qui placent les objets dans le monde 3d // Pour combiner des transformations elles sont multipliées glMultMatrixf( modelMatrix ); // Les points içi sont dans le repère de lobjet (état original) // (model space) © Tim Hall

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Transformations Placer les objets // On va modifier la matrice ModelView glMatrixMode( GL_MODELVIEW ); // On charge la transformation de la caméra glLoadMatrixf( viewingMatrix ); // On fait une itération sur les modèles. // Pour chaque modèle on sauve la matrice courante // et on y applique la matrice du modèle // On dessine le modèle et on restaure la matrice sauvée for( model = firstModel; model != NULL; model = nextModel ) { glPushMatrix( ); // On combine la transformation de lobjet avec // la matrice de vue glMultMatrixf( model->modelMatrix ); // On affiche lobjet DrawModel( model ); // On restaure la matrice sauvée glPopMatrix( ); }

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL Questions? Commentaires?

Tous droits réservés. Reproduction intégrale ou partielle interdite sans autorisation écrite de la partdu titulaire des droits dauteur. Institut de Formation OpenGL / Links Liens utiles : –Site officiel –Tutoriaux Nehe.gamedev.net –Références : : le Red Bookhttp://fly.cc.fer.hr/~unreal/theredbook/ L-Man-Pages/opengl_index_spec.html : le Blue Bookhttp:// L-Man-Pages/opengl_index_spec.html