Informatique Graphique Méthodes de Rendu

54

Transcript of Informatique Graphique Méthodes de Rendu

Page 1: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Informatique Graphique

Méthodes de Rendu

Guillaume [email protected]

2012-2013

Page 2: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Résumé des épisodes précédents

Principe de synthèse d'images

I Evaluation du transport de lumière

I Complexité des phénomènes

I Equation du rendu et simpli�cations

Modélisation d'objets 3D

I Découplage géométrie / apparence

I Dans notre cas, une représentation explicite :I Tableau de sommetsI Notion d'adjacence

Page 3: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Le pipeline graphiquePrincipe

Le pipeline graphique

I Une liste de sommets

I Une liste d'attributs(couleurs,normales...)

I Des relationsd'adjacence

I + autres... (caméras,lumières, textures...)

I Une grille 2Dde pixels

Page 4: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de rendu

Diverses méthodes

I En fonction des objectifs / moyens

I Diverses approximations

I Divers temps de calculs

Comment remplir notre grille de pixels ?

I Determiner quels objets sont visibles par la caméra

I Comment les positionner sur la grille ?

Deux principales méthodes

I Espace image : Lancer de rayons

I Espace objet : Projection/Rasterisation (moteurs 3D)

Page 5: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de renduLancer de rayons

Page 6: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de rendu

Le lancer de rayons

I Lancer de RayonsI Méthode espace imageI Un rayon pour chaque

pixelI Permet de simuler des

e�ets complexesI Calcul d'intersection

Page 7: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de renduLe lancer de rayon

Principes

I Pour chaque pixel

I Calculer une couleur

I Portion de la scène visibledepuis ce pixel

I Lancer un rayon dans lascène

I Rayons primaires

Page 8: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de renduLe lancer de rayon

Principes

I Pour chaque pixel

I Calculer une couleurI Lancer un rayon dans la

scèneI Rayons primairesI Pas d'intersection :

couleur indé�nie

Page 9: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de renduLe lancer de rayon

Principes

I Plusieurs intersections

I Surface visible depuis lepixel

Page 10: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de renduLe lancer de rayon

Principes

I Evaluer équation du rendu

I Simpli�cation : couleur del'objet

Page 11: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de renduLe lancer de rayon

Principes

I Plusieurs intersections

I Choix de l'intersection laplus proche

I Il faut tester tous les objets !

Page 12: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Le Lancer de Rayon

On connait l'objet pour 1 pixel

I Evaluer l'équation du rendu

I Pour l'instant : Une constante

I Comment ?

Page 13: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Le Lancer de Rayon

On connait l'objet pour 1 pixel

I Evaluer l'équation du rendu

I Pour l'instant : Une constante

I Comment ?

Lancer de rayons avec lumière

I Intégrer les sources de lumières

I La lumière est elle visible ?

Page 14: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Le Lancer de Rayon

Lancer de rayons simple

I Grosse approximation

I Pas de simulation des e�ets complexes

I Pas de prise en compte des sources lumineuses

I Uniquement calcul de visibilité

Page 15: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Le Lancer de Rayon

Lancer de rayons simple

I Grosse approximation

I Pas de simulation des e�ets complexes

I Pas de prise en compte des sources lumineuses

I Uniquement calcul de visibilité

Lancer de rayons avec lumière

I Rajouter de la lumière

Page 16: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de rendu

Le lancer de rayons

I Intégration de la lumièreI Comment intégrer la

lumière ?

Page 17: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de rendu

Le lancer de rayons

I Intégration de la lumièreI Lancer un rayon vers la

lumièreI Rayon d'ombreI Notion de visibilitéI Recherche d'intersections

Page 18: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de rendu

Le lancer de rayons

I Intégration de la lumièreI Evaluation de l'équation

du renduI Evaluation simple

I DiscrèteI Phong/Gouraud (dans

les prochains cours)

I Formulation

Page 19: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de rendu

Le lancer de rayons

I Intégration de la lumièreI Evaluation de l'équation

du renduI Evaluation simple

I DiscrèteI Phong/Gouraud (dans

les prochains cours)

I Formulation

Page 20: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de rendu

Le lancer de rayons

