La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Rendu 3D temps réel Patrick Reuter

Présentations similaires


Présentation au sujet: "Rendu 3D temps réel Patrick Reuter"— Transcription de la présentation:

1 Rendu 3D temps réel Patrick Reuter preuter@labri.fr
Pour DESS Ingénierie de l'Image DESS Informatique Multimedia Patrick Reuter Version /10/2002

2 1-1 Préface - Interaction
projection Scène Image interaction Utilisateur Interaction: commence à fps « temps réel » >12 fps plus de difference >72 fps fps: frames per second (taux de rafraîchissement)

3 1-2 Préface - Applications
Modélisation Animation Environnements virtuels Jeux vidéo Graphics hardware: double tous les 6 mois mais: scènes complexes demandent accéleration

4 1-3 Préface - Littérature
Tomas Möller, Eric Haines « Real-Time Rendering » ISBN [Haines99]

5 2 The Graphics Rendering Pipeline
Le processus du rendu d’une scène à l’écran caméra virtuel objets 3D textures image 2D à l’écran sources de lumière interacteurs

6 2 The Graphics Rendering Pipeline
Stages gérées par des unités différents Application Stage Geometry Stage Rasterizer Stage Bottleneck stage (Stage critique) détermine le fps final

7 2-1 The Graphics Rendering Pipeline
Application Stage Geometry Stage Rasterizer Stage (CPU operations) gère les interacteurs (clavier, souri, …) gère la détection des collisions gère les animations gère la physique de la scène (force feedback, déformations, vélocités, …)

8 (per-vertex operations), consiste de 5 phases séquentielles:
2-2 The Graphics Rendering Pipeline Application Stage Geometry Stage Rasterizer Stage (per-vertex operations), consiste de 5 phases séquentielles: Model & View Transform Lighting & Shading Screen Mapping Projection Clipping du Model Space pour ajouter 3D -> 2D (les objets en ajuster le champ -> World Space du réalisme (projection or- dehors du champ de vue à la taille -> Eye Space tographique ou de vue sont de la fenêtre (Muliplications perspectivique) supprimés) des matrices 4x4)

9 2-3 The Graphics Rendering Pipeline
Application Stage Geometry Stage Rasterizer Stage (per-pixel operations) mettre les bonnes couleurs aux pixels utilisation des textures Z – buffering double – buffering

10 3-1 Optimisation - Overview
Application Stage Geometry Stage Rasterizer Stage Bottleneck stage (Stage critique) détermine le fps final Optimisation: 1) Identifier le Bottleneck stage 2) réduire le temps d’exécution du Bottleneck 3) mais aussi: charger les autres stages avec plus de travail pour une qualité supérieure du rendu

11 3-2 Optimisation – Identifier le bottleneck
pas par simple benchmark du temps d’affichage : mesure le temps d’exécution de tous les 3 stages  les 3 stages doivent être testés séparément

12 3-2-1 Optimisation – Identifier le bottleneck
Application Stage (CPU) tester le le CPU workload est 100% ?  Bottleneck en OpenGL: remplacer les commandes glNormal3 et glVertex3 par glColor3 plus de travail pour Geometry Stage et Rasterizer Stage: pas de changement de fps  bottleneck

13 3-2-2 Optimisation – Identifier le bottleneck
Geometry Stage (plus difficile, parce que seulement la lumière n’affecte que le Geometry Stage) tester le éteindre la lumière: plus de performance?  bottleneck augmenter la lumière: même performance?  not bottleneck (ou tester les 2 autres stages)

14 3-2-3 Optimisation – Identifier le bottleneck
Rasterizer Stage tester le diminuer la taille de la fenêtre: plus de performance?  bottleneck éteindre les textures, le brouillard, z-buffering, blending, …:

15 3-3 Optimisation du Bottleneck
Optimiser le temps d’exécution du bottleneck stage - Application Stage - Geometry Stage - Rasterizer Stage

16 3-3-1 Optimisation du Application stage
optimisation du code optimisation de la gestion de mémoire (allocation, cache, …) utilisation de plusieurs processeurs détection des collisions intelligente (hierarchy, bounding volumes (volumes englobantes), …)

17 3-3-2 Optimisation du Geometry stage
Application Stage Geometry Stage transformation: regrouper les transformations (le moins de multiplications des matrices 4x4 possible) vertices (sommets) connectés (Triangle Fans, Triangle Strips, Quad Strips)

