Projet Infographie
2000-2001
Introduction
Le projet s'articule autour de la réalisation de
trois des sujets à choisir parmi les quatre possibles:
- (1) Mise en
évidence des fonctionnalités VRML au moyen d'exemples de fichiers VRML
- (2) Portage
d'application auxiliary vers GLUT
- (3) Développement d'applications OpenGL
illustrant les fonctionnalités de base de l'Informatique Graphique
- (4) Développement
d'un projet OpenGL personnel
Le projet est à réaliser en binôme. Il est à
rendre pour le Vendredi 20 Avril à 18h par courrier électronique à l'adresse nicolas.janey@univ-fcomte.fr. L'archive WinZip envoyée devra
porter le nom des deux membres du binôme et s'extraire dans un répertoire portant les
noms des deux membres. L'entête du courrier électronique devra contenir précisément la
chaîne "ProjetIG20002001" ainsi que les noms des deux membres du binôme.
L'archive WinZip devra contenir un fichier readme.htm où seront indiquées toutes les
informations que vous jugerez nécessaires à la bonne compréhension de votre travail.
L'archive WinZip ne devra contenir que les seuls fichiers strictement nécessaires et en
tout état de cause occuper moins de 1 Mo.
VRML
Ecrire quelques fichiers VRML illustrant au mieux
les fonctionnalités suivantes de VRML (une fonctionnalité par fichier):
- Separator
- Material
- DirectionalLight
- PointLight
- SpotLight
- PerspectiveCamera
- OrthographicCamera
- Texture2
- WWWInline
- WWWAnchor
Portage
Porter quatre (tirage au sort parmi les 78) des
applications suivantes de Auxiliary vers GLUt. Chaque application devra être portée sous
deux formes:
- portage vers un exécutable strictement équivalent
du point de vue de l'interface clavier,
- portage vers un exécutable intégrant les même
contrôles clavier, mais leurs adjoignant un équivalent utilisant
- la souris pour faire tourner la scène,
- les menus GLUt pour les autres contrôles.
Les fichiers sources à traiter sont les suivants:
- Algorithme\Exemples\BresenhamCercle.cpp
- Algorithme\Exemples\BresenhamSegment.cpp
- Algorithme\Exemples\clipping.cpp
- Algorithme\Exemples\SegmentEquation.cpp
- Lissage\Exemples\BezierFormule.cpp
- Lissage\Exemples\Bicubique.cpp
- Lissage\Exemples\BSpline.cpp
- Modelisation\Exemple\Modelisation.cpp
- OpenGL\Exemples\BoulesRebondissantes.cpp
- OpenGL\Exemples\BrasRobot.cpp
- OpenGL\Exemples\CarreCouleur.cpp
- OpenGL\Exemples\CourbeBezier.cpp
- OpenGL\Exemples\Decoupage.cpp
- OpenGL\Exemples\EliminationPartiesCachees.cpp
- OpenGL\Exemples\EnsembleFacettes.cpp
- OpenGL\Exemples\ExemplesTextures2.cpp
- OpenGL\Exemples\FlatEtSmooth.cpp
- OpenGL\Exemples\font.cpp
- OpenGL\Exemples\Font2.cpp
- OpenGL\Exemples\Idle.cpp
- OpenGL\Exemples\ListeAffichage.cpp
- OpenGL\Exemples\ListeAffichage2.cpp
- OpenGL\Exemples\Lumieres.cpp
- OpenGL\Exemples\MaillageBezier.cpp
- OpenGL\Exemples\mouse.cpp
- OpenGL\Exemples\NormalesMoyennes.cpp
- OpenGL\Exemples\Nurbs.cpp
- OpenGL\Exemples\ObjetsAuxiliary.cpp
- OpenGL\Exemples\Primitives.cpp
- OpenGL\Exemples\ProblemeGouraud.cpp
- OpenGL\Exemples\Projections.cpp
- OpenGL\Exemples\reshape.cpp
- OpenGL\Exemples\Sauvegarde.cpp
- OpenGL\Exemples\SphereBlanche.cpp
- OpenGL\Exemples\SphereSpeculaire.cpp
- OpenGL\Exemples\Spots.cpp
- OpenGL\Exemples\stipple.cpp
- OpenGL\Exemples\SurfaceBezier.cpp
- OpenGL\Exemples\Survol.cpp
- OpenGL\Exemples\TerreLune.cpp
- OpenGL\Exemples\TextSurfBezier.cpp
- OpenGL\Exemples\Texture1.cpp
- OpenGL\Exemples\viewport.cpp
- OpenGL\Exemples\Visualisation.cpp
- Physique\Exemples\Composantes.cpp
- Physique\Exemples\LumiereSpeculaire.cpp
- Physique\Exemples\NormalesMoyennes.cpp
- Physique\Exemples\ProblemeGouraud.cpp
- Physique\Exemples\Transparences.cpp
- RayTracing\Exemples\BoitesEnglobantes.cpp
- RayTracing\Exemples\LigneVoxels.cpp
- RayTracing\Exemples\ModuleFont.cpp
- RayTracing\Exemples\RayTracing.cpp
- RayTracing\Exemples\Secondaires.cpp
- RayTracing\Exemples\Voxels.cpp
- Td-Tp\Executables\TD-Clipping.cpp
- Td-Tp\Executables\TD-Cylindre.cpp
- Td-Tp\Executables\TD-CylindreEtCone.cpp
- Td-Tp\Executables\TD-EllipsoideAnime.cpp
- Td-Tp\Executables\TD-EllipsoideAnime2.cpp
- Td-Tp\Executables\TD-Minilangage-Cubes.cpp
- Td-Tp\Executables\TD-Minilangage-Robot.cpp
- Td-Tp\Executables\TD-PlacementCylindreEtCone.cpp
- Td-Tp\Executables\TD-SpheresAnimees.cpp
- Td-Tp\Executables\TD-Temple.cpp
- Td-Tp\OpenGL\TD-Bezier-GL-Cercle.cpp
- Td-Tp\OpenGL\TD-Bezier-GL-Revolution.cpp
- Td-Tp\OpenGL\TD-Bezier-GL-Revolution2.cpp
- Td-Tp\OpenGL\TD-Bezier-GL-Tuyau.cpp
- Td-Tp\OpenGL\TD-Bezier-GL-Tuyau2.cpp
- Td-Tp\OpenGL\TD-Bezier-GL.cpp
- Textures\Exemples\ExemplesTextures.cpp
- Textures\Exemples\TextureMathematique.cpp
- ZBuffer\Exemples\RemplissageFacette2D.cpp
- ZBuffer\Exemples\RemplissageFacette3D.cpp
- ZBuffer\Exemples\ZBuffer.cpp
- ZBuffer\Exemples\ZBuffer2.cpp
- ZBuffer\Exemples\ZBuffer3.cpp
Informatique
Graphique
Ecrire les applications OpenGL + GLUt illustrant
l'un des affichages (tirage au sort) suivants:
- (1) Remplissage d'un polygone convexe et d'un polygone non convexe
- (2) Remplissage d'une forme délimitée par une couleur
particulière
- (3) Remplissage d'une forme de couleur unie
- (4) Ensemble de Julia-Fatou
- (5) Ensemble de Mandelbrot
- (6) Iterated
Function Systems
- (7) Notions mathématiques:
- produit
scalaire: deux vecteurs modifiables -> affichage de la valeur du produit scalaire
- produit
vectoriel: deux vecteurs modifiables -> affichage du vecteur produit vectoriel
- translation: une translation modifiable et un objet
-> affichage de l'objet transformé par translation
- rotation: une rotation modifiable et un objet ->
affichage de l'objet transformé par rotation
- zoom et affinités orthogonales: un
"scale" modifiable et un objet -> affichage de l'objet transformé par scale
- composition de matrices: deux transformations
modifiables à choisir parmi translation, rotation et scale et un objet -> affichage de
l'objet transformé par la composition de ces deux transformations
- (8) Application de transformations géométriques
aux objets canoniques pour placer, orienter et dimensionner les objets:
- trois transformations modifiables à choisir parmi
translation, rotation et scale et un objet -> affichage de l'objet transformé par la
composition de ces trois transformations
- (9) Les projections (programmation des schémas):
- (10) Utilisation du gluLookAt
- (11) Modéles d'illumination:
- (12) Radiosité
- (13) Bump
Mapping
- (14) Lecture et affichage d'une image au format RGB
+ Filtrage matriciel
- (15) Lecture et affichage d'une image au format RGB
+ Filtrage spectral
Créativité
Choisir et développer une application OpenGL
illustrant les possibilités de cette bibliothéque. La notation sera réalisée sur la
créativité, l'originalité, la lisibilité du code source et la "technicité"
OpenGL.
Questions, remarques, erreurs
nicolas.janey@univ-fcomte.fr