Plan du cours Cours 1 2 le pipeline

  • Slides: 64
Download presentation
Plan du cours • Cours 1, 2 : le pipeline graphique • Cours 3,

Plan du cours • Cours 1, 2 : le pipeline graphique • Cours 3, 4, 5 : rendu temps-réel – – Calcul des ombres Visibilité Niveaux de détails Image-based rendering • Cours 6 : illumination globale • Cours 7 : rendu non-photoréaliste 1

Temps réel Limiter le nombre de primitives à traiter • Traitement de l’environnement –

Temps réel Limiter le nombre de primitives à traiter • Traitement de l’environnement – dépend du point de vue (visibilité, culling) • Traitement géométrique – Level Of Detail 2

Niveaux de détails Plus on est loin d’un objet, moins on voit de détails

Niveaux de détails Plus on est loin d’un objet, moins on voit de détails Þ Gain de géométrie 69, 451 polys 2, 502 polys 251 polys 76 polys 3

Il y a de gros modèles : 700, 000 82 million 13 million 372,

Il y a de gros modèles : 700, 000 82 million 13 million 372, 422, 615 4

Principe • Calculer des niveaux de détail pour chaque objet de la scène :

Principe • Calculer des niveaux de détail pour chaque objet de la scène : pré-calcul • Lors du déplacement dans la scène choisir à chaque instant le bon niveau de détail et l’afficher • Découple rendu et simplification • Permet de prévoir les LOD pour un affichage rapide (ex : triangle stripe) 5

Problématique • Génération des LOD – Représentation, création – Comment évaluer la fidélité du

Problématique • Génération des LOD – Représentation, création – Comment évaluer la fidélité du modèle simplifié • Choix du niveau adapté au point de vue – Coût / Gain par rapport au frame rate • Problème des transitions – Éviter le “popping” – Mélange de deux niveaux successifs 6

Simplification de maillage 19. 000 faces 1. 000 faces 40 faces 7

Simplification de maillage 19. 000 faces 1. 000 faces 40 faces 7

Méthodes Contraction des arêtes Décimation des sommets Suppression des triangles 8 Conservation de la

Méthodes Contraction des arêtes Décimation des sommets Suppression des triangles 8 Conservation de la forme générale par la topologie; 7 2 9 3 4 8 A A 6 10 9 3 1 5 6 4 10 5 Comment évaluer l’erreur commise ? ? ? 8

Quelle primitive simplifier ? • Sans optimisation – Grille régulière • Avec optimisation –

Quelle primitive simplifier ? • Sans optimisation – Grille régulière • Avec optimisation – Calculer l’erreur commise pour chaque primitive • Distance, volume, perception • Reste toujours une approximation de l’erreur visuelle – Algorithme glouton : supprimer celle de moindre erreur et recalculer localement – Optimisation globale : recalculer globalement 9

Placement de la nouvelle primitive • Trouver la position qui minimise l’erreur – Sommet,

Placement de la nouvelle primitive • Trouver la position qui minimise l’erreur – Sommet, arête ou face – Trianguler, interpoler… – Eviter les repliements • Cas des bords ou arêtes vives – Adapter la mesure d’erreur – Adapter le placement 10

Choix du niveau de détail • Taille à l’écran • Temps de rendu •

Choix du niveau de détail • Taille à l’écran • Temps de rendu • LOD discrets ou continus ? – Transitions plus ou moins fluides – Structure de donnée plus ou moins complexe – Pré-calcul ou « online » 11

LOD dépendant du point de vue • LOD continus • Hiérarchie de groupes de

LOD dépendant du point de vue • LOD continus • Hiérarchie de groupes de sommets en précalcul • A l’exécution évolution des groupes selon le point de vue • Contraction des groupes trop petits permettant d’éliminer des triangles 12

Structures de données • Hiérarchie de sommets – Représente le modèle entier – Mise