I Intégration de la lumièreI Evaluation de l'équation

du renduI Evaluation simple

I DiscrèteI Phong/Gouraud (dans

les prochains cours)

I Formulation

Page 21: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de rendu

Le lancer de rayons

I Intégration de la lumièreI Evaluation de l'équation

du renduI Evaluation simple

I DiscrèteI Phong/Gouraud (dans

les prochains cours)

I Formulation

Page 22: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Le Lancer de Rayon

Lancer de rayons avec lumière

I Toujours de grosses approximations

I Pas de simulation des e�ets complexes

I Pas de surface re�echissantes

I Pas de transparence

I Prise en compte de la lumière directe

Page 23: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Le Lancer de Rayon

Lancer de rayons avec lumière

I Toujours de grosses approximations

I Pas de simulation des e�ets complexes

I Pas de surface re�echissantes

I Pas de transparence

I Prise en compte de la lumière directe

I Idée : Simuler le trajet inverse de la lumière

Page 24: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de rendu

Complexi�er le lancer de rayons

I Rajouter des re�exions

Page 25: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de rendu

Complexi�er le lancer de rayons

I Lancer un rayon ré�échi

I Rayon ré�échi

I Loi de Fresnel

Page 26: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de rendu

Complexi�er le lancer de rayons

I Evaluation récursive dunouveau rayon

I Nouveau rayon d'ombre,ré�échi

I Formulation recursive duproblème

Page 27: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de rendu

Complexi�er le lancer de rayons

I Evaluation récursive dunouveau rayon

I Nouveau rayon d'ombre,ré�échi

I Formulation recursive duproblème

Page 28: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de rendu

Complexi�er le lancer de rayons

I Et la transparence ?

I Rayon Transmis

I A travers l'objet

I Génère des rayons d'ombre,de re�exion...

Page 29: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthode de rendu

Complexi�er le lancer de rayons

Page 30: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Le Lancer de Rayon

Lancer de rayons avec lumière

I Toujours des approximations

I Pas de simulation des e�ets complexes

I Pas de lumière indirecte

Page 31: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Le Lancer de Rayon

Lancer de rayons avec lumière

I Toujours des approximations

I Pas de simulation des e�etscomplexes

I Pas de lumière indirecte

I Importance de la lumièreindirecte

I Besoin d'autres méthodesI Illumination globaleI Path Tracing, Photon

mapping...

I Exemple (UP)

Page 32: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Le Lancer de Rayon

Lancer de rayons avec lumière

I Toujours des approximations

I Pas de simulation des e�etscomplexes

I Pas de lumière indirecte

I Importance de la lumièreindirecte

I Besoin d'autres méthodesI Illumination globaleI Path Tracing, Photon

mapping...I Exemple (UP)

Page 33: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Le Lancer de Rayon

Avantages et inconvénients

I Parallèlisme

I Qualité d'image

I E�ets complexes

I Calcul d'intersection pour chaque objet

I Un rayon pour chaque pixel de l'image

I Performances o�ine (de moins en moins vrai)

Page 34: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de renduProjection/Rasterisation

Page 35: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de rendu

Projection/Rasterisation

I Projection/RasterisationI Méthode espace objetI Modèles polygonauxI Projection de chaque objet sur le plan imageI Projection des sommetsI Rasterisation : Passage continu/discret

Page 36: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de rendu

Projection/Rasterisation

I ProjectionI Pour chaque objetI Projection des sommets

dans le plan image(espace ecran)

Page 37: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de rendu

Projection/Rasterisation

I Sommets projetés dans leplan image

Page 38: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de rendu

Projection/Rasterisation

I RasterisationI Discrétisation du plan

imageI Remplissage des

polygonesI Tracé de droitesI Production de Fragments

Page 39: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de rendu

Projection/Rasterisation

I Exemple pour un triangleI Projection de 3 sommets

I Avec chacun une couleurI Et une information de

connexitéI Une primitive

Page 40: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de rendu

Projection/Rasterisation

I Exemple pour un triangleI Projection de 3 sommetsI Avec chacun une couleur

I Et une information deconnexité

I Une primitive

Page 41: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de rendu

Projection/Rasterisation