18 3-3-2 Optimisation du Geometry stage OpenGL Triangle Fans
Rappel: Geometry Stage dépend des per-vertex operations à la place de: GL_TRIANGLES 0-1-2, 0-2-3, 0-3-4, 0-3-4, 0-5-6 (15 vertices) transférer GL_TRIANGLE_FAN (7 vertices)

19 3-3-2 Optimisation du Geometry stage OpenGL Triangle Strips
à la place de GL_TRIANGLES (8 * 3 = 24 vertices) 0-1-2, 1-3-2, 2-3-4, 3-5-4, 4-5-6, 5-7-6, 6-7-8, 7-9-8 transférer GL_TRIANGLE_STRIP (2 + 8 = 10 vertices)

20 3-3-2 Optimisation du Geometry stage OpenGL Triangle Strips
pour triangles connectés: réduire de 3n vertices jusqu’à n+2 vertices ! Mais: Trouver la meilleure configuration est un problème NP complet (bijection sur problème du voyageur de commerce) Automatisation: SGI Performer et Optimizer, Algorithme STRIPE

21 3-3-2 Optimisation du Geometry Stage The STRIPE algorithm [Evans et al
1.) Phase globale: Identifier les patchs quadrilaterales 2.) Phase locale: prendre le triangle avec degré minimum, continuer avec le triangle du degré minimum, etc.

22 3-3-2 Optimisation du Geometry stage (avec perte)
Application Stage Geometry Stage Simplification (Représentations Level of Detail) (LOD, niveaux de détails) réduire le nombre de polygones (triangles) 1.) pour les terrains: construire un terrain en LOD à partir des cartes d’élévations, p.ex. [Duchaineau et al. 1997, Hoppe98, Lindstrom et Pascucci 2001, Lindstrom et al. 1996] 2.) pour les objets fermés: simplification du maillage

23 3-3-2 Optimisation du Geometry stage (avec perte) - Simplification du maillage
Méthode la plus commune: Edge collapse, p.ex. [Eck et al. 95, Garland et Heckbert 98, Hoppe 96, Melax 98] Application consécutive de cette méthode:  Représentation en multirésolution du maillage, choisir le bon niveaux de détail en fonction du point de vue

24 3-3-2 Optimisation du Geometry stage (avec perte) - Exemple de simplification du maillage
Remarque: La sélection du niveau de détails se passe dans le Application Stage, mais elle est peu coûteuse

25 3-3-3 Optimisation du Rasterizer stage
Application Stage Rasterizer Stage OpenGL backface culling éteindre z – Buffering où possible - … diminuer la taille de la fenêtre (avec perte)

26 3-4 Optimisation générale
le moindre précision possible (float à la place de double, …) éteindre les options non utilisées (brouillard, blending, …) minimiser les changements d’état OpenGL (trier par couleur, textures, triangles, quadrilaterales, …) OpenGL: utiliser les display lists

27 4 Equilibrer le Graphics Rendering Pipeline
Application Stage Application Stage Geometry Stage Rasterizer Stage 30 ms 50 ms 30 ms mieux: Application Stage Geometry Stage Rasterizer Stage 40 ms 40 ms 40 ms

28 4 Equilibrer - Culling techniques
View frustum culling Backface culling Point View Frustum de vue Occlusion culling

29 4-1 Equilibrer – du Geometry Stage a l’ Application Stage
Rasterizer Stage Application Stage Geometry Stage Rasterizer Stage

30 4-1-1 Equilibrer – Hierarchical View Frustum Culling
Par exemple: basé sur des spheres englobantes (bounding spheres)

31 4-1-1 Equilibrer – Hierarchical View Frustum Culling
View frustum test dans chaque noeud Point de vue intersection intersection intersection dedans dedans dedans dedans dehors intersection

32 4-1-2 Equilibrer – Hierarchical Backface Culling
Regroupement (Clustering) des polygones suivant proximité dans l’espace euclidienne proximité dans l’espace des normales - Performance du culling dans chaque noeud par exemple [Kumar et al. 1996]

33 4-2 Equilibrer – du Geometry Stage et Rasterizer Stage a l’Application Stage

34 4-2-1 Equilibrer – Occlusion culling
Le teapot lila n’est pas visible Algorithmes les plus connus: - Hierarchical visibility algorithm (pyramide Z-buffer) [Greene et al. 1993] -HOM (Hierachical occlusion maps) [Zhang et al. 1997]

