La synthèse 3D |
proposé par :
|
Descriptif |
L’informatique graphique connaît depuis quelques années un formidable essor. Popularisées par les jeux vidéo et l’industrie des effets spéciaux, les images de synthèses sont de plus en plus utilisées dans des domaines allant du divertissement, à l’art en passant par les simulations d’entraînement, la visualisation scientifique et l’aide à l’analyse (par exemple pour l’investigation d’hypothèses archéologiques). Même si les données en entrée sont toujours les mêmes (une description 3D des objets obtenus par acquisition automatique ou par modélisation manuelle) les algorithmes qui leurs sont appliqués sont de plus en plus variés: affichage dans différents styles (physiquement réaliste, stylisé), détection de collisions, analyse géométrique, etc. plusieurs de ces algorithmes étant souvent effectuées en parallèle au sein d’une même application. En outre, la complexité des modèles ne cesse de croître (environnements virtuels très grands, modèles très détaillés) et même si les capacités des ordinateurs et cartes spécialisées évoluent en conséquence, ces algorithmes doivent être sans-cesse optimisés pour tourner le plus rapidement possible.Notez par ailleurs que les techniques proposées dans ce module peuvent servir à la synthèse d’image 2D n’exploitant pas les effets de perspectives. |
Ressources |
Littérature d’initiation
Un mini-cours autour de la synthèse 3D et d’openGL est disponible ici. Comme point d’entrée en informatique graphique, il peut être intéressant de regarder le red book qui est un guide d’introduction à openGL. OpenGL est une API qui permet de communiquer avec la carte graphique pour créer des images sur l’écran. Comme sous-langage GLSL offre la possibilité d’écrire des petits programmes (shadeurs) qui sont exécutes sur la carte graphique et qui permet notamment de réaliser des images beaucoup plus convaincantes. Code OpenGL et les shadeurs peuvent être utilisé avec JAVA en utilisant la librairie: lwjgl. Plusieurs exemples et démos se retrouvent ici: potatoland
La création des images photo-réaliste n’est pas facile et il est nécessaire de simuler proprement les modèles physiques pour assurer une haute qualité. La lumière interagit avec les objets de la scène. Selon le matériel, cette interaction peut être très complexe et plusieurs modèles ont été proposé pour simuler les effets de matériaux. Ensuite la lumière rebondit des surfaces de la scène (par exemple un objet rouge proche d’un mur blanc va souvent réfléchir une tache rouge sur le mur). Cet éclairage s’appelle illumination globale. Un des grands problèmes est le calcul de la visibilité (des occultations) car la lumière renvoyé ne va pas atteindre directement des surfaces cachées de la source. Le même problème se pose au moment qu’on calcul les ombres dans une scène. En combinant tous ses effets (et encore plus…), on s’approche de la création d’une image réaliste. Un survey sur les modèles des matériaux est disponible ici: survey materiaux Une introduction à l’illumination global est disponible ici: introduction global illumination Un survey des techniques de calcul d’ombres est disponible ici: calcul d’ombres Un shader GLSL pour le calcul d’ombres à la ShadowMap: shader glsl
Pour obtenir un aspect artistique, un rendu réaliste n’est pas le meilleur choix. En NPR (non photorealistic rendering), le but est souvent de reproduire un style particulier (aquarel, crayons, …) ou d’inventer un nouveau style tout court. Souvent une image non-réaliste peut être plus facile à comprendre par un observateur et peut être jugé plus intéressant qu’une simple reproduction de la réalité. Ce domaine est très vaste et il y a des nombreux sujets différents qui font partie de cette catégorie. Un survey sur le NPR est disponible ici: cours NPR
Une partie très importante en informatique graphique est la création et la modification des données géométriques. En particulier, la déformation de modèles pour l’animation mais aussi pour la modélisation. INFOGRAPHIE Si vous êtes intéressé par la création de modèle (ou la converison en format lisible par votre application), essayez de télécharger Blender! C’est un logiciel très performant de l’infographie. Ce programme vous permet de créer, rendre et animer des scènes. Vous pouvez donc créer vos propres films 3D. Comme celui-ci: Big Buck Bunny
Pour charger un model 3DS en JAVA consultez: Model Loading (pour créer des 3DS dans Blender: export->3DS) Pour charger un model OBJ en JAVA consultez: OBJ Loader (pour créer des OBJ dans Blender: export->Wavefront OBJ) Un tutoriel vidéo est ici: Tutoriel ou pour la version précedente: Tutoriel <2.5 Il y a plusieurs ressources de modèles de haute qualité: aim@shape, inria gamma repository, or turbosquid.
Comme point d’entrée à la théorie derrière les coulisses est le cours Geometric Modeling Based on Polygonal Meshes |
Exemples d’utilisation du module |
|
Objectifs Pédagogiques |
|
Résultats attendus (A affiner selon vos besoins) |
|