1 Plan du cours Cours 1,2 : le pipeline graphique Cours 3,4,5 : rendu temps-réel –Calcul des...

64
1 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

Transcript of 1 Plan du cours Cours 1,2 : le pipeline graphique Cours 3,4,5 : rendu temps-réel –Calcul des...

1

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

2

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

3

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

4

Il y a de gros modèles :

700,000700,000 13 million13 million

82 million82 million372,422,615372,422,615

5

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)

6

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

7

19.000 faces19.000 faces 1.000 1.000 facesfaces

100 faces100 faces 40 faces40 faces

Simplification de maillage

8

Méthodes

Contraction des arêtesDécimation des sommetsSuppression des triangles

Conservation de la forme générale par la topologie;

31

2

9

8 7

10

54

6

A

9

8

10

54

6

A

3

Comment évaluer l’erreur commise ???

9

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

10

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

11

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 »

12

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

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 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

15

L’arbre de sommets

3

1

2

9

8 7

10

54

6

A

9

8

10

54

6

A

3

Fold Node A

Unfold Node A

16

Vertex Tree Example

1

3

2

9

8 7

10

54

6

1 2 7 4 5 6 8 9

A B C10

D

3

E

R

Triangles in active list Vertex hierarchy

17

Vertex Tree Example

3

1

2

9

8 7

10

54

6

1 2 7 4 5 6 8 9

A B C10

D

3

E

R

A

Triangles in active list Vertex hierarchy

18

Vertex Tree Example

9

8

10

54

6

1 2 7 4 5 6 8 9

B C10

D

3

E

R

A

3A

Triangles in active list Vertex hierarchy

19

Vertex Tree Example

9

8

10

54

6

1 2 7 4 5 6 8 9

B C10

D

3

E

R

A

3

B

A

Triangles in active list Vertex hierarchy

20

Vertex Tree Example

10

1 2 7 4 5 6 8 9

C10

D

3

E

R

A

3

B

8

9

A B

Triangles in active list Vertex hierarchy

21

Vertex Tree Example

10

1 2 7 4 5 6 8 9

C10

D

3

E

R

A

3

B

C

8

9

A B

Triangles in active list Vertex hierarchy

22

Vertex Tree Example

10

1 2 7 4 5 6 8 9

10

D

3

E

R

A

3

B

C

A B C

Triangles in active list Vertex hierarchy

23

Vertex Tree Example

E10

1 2 7 4 5 6 8 9

10

D

3

R

A

3

B

C E

A B C

Triangles in active list Vertex hierarchy

24

Vertex Tree Example

10

1 2 7 4 5 6 8 9

C10

D

3

R

A

B

E

A B

E

Triangles in active list Vertex hierarchy

25

Vertex Tree Example

1 2 7 4 5 6 8 9

C10 3

R

B

E

DA

10

A B

D E

Triangles in active list Vertex hierarchy

26

Vertex Tree Example

1 2 7 4 5 6 8 9

A C10 3

R

B

E

D

B

D E

Triangles in active list Vertex hierarchy

27

Vertex Tree Example

1 2 7 4 5 6 8 9

A C10 3

R

R

B

E

D

B

D E

Triangles in active list Vertex hierarchy

28

Vertex Tree Example

1 2 7 4 5 6 8 9

A B C10

D

3

E

R

R

Triangles in active list Vertex hierarchy

29

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 modelis represented at high detail

This part in low detail

30

The Vertex Tree : Livetris and Subtris

3

1

2

9

8 7

10

54

6 9

8

10

54

6

A

3

Fold Node A

Unfold Node A

Node->Subtris: triangles qui dispparaissent (offline)Node->Livetris: triangles qui changent de forme (online)

• Deux catégories de triangles affectés

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 noeuds qui vont dépasser le seuil sont

subdivisés

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 les nœuds selon l’erreur (taille écran)

– Subdiviser le noeud d’erreur maximales et remettre ses fils dans une liste triéeRépéter jusqu’à atteindre le budget

35

Autres critères

• Perception• Cohérence temporelle• Effets lumineux• ...

36

Mipmapping

• Hiérarchie de textures : LOD pour textures

• Evite le clignotement

• Génération automatique ou manuelle

37

Bewick/Riedel Franck Perbet

Imposteurs

Remplacer de la géometrie par un décor

38

Dépendant du point de vue

39

2D ½ pour conserver le parallaxe.

40

41

Billboard : tourne avec l’utilisateur

Texture animée : on change d’image à chaque frame

42

Billboard clouds

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

43

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

44

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é

45

• 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

Utiliser les images

46

•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

Informations géométriques

47

•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

Difficultés

48

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

49

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

50

Quicktime VR

•Photos panoramiques– Projection cylindrique– Construction semi-autom.

•Warping :– Conversion en image plane

•Interpolation entre les panoramas

51

Acquisition : cf cours de vision.

52

Warping

54

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

55

56

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

57

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

58

Exemple

59

60

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

61

62

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

Matusik

63

64