35 4-2-2 Equilibrer – Portal culling
D E F B C G H A E B C D F G H

36 4-2-2 Equilibrer – Portal culling
D E F B C G H A E B C D F G H

37 4-2-2 Equilibrer – Portal culling
D E F B C G H A E B C D F G H

38 4-2-2 Equilibrer – Portal culling
D E F B C G H A E B C D F G H

39 4-2-2 Equilibrer – Portal culling
D E F B C G H A E B C D F G H

40 4-2-2 Equilibrer – Portal culling
D E F B C G H par exemple [Luebke et Georges 1995, Teller et Sequin 1991]

41 4-3 Equilibrer – du Geometry Stage au Rasterizer Stage
Application Stage Geometry Stage Rasterizer Stage Application Stage Geometry Stage Rasterizer Stage

42 4-3-1 Equilibrer – Appearance Preserving Simplification
Utilisation du Bump Mapping pour preserver les normales Bump Mapping: Multipass Rendering Bump Map Texture Map

43 4-3-1 Equilibrer – Appearance Preserving Simplification
Bump Mapping : Objet original Image de normales

44 4-3-1 Equilibrer – Appearance Preserving Simplification
1.) 2.) Appearance Preserving Simplification [Cohen et al. 1998, Cignoni et al. 1998] 1.) Créer un maillage simplifié 2.) Créer un Bump Map pour chaque face

45 4-3-1 Equilibrer – Appearance Preserving Simplification
Amelioration: Silhouette Clipping [Sander et al. 2000] Utiliser le OpenGL Stencil Buffer pour ameliorer la silhouette Autre possibilite: utiliser Displacement Mapping

46 5 Conclusions Séparation du Graphics Rendering pipeline en 3 Stages conceptuels Optimisation de chacun de ces Stages Équilibree des Stages autres techniques de rendu (Rendu basé Image) Discussion

47 6 Nouvelles techniques de rendu
Apparition du “Rendu Basé Image” (Image Based Rendering) Description de la Scène par la Fonction plenoptique P [McMillan et Bishop 1995] vue p de la Scene de chaque point (Vx, Vy, Vz) dans une direction (, ) au temps t p = P(,  , Vx, Vy, Vz, t)  Rendu Basé Image: Essai de reconstruire la fonction plenoptique P

48 6 Nouvelles techniques de rendu
Rendu Basé Image Comment reconstruire la fonction plenoptique? - p. ex.: entraîner avec des vues à l’entrée après créer des nouvelles images pour autres (,  , Vx, Vy, Vz, t)

49 6 Nouvelles techniques de rendu
GEOMETRY-BASED RENDERING Polygonal Meshes Texture Mapping Impostors Point Rendering (Surfels) Light Field Rendering Lumigraph Plenoptic Function IMAGE-BASED RENDERING

50 6 Nouvelles techniques de rendu Point Rendering (Surfels)
Modèles complexes: >> polygones, écran toujours pareil projection: mais: projection Plus de necessité de prendre des polygones

51 6 Nouvelles techniques de rendu Point Rendering (Surfels)
Littérature: p. ex. [Pfister et al. 2000, Rusinkiewicz et Levoy 2000]

52 6 Nouvelles techniques de rendu Point Rendering (Surfels)
Surfels Surfels Surfels Level-of-Details

53 6 Nouvelles techniques de rendu Point Rendering (Surfels)
Niveaux de détails gérés par un arbre BSP

54 6 Nouvelles techniques de rendu Point Rendering (Surfels)
Problèmes: remplissage des trous Solutions: boucher les trous en espace image (2D) ou espace objet (3D)  reconstruction de la surface (Surfaces paramétriques, surfaces implicites, Radial basis functions …)

55 7 Definitions Realité virtuelle: … Immersion Environnement Utilisateur
Interaction Son Synthèse d’image Applications: - Géomarketing - Prototypage - Virtual design - Simulateurs - … Interacteurs

56 7 Définitions Synthèse d’image Modélisation Visualization Rendu
Techniques d’ Illumination Rendu par Polygons Rendu par Points Rendu basé Image Raytracing Radiosité


Télécharger ppt "Rendu 3D temps réel Patrick Reuter"

Présentations similaires


Annonces Google