Structures de données • Hiérarchie de sommets – Représente le modèle entier – Mise à jour de la scène à chaque image • Liste des triangles actifs – Représente la simplification courante – Liste des triangles à afficher – Triangles ajoutés ou détruits par des opérations sur l’arbre des sommets

La hiérarchie de sommets • Chaque noeud représente un sous-ensemble des sommets – Les

La hiérarchie de sommets • Chaque noeud représente un sous-ensemble des sommets – Les feuilles sont les sommets du modèle original – La racine représente tous les sommets • Pour chaque noeud on associe un sommet représentant ou proxy

L’arbre de sommets 8 7 2 8 Fold Node A A A 10 10

L’arbre de sommets 8 7 2 8 Fold Node A A A 10 10 6 9 9 3 1 4 6 3 Unfold Node A 5 4 5 15

Vertex Tree Example 8 7 R 2 D 10 9 6 3 10 1

Vertex Tree Example 8 7 R 2 D 10 9 6 3 10 1 A 1 4 E 2 B 7 4 5 C 6 8 3 9 5 Triangles in active list Vertex hierarchy 16

Vertex Tree Example 8 7 2 R A D 10 9 6 3 10

Vertex Tree Example 8 7 2 R A D 10 9 6 3 10 1 A 1 4 E 2 B 7 4 5 C 6 8 3 9 5 Triangles in active list Vertex hierarchy 17

Vertex Tree Example 8 R A D 10 9 6 3 10 A 1

Vertex Tree Example 8 R A D 10 9 6 3 10 A 1 4 E 2 B 7 4 5 C 6 8 3 9 5 Triangles in active list Vertex hierarchy 18

Vertex Tree Example 8 R A D 10 9 6 3 10 B 4

Vertex Tree Example 8 R A D 10 9 6 3 10 B 4 E A 1 2 B 7 4 5 C 6 8 3 9 5 Triangles in active list Vertex hierarchy 19

Vertex Tree Example 8 R A D 10 9 E 3 10 B Triangles

Vertex Tree Example 8 R A D 10 9 E 3 10 B Triangles in active list A 1 2 B 7 4 5 C 6 8 3 9 Vertex hierarchy 20

Vertex Tree Example 8 R A C 9 D 10 E 3 10 B

Vertex Tree Example 8 R A C 9 D 10 E 3 10 B Triangles in active list A 1 2 B 7 4 5 C 6 8 3 9 Vertex hierarchy 21

Vertex Tree Example R A C D 10 E 3 10 B Triangles in

Vertex Tree Example R A C D 10 E 3 10 B Triangles in active list A 1 2 B 7 4 5 C 6 8 3 9 Vertex hierarchy 22

Vertex Tree Example R A C E D 10 E 3 10 B Triangles

Vertex Tree Example R A C E D 10 E 3 10 B Triangles in active list A 1 2 B 7 4 5 C 6 8 3 9 Vertex hierarchy 23

Vertex Tree Example R A E D 10 10 B Triangles in active list

Vertex Tree Example R A E D 10 10 B Triangles in active list E A 1 2 B 7 4 5 C 6 8 3 9 Vertex hierarchy 24

Vertex Tree Example R A D E D 10 10 B Triangles in active

Vertex Tree Example R A D E D 10 10 B Triangles in active list E A 1 2 B 7 4 5 C 6 8 3 9 Vertex hierarchy 25

Vertex Tree Example R D E D 10 B Triangles in active list E

Vertex Tree Example R D E D 10 B Triangles in active list E A 1 2 B 7 4 5 C 6 8 3 9 Vertex hierarchy 26

Vertex Tree Example R D E R 10 B Triangles in active list A

Vertex Tree Example R D E R 10 B Triangles in active list A 1 2 B 7 4 5 C 6 8 3 9 Vertex hierarchy 27

Vertex Tree Example R D E R 10 A 1 Triangles in active list