I Exemple pour un triangleI Projection de 3 sommetsI Avec chacun une couleurI Et une information de

connexitéI Une primitive

Page 42: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de rendu

Projection/Rasterisation

I Exemple pour un triangleI RasterisationI Algorithme de BresenhamI Méthode de remplissage

de polygoneI Utilisation des cartes

graphiques

Page 43: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de renduProjection/Rasterisation

Calcul d'illumination ?

I Domaine discret

I Interpolation des élémentsI CouleurI Position 3DI Normale

Page 44: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de renduProjection/Rasterisation

Calcul d'illumination ?

I Domaine discret

I Interpolation des élémentsI CouleurI Position 3DI Normale

Page 45: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de renduProjection/Rasterisation

Elimination des parties cachées

I Plusieurs méthodesI Algorithme du peintreI Division de l'écranI Z-Bu�er

Page 46: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de renduProjection/Rasterisation

Elimination des parties cachées

I Idée : stocker pour chaquefragment sa profondeur

I Depth Bu�er

I Principe : comparer laprofondeur de chaquefragment avec celle stockée

Page 47: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de renduProjection/Rasterisation

Elimination des parties cachées

I Idée : stocker pour chaquefragment sa profondeur

I Depth Bu�er

I Principe : comparer laprofondeur de chaquefragment avec celle stockée

Page 48: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de renduProjection/Rasterisation

Elimination des parties cachées

I Idée : stocker pour chaquefragment sa profondeur

I Depth Bu�er

I Principe : comparer laprofondeur de chaquefragment avec celle stockée

Page 49: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de renduProjection/Rasterisation

Elimination des parties cachées

I Idée : stocker pour chaquefragment sa profondeur

I Depth Bu�er

I Principe : comparer laprofondeur de chaquefragment avec celle stockée

I Pour chaque fragment fi(GL_LEQUAL)

I Si depth(fi ) <=depth(Bu�er(fi ))

I mettre a jour couleuret profondeur de fi

Page 50: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de renduProjection/Rasterisation

Elimination des parties cachées

I Idée : stocker pour chaquefragment sa profondeur

I Depth Bu�er

I Principe : comparer laprofondeur de chaquefragment avec celle stockée

I Pour chaque fragment fi(GL_LESS)

I Si depth(fi ) <depth(Bu�er(fi ))

I mettre a jour couleuret profondeur de fi

Page 51: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de renduEn conclusion...

Page 52: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de rendu

Lancer de rayons

I Visibilité

I Espace Image

I ComplexitéI RésolutionI Scène

I Méthode récursive

I Calculs en 3D

I Méthode récursive

I E�ets lumineux complexes

I Intersections parfois di�ciles

I Parallèlisable

Page 53: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de rendu

Lancer de rayons

I Visibilité

I Espace Image

I ComplexitéI RésolutionI Scène

I Méthode récursive

I Calculs en 3D

I Méthode récursive

I E�ets lumineux complexes

I Intersections parfois di�ciles

I Parallèlisable

Rastérisation

I Visibilité

I Espace Objet

I ComplexitéI ScèneI Résolution (aussi)

I Remplissage rapide

I Calculs en 2D (et 1/2)

I E�ets lumineux simples

I Simplicité des calculs

I Parallèlisable

Page 54: Informatique Graphique Méthodes de Rendu

Rendu

G.Gilet

Lancer de Rayons

Rasterisation

Conclusion

Méthodes de rendu

Objectif Qualité

I Plutôt lancer de rayons

I Temps de calculs

I E�ets lumineux complexes

I Nombreuses optimisationsI Structures d'accélérationI Evaluation stochastique

I Gestion mémoire (Reyes)

I Algorithme principalementCPU

I Fort intérêt des CPUmulticoeurs

Objectif Temps réél

I Plutôt rastérisation

I Simplicité des calculs

I Développement dû auxcartes graphiques

I Calcul matriciel etvectoriel

I Gestion simple demémoire

I Utilisation du cacheI Parallèlisation massive

I Maintenantquasi-exclusivement GPU

Attention : ça peut changer demain !

I Evolutions matérielles très rapides

I Evolution vers les architectures multicoeurs