Sujets de TP en OpenGL
On ne présente ici que très rapidement l'idée des sujets. Demandez des détails si besoin. Certains outils permettent de largement simplifier la tâche : bien se renseigner avant de tout recoder. Vous êtes libres d'adapter selon vos goûts ou de proposer tout autre chose. La difficulté n'est qu'indicative. Faites en premier lieu une application très modeste, que vous améliorerez si vous en avez le temps.
Illustration de fonctionnalités OpenGL
Fonctionnalités simples : GLMaterial, GLViewport.Fonctions de mélange : Test de la glBlendFunction.
Environment map : Affichage, génération.
Mipmapping : Création, MIN/MAG filter.
Texture Matrix : Projection de diapositives.
Display lists, vertex array : Création et affichage.
Stencil buffer : Ombres, miroir.
Stencil buffer : Loupe locale permettant d'afficher le wire frame.
Animation
Animation de particules : Utilisez le modèle déjà codé : rendu, réglages.Animation de squelette articulé : Hiérarchie de repères, positions clefs
Balle, Billard : Par modèle physique et/ou keyframes
Planétarium : Soleil, terre, lune : croissant de lune, saisons et caméra mobile
Modélisation procédurale
Génération d'un terrain : Champ de hauteurs, textures, lacs.Création d'arbres à partir d'un L-system : Puis ajout de textures, feuilles.
Génération de fractales : Sierpinsky, IFS.
Génération d'une ville infinie : Création au vol, carte procédurale, textures...
Modeleurs
Edition des attributs de vertex : Position, couleur, normale, sélection...Modeleur de surface de révolution : Courbe + axe = 3D. Déformations...
Surfaces splines : Affichage, modification des points de contrôle
De Casteljau en 3D : Affichage, modification des points de contrôle
Morphing entre deux modèles : morphing continu.
Edition des coordonnées de texture : Déplacement à la souris, exportation.
Déformation axiale : 1 ligne et sa déformation affectent tout le modèle.
Rendu
Afficheur de fonction 2D : Définition de la fonction, zoom....Textures : 1D : courbes de niveau. Texture matrix.
Rendu de terrain : Champ de hauteur.
Diagramme de Voronoï : À l'aide de cones et du ZBuffer.
Refaire un jeu : (affichage seulement !) Dames, échecs, tétris...
Manipulation d'images : Avec quad texturés : symétries, compositing.
Rendu par points : Placement, taille, transparence.
Rendu non photoréaliste : Silhouette ramesh, rendu cartoon
Économiseur d'écran : Effet de diffusion.
Hardware NVidia : Cube map, création de shaders.
Raytracer
Intersection rayon-sphère : Raytracer, plusieurs réflexionsIntersection rayon-triangle : Raytracer, plusieurs réflexions
Objets placés dans une grille : Objets de chaque cellule, hiérarchique.
Rayon dans une grille : Calculer les cellules intersectées
Rendu de terrain : Intersection de rayon avec un champ de hauteur
Raytracer avancé : Combiner les méthodes précédentes ! Voir le TP complet
Aide aux calculs géométriques
Octree : Visualisation et interactionOctree et Frustum : Calcul des cellules visibles
Ombrages sur un terrain : Voir cette page
Calcul et affichage de distance : Point, droite, triangle, polygone, bbox
Calcul et affichage d'intersections : Sphères, plans, BBox
Divers : BSP, enveloppe convexe, Voronoi incrémental