Sujets de TP en OpenGL

Retour à la page principale

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éflexions
  Intersection 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 interaction
  Octree 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