L'objectif du cours « Informatique Graphique » est de donner les bases de la réalisation de scènes graphiques interactives en 3 dimensions. Après avoir révisé les notions de mathématique et géométrie, nous abordons les notions importantes de l'informatique graphique : modélisation, rendu et animation. Nous détaillons les points suivant : pipeline de rendu; représentation des maillages ; pile de transformation ; modélisation par carte d'élévation, révolution ou extrusion; éclairement ; textures; et première notion d’animation. Ces points sont abordés en cours/TD et en TP à travers la réalisation d’un monde virtuel inspirés du domaine du jeu vidéo ou de l'architecture.
Emploi du temps
Evaluation
Une ou des interrogations en TD avec pour objectif de vous préparer aux TP
Un CCF de 1h/1h30 à la fin du semestre. Objectif : évaluez votre compréhension finale de la matière.
Les TPs sont notés (appréciations d'avancement à chaque séance + une interro spécifique TP + une note finale). Rappel : la présence en TD et TP est obligatoire.
Cours
Téléchargement des PDF ici
Introduction
Outils mathématiques : vecteur, matrice.
Rendu : rendu projectif, élimination des parties cachées
Plans, polygones, maillage
Transformation : Pile de matrice
Modèle d'illumination (ambient, diffus et spéculaire)
Modélisation : révolution, extrusion, carte de hauteurs
Texture, transparence
Animation
TD 1, 2, et 3 :
Affichage des formes de bases
Affichage d'un objet constitué de formes de base (avion, fusée) : pile de matrices
Affichage d'un terrain avec ses normales
Affichage de billboard
Affichage d'une cubemap
TP
3 TP de 2 séances (6 séances de 3h en tout) sous LINUX.
Le code de départ se récupère avec Mercurial/HG comme ceci:
hg clone https://forge.univ-lyon1.fr/hg/gkit2light -b l2_lifgfx
Il est possible que la forge vous fasse une erreur de certificat. Dans ce cas :
gedit ~/.hgrc
et ajouter ceci dans le fichier
[hostfingerprints]
forge.univ-lyon1.fr = A0:3C:B0:22:EE:72:36:83:A0:C2:EC:39:C8:DB:A5:AF:6C:05:D0:27
[ui]
username = votre_numéro_étudiant avec p12233445
[auth]
forge.univ-lyon1.fr.prefix = forge.univ-lyon1.fr
forge.univ-lyon1.fr.username = votre_numéro_étudiant avec p1234567
Si vraiment la forge ne marche pas, voici un zip.
Pour compiler sous Linux avec codeblocks
cd gkit2light
premake/premake4.linux codeblocks
ouvrir le projet l2_lifgfx.cbp
Pour compiler sous Linux avec make
cd gkit2light
premake/premake4.linux gmake
make -f l2_lifgfx.make
bin/l2_lifgfx
Pour compiler sous Linux de chez vous (ubuntu)
Pour compiler sous windows chez vous avec CodeBlocks
-
-
Explorateur de fichier, placez vous dans le répertoire de vos fichiers, bouton droit menu 'TortoiseHG puis export', puis entrez le chemin HG indiqué plus haut commençant par https …
-
Vous devez aussi copier toutes les .dll du répertoire extern/mingw/lib dans gkit2light/bin (répertoire des exécutables), sinon vous aurez des erreurs à l’exécution des programmes
Lancez le script gkitlight/premake/premake.bat qui va créer les projets makefile/codeblocks dans le répertoire gkitlight
Ouvrez le projet gkitlight/l2_lifgfx.cbp
Remarque : le code exporté avec HG contient une version compilée des librairies (SDL2, glew, etc.) pour windows donc rien à installer
gKitLight la doc
Quelques explications sur le code
'h' pour l'aide
'a'=affiche/enlève les axes; 'g'=affiche/enlève la grille;
souris bouton gauche= rotation du monde
souris bouton droit et translation horizontale : pour zoomer
Votre code prendra place dans le module src/l2_lifgfx/Viewer.h .cpp
3 TP de 2 séances
TP1
Affichez un cylindre, un cône et une sphère de taille unitaire, centrés sur l'origine et avec leurs normales;
Avec la multiplication des matrices, assemblez ces formes de bases pour afficher une fusée ou un avion ou une voiture.
TP2
TP3
Affichez un cubemap autour du terrain
Affichez le véhicule du TP1 en mouvement au dessus du terrain du TP2. Le véhicule suit une courbe que vous pouvez afficher en appuyant sur 'z'. Regardez l'exemple de code dans le Animation.h
Livres et tutoriaux
Introduction to Computer Graphics,James D. Foley, Andries van Dam, Steven K. Feiner, John F. Hughes, Richard L. Phillips. ISBN 0201609215
Version francaise : Introduction à l'infographie. ISBN 2711786722
3D Computer Graphics. Alan H. Watt. ISBN 0201398559