Vertex Tree Example R D E R 10 A 1 Triangles in active list 2 B 7 4 5 C 6 8 3 9 Vertex hierarchy 28

The Vertex Tree • A l’exécution, créer une coupe dans l’arbre en choisissant les

The Vertex Tree • A l’exécution, créer une coupe dans l’arbre en choisissant les sommets contractés ou non This part of the model is represented at high detail This part in low detail 29

The Vertex Tree : Livetris and Subtris • Deux catégories de triangles affectés 8

The Vertex Tree : Livetris and Subtris • Deux catégories de triangles affectés 8 8 7 Fold Node A 2 A 10 10 6 9 1 4 6 9 3 3 Unfold Node A 5 4 5 Node->Subtris: triangles qui dispparaissent (offline) Node->Livetris: triangles qui changent de forme (online) 30

View-Dependent Simplification • N’importe quel critère peut être utilisé pour choisir quel noeud contracter

View-Dependent Simplification • N’importe quel critère peut être utilisé pour choisir quel noeud contracter – – Taille écran Préservation de la silhouette Budget en nombre de triangles Perception

Taille écran • Aire projetée à l’écran – Seuil choisi par l’utilisateur – Les

Taille écran • Aire projetée à l’écran – Seuil choisi par l’utilisateur – Les noeuds qui vont dépasser le seuil sont subdivisés

Préservation de la Silhouette • Plus de détail vers les silhouettes – Un noeud

Préservation de la Silhouette • Plus de détail vers les silhouettes – Un noeud silhouette contient les triangles sur le contour visuel – Choisir des seuils plus fins vers la silhouette

Triangle Budget Simplification • Minimise l’erreur avec un nombre de triangles donné • Trie

Triangle Budget Simplification • Minimise l’erreur avec un nombre de triangles donné • Trie les nœuds selon l’erreur (taille écran) – Subdiviser le noeud d’erreur maximales et remettre ses fils dans une liste triée Répéter jusqu’à atteindre le budget

Autres critères • • Perception Cohérence temporelle Effets lumineux. . . 35

Autres critères • • Perception Cohérence temporelle Effets lumineux. . . 35

Mipmapping • Hiérarchie de textures : LOD pour textures • Evite le clignotement •

Mipmapping • Hiérarchie de textures : LOD pour textures • Evite le clignotement • Génération automatique ou manuelle 36

Imposteurs Remplacer de la géometrie par un décor Bewick/Riedel Franck Perbet 37

Imposteurs Remplacer de la géometrie par un décor Bewick/Riedel Franck Perbet 37

Dépendant du point de vue 38

Dépendant du point de vue 38

2 D ½ pour conserver le parallaxe. 39

2 D ½ pour conserver le parallaxe. 39

40

40

Billboard : tourne avec l’utilisateur Texture animée : on change d’image à chaque frame

Billboard : tourne avec l’utilisateur Texture animée : on change d’image à chaque frame 41

Billboard clouds Remplacer la géométrie par un groupe d’imposteurs 42

Billboard clouds Remplacer la géométrie par un groupe d’imposteurs 42

Plan du cours • Cours 1, 2 : le pipeline graphique • Cours 3,

Plan du cours • Cours 1, 2 : le pipeline graphique • Cours 3, 4, 5 : rendu temps-réel – – Calcul des ombres Visibilité Niveaux de détails Image-based rendering • Cours 6 : illumination globale • Cours 7 : rendu non-photoréaliste 43

Image Based Rendering • Difficile de modéliser le réel – Prend du temps –

Image Based Rendering • Difficile de modéliser le réel – Prend du temps – Prend de la place en mémoire – N'est jamais aussi bon que le réel • Complexité variable en fonction de la position – Vitesse de rendu variable – Mauvais pour l'interactivité 44

Utiliser les images • Qualité visuelle parfaite – Modèle du monde réel idéal si

