Académique Documents
Professionnel Documents
Culture Documents
Ce cours présente les fondements de l’informatique graphique 3D et ses applications en réalité virtuelle.
Réalité virtuelle :
● La réalité virtuelle est une simulation informatique interactive immersive, visuelle, sonore et/ou haptique,
d’environnements réels ou imaginaires.
● La finalité de la réalité virtuelle est de permettre à une personne (ou à plusieurs) une activité sensori-motrice et cognitive
dans un monde artificiel, créé numériquement, qui peut être imaginaire, symbolique ou une simulation de certains
aspects du monde réel.
● Parmi les précurseurs de cette technique :
❖ Ivan Sutherland, qui a conçu en 1968-70 l'Ultimate Display, premier casque de visualisation asservi aux
mouvements de la tête.
❖ Thomas Furness (US Air Force) qui a dirigé à partir de 1977 le programme Visually-Coupled Airbone Systems
Simulator (VCASS) sur les cockpits virtuels.
❖ Frederick Brooks (Université Duke en Caroline du Nord) qui, à partir de 1967, a développé un bras à retour d'effort
(haptique) pour environnements virtuels.
❖ Myron W. Krueger, inventeur pendant la décennie 1975-85 de la « réalité artificielle (en) » permettant d'interagir
en temps réel avec des images infographiques sur écran.
❖ Mais l'histoire de la RV (réalité virtuelle) proprement dite commence lorsque Michael McGreevy (Ames Research
Center en Californie) lance, en 1984, le programme VIVED ou Virtual Visual Environment Display destiné à offrir
aux astronautes un nouvel outil d'affichage d'informations et de données pour leurs futures missions spatiales.
● Principales interfaces visuelles :
❖ Workbench
❖ Salle immersive sphérique ou cubique
❖ Écran stéréoscopique, avec ou sans la tête traquée de l'observateur
❖ Les casques de réalité virtuelle
Informatique graphique :
L'informatique graphique combine modèles mathématiques, simulation visuelle temps-réel, apprentissage automatique,
et interaction intuitive, pour nous permettre de donner vie à des mondes virtuels animés.
Réalité augmentée
La réalité augmentée est la superposition de la réalité et d'éléments (sons, images 2D, 3D, vidéos, etc.) calculés par un
système informatique en temps réel. Elle désigne souvent les différentes méthodes qui permettent d'incruster de façon
réaliste des objets virtuels dans une séquence d'images.
B. Maillages Polygonaux
● Un polygone est un n-uplet de sommets. Exemples : triangle, quadrangle, pentagone, . . .
● La plupart des maillages sont triangulaires ou quadrangulaires.
● Un maillage est la discrétisation spatiale d'un milieu continu, ou aussi, une modélisation géométrique d’un domaine par
des éléments proportionnés finis et bien définis. L'objet d'un maillage est de procéder à une simplification d'un système
par un modèle représentant ce système et, éventuellement, son environnement (le milieu), dans l'optique de simulations
de calculs ou de représentations graphiques.
● Un maillage polygonal :Collection de sommets, d’arêtes, et de faces définissant la forme d’un objet polyédral.
C. Surfaces paramétriques
● Surface lisse ?
Formellement, c'est une surface de continuité Ck avec k > 0 Besoin d'une représentation spécifique. Exemples : formes
organiques (visage) / surface d'un liquide / carrosserie d'une voiture / courbe (dessin vectoriel).
Contrôle :
➢ Paramètres de contrôle d'une surface/courbe lisse :
❖ faible nombre
❖ intuitifs
❖ graphiques/visualisables
➢ Idée :
❖ utiliser un réseau de points de contrôle.
❖ un polygone pour manipuler une courbe lisse
❖ une grille pour manipuler une surface lisse
❖ paramétrer la surface lisse sur le réseau de contrôle ⇒ Spline
Réseau de contrôle : un ensemble réduit de points 2D ou 3D pour piloter une courbe ou une surface spline.
● Spline :
Une spline est une fonction définie par morceaux par des polynômes. Les splines sont utilisées pour représenter
numériquement des contours complexes. Leur mise en œuvre est simple. Elles sont fréquemment employées dans les
logiciels de dessin ou de conception graphique ; leur usage y a été généralisé par Pierre Bézier avec les B-splines.
● Courbes de Bézier :
Les courbes de Bézier sont des courbes polynomiales paramétriques
développées pour concevoir des pièces de carrosserie d'automobiles
avec des splines. Une courbe de Bézier revient à réaliser une sorte de
moyenne pondérée d’une suite de segments contigus, bornés par les
points de contrôle.
➢ Algorithme de Casteljau :
Cet algorithme permet d'évaluer une courbe spline sans la calculer explicitement. Il consiste à parti
du premier segment et à se déplacer d'un pas constant vers le dernier segment. On voit alors
apparaître la courbe. Plus le pas est petit, plus l'approximation est fine.
➢ TP :
on prend n=3 → courbe de Bézier cubique
● B-Spline :
En mathématiques, une B-spline est une combinaison linéaire de splines positives à support compact minimal.
Les B-splines sont la généralisation des courbes de Bézier, elles peuvent être à leur tour généralisées par les
NURBS.
➢ Relation en Bézier et B-Spline :
❖ La courbe de bézier associée à (n+1) points de contrôle est la courbe B-spline de degré n avec comme noeuds les points
: t0 = t1 = … = tn = 0 et tn+1 = tn+2 = … = t2n+1 = 1
❖ Contrairement à une courbe de Bézier, une B-spline ne passe par aucun de ses points de contrôle.
E. Surfaces implicites
● Une surface implicite est la surface de niveau d'une fonction différentiable f définie sur un ouvert de R3
● Inconvénients :
➢ on ne peut pas en général itérer sur les points de la surface
➢ on peut seulement tester si un point est à l'intérieur, sur la surface ou à l'extérieur de l'objet
➢ pas directement visualisable
➢ topologie de surface contrainte : pas de bords ni de trous sur la surface
● Avantages : Volumes consistants :
➢ opérations booléennes triviales (∪,∩, r)
➢ test de collision trivial
➢ surfaces lisses topologie du volume arbitraire (ex : genre de la surface)
La surfelisation :
➔ La représentation par surfels est en fait une grille 3D où des cellules stockent des surfels. Les données
nécessaires pour le rendu d’un surfel sont :
– La position du surfel (donnée implicitement par des coordonnées de la cellule).
– L'orientation du surfel (un vecteur normal quantifié).
– Les propriétés optiques du surfel (une couleur ou une indice dans une table qui stocke de différents
matériaux)
➔ La surfelisation (conversion d’un modèle géométrique en sa représentation par surfels) est tout simplement un
processus de rasterisation (ou échantillonnage) qui extrait des informations nécessaires et les stocke dans les
cellules de la grille. Nous proposons ici deux algorithmes de surfelisation :
– Version polygonale de notre scène test : algorithme purement logiciel qui met en œuvre un
échantillonnage analytique avec une résolution donnée.
– Version fil de fer de notre scène test : tente d’utiliser au maximum le hardware pour accélérer la
surfelisation. Son principe est l’utilisation de Z-buffer matériel pour obtenir les informations dont on a
besoin.
Avantages Inconvénients
Vrai / Faux :
- L’infographie est l’utilisation des images pour représenter des traitements numériques : vrai
- La finalité de l’étape de rendu est un objet avec son apparence extérieure : vrai
- La modélisation 3D polygonal est une modélisation additive : faux
➢ Synthèse d’images : produire une image à partir d’une description de la scène (image en output)
➢ Reconnaissance de formes : analyser une image pour en extraire des informations pertinentes (images en input)
➢ Traitement d’images : images en input et en output
➢ Conversion de modèles (géométriques) : convertir un modèle en un autre. inputs et outputs sont des scènes (voir
définition de la scène dans la partie qui suit -> )
2. Synthèse d’images
Domaines d’application :
CAO et CFAO, Dessins animés, télévision, pub, architecture, médecine (imagerie médicale), biologie (modélisation
moléculaire), pédagogie, simulation, cartographie, jeux vidéos.
Questions /Réponses :
● Les classes d'algorithmes de visibilité existants :
❖ Algorithmes en espace image
❖ Algorithmes en espace objet
L'algorithme du tampon de profondeur fait partie des algorithmes en espace image, tandis que celui
du peintre fait partie des algorithmes en espace objet.
3. Introduction à l’animation
A. Les animations
● Animation = succession rapide d’images (qui peuvent être de synthèse) chacune différant un peu de la précédente →
impression de mouvement au niveau du cerveau
● Modélisation de l’animation 2D ou 3D selon le modèle géométrique utilisé pour les images
● Pour animer des images, on calcule, à partir d’une scène donnée, des images différentes résultant de la modification de
certains paramètres de la scène.
● En plus de la scène représentée par un modèle 2D/3D le logiciel d’animation modélise aussi le mouvement (trajectoire)
● Par exemple en 2D : on peut modéliser le mouvement d’un objet en définissant la trajectoire par une courbe de bézier. Le
logiciel, qui possède les coordonnées de l’obj, appliquera les opérateurs math. (translation/rotation) pour calculer ses
différentes positions et générer les images correspondantes reproduisant le mouvement
● La même chose peut se faire en 3D.
● La définition des trajectoires n’est pas simple à réaliser, surtout en 3D.
● Il existe des outils (matériels+logiciels) pour récupérer des trajectoires à partir de mouvements naturels d'acteurs réels.
Ces modèles de trajectoire sont ensuite associés à des acteurs/objets virtuels.
○ si les images-clés sont sous forme de matrices de points (pas de modèle géométrique) : technique du Morphing
pour l’animation.
○ [Morphing] définir des points particuliers sur deux images clés et établir la correspondance entre ces points. D'un
point à un autre le logiciel effectue une interpolation linéaire de la couleur.
● Il existe des moyens de description de mouvement basés sur les causes du mouvement. exemple: simulation des lois de
la mécanique appliquées aux solides, cinématique, comportement de tissus sous l’effet de la pesanteur, du vent, etc.
C. Animation et contraintes
● Si des contraintes ont été définies pour un système (mécanisme) et qu'elles réduisent les degrés de liberté à 1, la
variation d’un seul paramètre détermine tous les autres → Il devient facile de produire une animation en ne faisant varier
qu’un seul paramètre.
[Cinématique inverse]
● Comme les divers paramètres sont reliés par des contraintes, il est possible de définir un état final et de reconstruire les
différentes étapes qui y conduisent.
● Si le système est sous-contraint, il n’y a pas forcément une unique solution
● Le système doit alors permettre de choisir une solution parmi les possibles, en ajoutant des
● contraintes choisies par l’utilisateur.
C'est quoi le RV ?
Elle renvoie typiquement à une technologie informatique qui simule la présence physique d'un utilisateur dans un
environnement artificiellement généré par des logiciels ,pour créer des réalités synthétisées, partageables par plusieurs
personnes, que nous pourrions appréhender par les cinq sens et avec lesquelles nous pouvons interagir, le tout par
l’intermédiaire d’artefacts informatisés.
● Immersion : l’exposition d’un utilisateur à un environnement virtuel au moyen de dispositifs occultant tout ou partie du monde
réel, pour afficher en lieu et place un monde simulé numériquement.
● Autonomie : RV, la notion d’autonomie est liée aux différentes composantes de l’environnement virtuel. L’utilisateur fait partie
de ces composantes et il est considéré comme l’entité la plus active de cet espace.
● L’interaction : un langage de communication entre l’homme et la machine.
Nous présentons les quatre tâches d’interaction 3D qui constituent la classification moderne ainsi que les techniques associées à
chacune d’elles:
1. La navigation désigne l’ensemble des méthodes qui permettent de connaître la position d’un objet par rapport à un
système de référence, ou par rapport à un point fixe déterminé.
les facteurs à prendre en considération dans la conception de toute technique de navigation sont :La vitesse de
déplacement – La précision d’exécution– La conscience spatiale orientation dans l’environnement virtuel pendant et
après la navigation– La facilité d’apprentissage – La facilité d’utilisation – La capacité de l’utilisateur à collecter des
informations sur l’environnement pendant le voyage – La présence virtuelle – Le confort de l’utilisateur.
A- Nav libre :
Dans la plupart des cas d’étude sur l’interaction 3D, le concept utilisé pour le développement de nouvelles
techniques est inspiré de l’interaction de l’être humain avec son environnement réel. Par exemple, marcher est le
moyen le plus naturel et le plus utilisé pour se déplacer d’un endroit à un autre dans la vie quotidienne.
Bowman et associés classent les différentes techniques de navigation selon les trois tâches de base du
déplacement : le choix de la direction , la vitesse de déplacement , déplacement du point de vue
2. La sélection : représente la désignation d’un objet ou d’un ensemble d’objets afin d’accomplir un objectif donné au
sein de l’environnement virtuel
3. La manipulation:La navigation ou la sélection sont des tâches qui permettent à l’homme d’avoir l’illusion d’habiter
un monde virtuel, de voyager au sein de celui-ci et même d'atteindre et toucher les objets appartenant à ce dernier. Il
y a 2 types de manipulation:la manipulation directe ( l’utilisateur agit directement sur l’objet appartenant à
l’environnement virtuel) et la manipulation indirecte(quelle l’utilisateur agit sur les composantes du monde virtuel par
l’intermédiaire d’entités graphiques (boutons, menus 3D) ou matérielles)
1 .la classification par décomposition en tâche : elle sert à structurer l’espace de conception et de modélisation des techniques
d’interaction afin qu’on puisse mettre en place de nouvelles techniques d’interaction en utilisant les composants déjà existants.
2. la classification par métaphore : La plupart des techniques d’interaction 3D courantes sont basées sur quelques métaphores de
base ou une combinaison de ces métaphores. Chaque métaphore forme le modèle fondamentale d’une technique d’interaction.
2.Les techniques excentriques: l’utilisateur interagit avec l’environnement 3D de l’extérieur de celui-ci. Dans ce cas, l’utilisateur est
considéré comme un acteur qui ne fait pas partie de la scène virtuelle, mais il a tout de même le pouvoir d’agir sur les entités du
monde virtuel.
3.Les techniques hybrides: Jusqu’ici nous avons évoqué des techniques de sélection et/ou de manipulation,
Cependant il existe d’autres types de techniques dites hybrides basées sur les deux métaphores.
Questions/Réponses :
1. L'interaction multimodale :
relève de la combinaison de plusieurs moyens de communication entre l'utilisateur et la machine, exemple : combinaison
des gestes et de la parole (« Mets-ça ici », accompagné d'un geste de désignation) et l'interaction à deux mains sur une
table interactive.
A. TP1 :
1-Les courbes de bézier ont été inventées vers la fin des années 1950 par un ingénieur des usines Renault nommé
Pierre Bézier. L’objectif était de tracer des courbes comme à main levée par l’ordinateur notamment pour tracer des
profils de carrosserie.
2- à la même époque un ingénieur de Citroën invente un algo de numérisation des ces courbes.
3-une autre application des ces courbes est la typographie et notamment les polices de caractères( polices
Postscript).L’intérêt est que ces courbes sont recalculées lors de chaque agrandissement ce qui évite le phénomène de
pixellisation
B. TP2 :
Un algorithme de rendu de scène 3D est un procédé permettant de passer d’une scène en trois dimensions à une
projection de cette scène sur un écran en deux dimensions afin de pouvoir la visualiser.
Une scène est un environnement (monde) comportant des objets (cube, sol, lumière…).
Le rendu d’une scène est une image en 2D de cette dernière par rapport à un point de vue (caméra).
Le z buffer : en français “tampon de profondeur”, est une méthode employée dans le cadre de l’affichage d’une scène 3D.
Sa fonction est de gérer le problème de la visibilité qui consiste à déterminer quels éléments de la scène doivent être
rendus, lesquels sont cachés par d’autres et dans quel ordre l’affichage des primitives doit se faire.
On donne à chaque pixel une coordonnée Z qui est stockée dans un tampon (buffer), et qui représente la profondeur du
pixel. Lors du rendu de l’image notre calculateur compare la profondeur des pixels ‘étant dans la même position x, y et
affiche le pixel dont la profondeur est la moindre.
L’algorithme de Z buffer intervient lorsqu’ on dessine nos scènes 3D en enregistrant les profondeurs des objets (z),
ensuite pour chaque pixel, s’il existe plus de deux objets qui se superposent il va prendre le moins profond pour éviter de
dessiner les mêmes points sur un même pixel. Cad il permet d'éliminer les points cachés.
Annexe
Algorithmes de visualisation (avec élimination des parties cachées) détaillés
○
○ pour un tel volume : une face est soit entièrement visible soit entièrement cachée
○ il suffit de parcourir l’ensemble des faces du volume en n’affichant que les faces orientée vers l’observateur
(test de l’orientation de la face : on utilise l’eqt du plan de la face ax+by+cz+d=0 et on remplace par le point
(x0,y0,z0) de l’obs pour voir de quel côté du plan il se trouve)
● Amélioration algo de Walkins : On peut réduire le coût de cet algorithme en tenant compte de la cohérence de la scène.
Le principe consiste à calculer le segment intersection du plan horizontal avec une facette à partir du segment trouvé sur la
ligne de balayage précédente
○
○ L’algorithme comporte deux phases :
■ création d’un arbre de priorité contenant toutes les facettes. Il y a une facette à chaque nœud. La racine de l’arbre est une
face quelconque prise comme face de référence. Pour un nœud quelconque, le sous arbre gauche contient les faces
contenues dans le demi-espace E1 de la face et son sous-arbre droit les faces contenues dans le demi-espace E2
■ affichage de l’arbre: L’affichage de l’arbre se fait ensuite en tenant compte de la position de l’observateur par rapport à
chaque nœud.Si l’observateur est dans le demi-espace E1 positif, on affiche d’abord les faces en arrière (sous-arbre droit),
puis la face contenue dans la racine de l’arbre et enfin les faces en avant (sous-arbre gauche).
○
○ si la facette de référence R se trouve devant toutes les autres facettes internes, il suffit de l’afficher sans tenir compte des
autres facettes internes.Si au contraire la facette de référence n’est pas devant toutes les autres, il faut prendre une autre
facette parmi les facettes internes qui ne sont pas situées derrière la facette R et recommencer le processus avec le
polygone de cette facette comme référence
● Algo de Catmull : utilise une technique de subdivision pour produire quatre morceaux à partir d’une surface et un tampon
de profondeur comme dans l’algorithme qui traite des facettes planes.
○ utilisé avec des surfaces paramétriques :
○
○ On traite séquentiellement la liste des morceaux de surface. Un tampon mémorise les informations de lumière et de
profondeur de chaque pixel. Pour chaque morceau deux situations se présentent :
■ le morceau S se projette sur un seul pixel P auquel cas si sa distance z est plus petite que celle mémorisée dans P, on
remplace l’information de luminosité et de profondeur stockée dans P par celles de S.
■ le morceau ne se projette pas sur un seul pixel auquel cas on le subdivise en plusieurs morceaux qui sont ajoutés dans la
liste à traiter.
■ Si les subdivisions font tendre vers zéro toutes les dimensions des morceaux de surface, chaque morceau fini par se
projeter sur un seul pixel et par conséquent, le processus finit par s’arrêter.
■ À la fin du traitement le tampon de profondeur renferme les informations lumineuses pour chaque pixel correspondant aux
morceaux de surfaces visibles.
● Algorithme de Griffiths Cet algorithme travaille avec des surfaces paramétriques et permet un affichage par lignes d’ombre
● Lancer de rayons L'algorithme de lancer de rayons permet pratiquement toutes les visualisations; SEUL inconvénient :
leeeeent
○ Contrairement au tampon de profondeur, on part des pixels de l’images pour aller vers la scène
○ Pour chaque pixel de l’image (ramené dans la fenêtre de projection de l’espace utilisateur) on détermine la demi-droite qui
joint l’œil de l’observateur avec le pixel.
○ On détermine les points d’intersection de cette demi-droite avec chacun des objets de la scène.
○ On classe ces points dans l’ordre de profondeur par rapport à la direction d’observation.
○ Le point le plus proche est affiché. Cette demi-droite est appelée rayon primaire.
○
○ Lumières et ombres : Pour déterminer la lumière reçue par le point que l’on souhaite afficher on va déterminer une ligne
secondaire qui part de la facette et rejoint la source lumineuse (rayon secondaire). et on refait la meme chose
○ on peut aussi de la meme manière déterminer la transparence et réflexion