Réalité Virtuelle et Interactions Introduction au Rendu 3D Année 2015-2016 / 5 Info à Polytech Paris-Sud Cédric Fleury (cedric.fleury@lri.fr)
Réalité Virtuelle Restitution visuelle des objets de l environnement virtuel 2
Visualisation d objets virtuels Image = { pixels } Rendu = associer à chaque pixel : Une couleur Une intensité lumineuse L intensité lumineuse dépend : Des sources lumineuses De la position de l observateur De la position des objets de la scène 3
Principales étapes du rendu Placer les objets dans le repère caméra : Simplifier les calculs Axe Z = axe des profondeurs Déterminer les objets se trouvant dans le champ de vision de la caméra (pyramide de vue) Utiliser des algorithmes pour déterminer les facettes visibles de chaque objet 4
Plan du cours Introduction au rendu 3D Projections Pyramide de vue et clipping Algorithmes de rendu Modèles d éclairage Placage de texture Remerciement à Thierry Duval (Université de Rennes 1) 5
Plan du cours Introduction au rendu 3D Projections Pyramide de vue et clipping Algorithmes de rendu Modèles d éclairage Placage de texture Remerciement à Thierry Duval (Université de Rennes 1) 6
Projections Afficher des modèles 3D sur une surface 2D Transformer les coordonnées 3D du modèle vers les coordonnées 2D des pixels 7
Projections Rendu de la scène 3D pour un observateur virtuel particulier (camera) Point de vue (isat) Direction de visée (lookat) Projection sur un plan particulier 8
Différents types de projections Projections parallèles Pas de rétrécissement des objets éloignés Plusieurs types de projections parallèles Isométrique, cavalière, Projections perspectives Les objects éloignés sont plus petits Plusieurs types Un, deux ou trois points de fuite 9
Projection parallèle 10
Projection perspective 11
Différents types de projections Projection parallèle Projection perspective 12
Plan du cours Introduction au rendu 3D Projections Pyramide de vue et clipping Algorithmes de rendu Modèles d éclairage Placage de texture Remerciement à Thierry Duval (Université de Rennes 1) 13
Pyramide de vue Modélise le champs de vision de l utilisateur Est constituée de 6 plans Yc plan de projection Zc Oc Xc plan avant (front plane) (near plane) plan arrière (back plane) (far plane) 14
Distance focale Distance focale plan de projection 15
Distance focale et ouverture Distance focale Défini la pyramide de vue pour un écran donné Paramètre peu intuitif : nécessite de connaitre la taille de l écran Ouverture de vue Paramètre plus simple lorsqu il n y a pas de head tracking (indépendant de la taille de l écran) Défini la largueur du champ visuel (field of view) Différent pour l horizontal et la verticale 16
Ouverture Angle d ouverture plan de projection vertical FOV 17
Pyramide de vue Pour le head tracking : déformation de la pyramide de vue En fonction de la position de l utilisateur On définit généralement : 4 coins de l écran et position de l utilisateur 18
Pyramide de vue et clipping Les objets visibles sont ceux qui se trouvent dans la pyramide de vue Les objets en partie dans la pyramide de vue sont coupés par un ou plusieurs des 6 plans Clipping = trouver les facettes situées dans la pyramide de vue Exemple : algorithme de Sutherland-Hogman Visibilité de chaque facette par un plan infini Appliquer 6 fois le traitement pour les 6 plans 19
Plan du cours Introduction au rendu 3D Projections Pyramide de vue et clipping Algorithmes de rendu Modèles d éclairage Placage de texture Remerciement à Thierry Duval (Université de Rennes 1) 20
Back Face Culling Eliminer tous les facettes qui ne sont pas tournés vers la camera Produit scalaire : direction de visée (lookat) * normale sortante de la facette < 0 : on garde la facette > 0 : on l élimine 21
Back Face Culling Economise 50% du temps de calcul du rendu En moyenne Faible coût de calcul pour chaque facette Algorithme rapide Etape préliminaire pour les autres algorithmes 22
Elimination des parties cachées Eliminer les facettes qui se trouvent cachées derrière d autres facettes 23
Elimination des parties cachées Deux types d algorithme : Basé image (chaque pixel de l image) Basé objets (chaque objet dans la scène) Quelques algorithmes particuliers : Z-Buffer Balayage en lignes Priorités sur les objets Subdivision du plan de projection de l image 24
Basé image Mémoire de profondeur Utilise un tableau pour stocker les profondeurs de chaque pixel Z-Buffer 25
Balayage en lignes Basé Image Traitement ligne par ligne dans l image Extension du Z-Buffer Stocke une table des arrêtes actives 26
Priorités sur les objets Basé objets Trier les objets en fonction de leur profondeur par rapport à la camera Afficher les objets en fonction de la profondeur (de l arrière vers l avant de la scène) Exemple : algorithme du peintre 27
Subdivision de l image Basé image Subdivision du plan de projection de l image Si on ne sait pas afficher simplement une zone on subdivise de façon récursive cette zone La diminution de la taille des zones entraîne une diminution des recouvrements Exemple : algorithme de Warnock 28
4 cas d arrêt de la subdivision Tous les objets sont disjoints de la zone (d) Couleur du fond Un seul objet sécant ou inscrit dans la zone (b ou c) Couleur du fond, puis couleur de l objet Un seul objet circonscrit (a) Couleur de l objet Un objet circonscrit placé devant les autres (a) Couleur de l objet Warnock 29
Stéréovision Consiste à calculer 2 images 2 caméras situées à gauche et à droite du point de vue de l utilisateur 2 calculs de clipping 2 calculs de rendu Association de chaque image à chaque œil 2 fois plus coûteux? Partager des calculs entre les 2 images? Dépend de l algorithme de rendu... 30
Plan du cours Introduction au rendu 3D Projections Pyramide de vue et clipping Algorithmes de rendu Modèles d éclairage Placage de texture Remerciement à Thierry Duval (Université de Rennes 1) 31
Modèle d éclairage Exprime l intensité lumineuse d un point Lumière ambiante que produit dans toutes les directions un éclairage uniforme Sources lumineuses qui sont à l origine : Réflexions diffuses et spéculaires Ombres portées Ir = Ia + Id + Is Ia : intensité ambiante Id : intensité diffuse Is : intensité spéculaire 32
Eclairage ambiant Chaque objet est montré avec une intensité intrinsèque : Pas de source extérieure Univers irréel d objets lumineux non réfléchissants 33
Réflexion diffuse Une partie de la lumière incidente pénètre dans l objet et ressort avec la même intensité dans toutes les directions 34
Réflexion spéculaire Réflexion par la surface de l objet de la lumière incidente qui n a pas pénétré dans l objet, dépend de la direction d observation 35
Lissage des facettes Il n est pas réaliste, pour une facette : De calculer l intensité lumineuse en chaque point (trop coûteux) D attribuer la même intensité à tous les points (effet de «facettisation) Il est plus judicieux : De calculer les intensités aux sommets de la facette De déduire l intensité de chaque point par une interpolation bilinéaire 36
Lissage des facettes 2 types de lissage : lissage de Gouraud : interpolation linéaire des couleurs des sommets (remplissage par balayage ligne par ligne) lissage de Phong : interpolation des normales des sommets (remplissage point par point) 37
Definition de la couleur Définition de la couleur d un objet dans les librairies graphiques 3D Couleur ambient (RGB) Couleur diffuse (RGB) Couleur spéculaire (RGB) Couleur emissive (RGB) Transparence (alpha) Brillance (value) etc. Généralement regroupé dans un «Material» 38
Ombres Synthèse d image avancée Illumination globale et lancer de rayon Rendu sous-surfacique 39
Plan du cours Introduction au rendu 3D Projections Pyramide de vue et clipping Algorithmes de rendu Modèles d éclairages Placage de texture Remerciement à Thierry Duval (Université de Rennes 1) 40
Placage de textures Texture : tableau 2D de triplets RVB Associer à chaque sommet d une facette des coordonnées dans l espace texture : espace de texture normalisé : (u, v), u et v variant de 0 à 1 y D v A (0,1) (1,1) C B x espace 3D (0,0) (1,0) espace texture u 41
Placage de textures Pour un pixel donné P : Les coordonnées texture de P sont obtenues par interpolation bilinéaires des coordonnées de texture des sommets ABCD y D v A P C B x espace 3D (0,1) (1,1) (0,0) (1,0) espace texture u 42