Utiliser les images • Qualité visuelle parfaite – Modèle du monde réel idéal si photo – Image de synthèse poussée • Affichage indépendant de la complexité géométrique • Pourquoi on n'y a pas pensé plus tôt ? – Comment on bouge le point de vue ? • Besoin d'informations géométriques supplémentaires • Informations partielles sur le monde – Algorithmes pour boucher les trous 45

Informations géométriques • Fournies par l'utilisateur • Implicites : – L'appareil n'a pas bougé,

Informations géométriques • Fournies par l'utilisateur • Implicites : – L'appareil n'a pas bougé, seulement tourné – Correspondances entre deux vues • Explicites : – Profondeur à chaque pixel – Modèle géométrique simplifié – Modèle géométrique complexe 46

Difficultés • Profondeur, modèle géométrique : – Évident pour une image de synthèse –

Difficultés • Profondeur, modèle géométrique : – Évident pour une image de synthèse – Difficile pour un objet réel • Vues multiples d'un objet : – Facile avec un objet réel – Coûteux avec des images de synthèse 47

Degrés de liberté • Tourner l'observateur sans déplacement • Tourner l'objet sans déplacement •

Degrés de liberté • Tourner l'observateur sans déplacement • Tourner l'objet sans déplacement • Tourner et déplacer l'observateur • Déplacement libre de l'observateur – Sans sortir des limites du modèle 48

Matériel nécessaire • Caméra libre – Grille de calibration • Caméra tournant sur un

Matériel nécessaire • Caméra libre – Grille de calibration • Caméra tournant sur un pied – Calibrée, pied calibré, déplacement cylindrique • Caméra montée sur potence – Déplacement commandé par ordinateur • Règle intuitive : – Plus le matériel est simple, plus il faudra fournir d'informations supplémentaires 49

Quicktime VR • Photos panoramiques – Projection cylindrique – Construction semi-autom. • Warping :

Quicktime VR • Photos panoramiques – Projection cylindrique – Construction semi-autom. • Warping : – Conversion en image plane • Interpolation entre les panoramas 50

Acquisition : cf cours de vision. 51

Acquisition : cf cours de vision. 51

Warping 52

Warping 52

Image Based Texturing Campanile Movie Debevec, Yu, et al. , 1997 • Plusieurs photos

Image Based Texturing Campanile Movie Debevec, Yu, et al. , 1997 • Plusieurs photos d’une scène • Un modèle géometrique grossier 53

Modèle hybride • Partir de vues simples (caméra standard) • Premier modèle simple donné

Modèle hybride • Partir de vues simples (caméra standard) • Premier modèle simple donné par l'utilisateur • Correspondance avec images : – Taille, position, paramètres – Textures à plaquer 54

55

55

Modèle géométrique simple • Construction par blocs : – Cubes, prismes… – Relations entre

Modèle géométrique simple • Construction par blocs : – Cubes, prismes… – Relations entre blocs : contraintes de placement • Bien adapté aux scènes architecturales • Facile à manipuler • Peu de paramètres – Pratique pour la reconstruction 56

Reconstruction • L'utilisateur identifie les arêtes du modèle sur l'image • Trouver les paramètres

Reconstruction • L'utilisateur identifie les arêtes du modèle sur l'image • Trouver les paramètres du modèle et de la caméra • Minimiser la distance entre les arêtes du modèle, reprojetées, et les arêtes identifiées 57

Exemple 58

Exemple 58

59

59

View-Dependent Texture Mapping • Chaque caméra agit comme un projecteur de diapositive • Certains

View-Dependent Texture Mapping • Chaque caméra agit comme un projecteur de diapositive • Certains détails du modèle ne sont pas touchés par la diapositive (auto-ombrage) • On combine les différentes images – Plusieurs images sur le même point du modèle – Informations contradictoires – Moyenne pondérée 60

61

61

Light fields • Système d’acquisition de la fonction de réflectance Matusik 62

Light fields • Système d’acquisition de la fonction de réflectance Matusik 62

63

63

64

64