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 Pour DESS Ingénierie de l'Image DESS Informatique Multimedia Patrick Reuter Version 1.2 2/10/2002.

Présentations similaires


Présentation au sujet: "Rendu 3D temps réel Patrick Reuter Pour DESS Ingénierie de l'Image DESS Informatique Multimedia Patrick Reuter Version 1.2 2/10/2002."— Transcription de la présentation:

1 Rendu 3D temps réel Patrick Reuter Pour DESS Ingénierie de l'Image DESS Informatique Multimedia Patrick Reuter Version 1.2 2/10/2002

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

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 Le processus du rendu dune scène à lécran - caméra virtuel - objets 3D - texturesimage 2D à lécran - sources de lumière - interacteurs - … 2 The Graphics Rendering Pipeline

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

7 2-1 The Graphics Rendering Pipeline - 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, …) - … Application Stage Geometry Stage Rasterizer Stage (CPU operations)

8 2-2 The Graphics Rendering Pipeline Model & View Transform Lighting & Shading ProjectionClipping Screen Mapping du Model Spacepour ajouter 3D -> 2D(les objets enajuster le champ -> World Spacedu réalisme(projection or-dehors du champde vue à la taille -> Eye Space tographique oude vue sontde la fenêtre (Muliplicationsperspectivique)supprimés) des matrices 4x4) (per-vertex operations), consiste de 5 phases séquentielles: Application Stage Geometry Stage Rasterizer Stage

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

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 dexé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 daffichage : mesure le temps dexécution de tous les 3 stages les 3 stages doivent être testés séparément

12 Application Stage Optimisation – Identifier le bottleneck - 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 tester le (CPU)

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

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

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

16 Application Stage Application Stage Application Stage 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 Application Stage Geometry Stage Geometry Stage Optimisation du 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, (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, 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., 1996] 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 Application Stage Geometry Stage Geometry Stage Optimisation du Geometry stage (avec perte) 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 Application Stage Rasterizer Stage Rasterizer Stage Optimisation du 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 Application Stage 4 Equilibrer le Graphics Rendering Pipeline Geometry Stage Rasterizer Stage Application Stage Rasterizer Stage Application Stage Geometry Stage 30 ms50 ms30 ms mieux: 40 ms40 ms40 ms

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

29 4-1 Equilibrer – du Geometry Stage a l Application Stage Application Stage Geometry Stage Geometry Stage Application 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 intersection dehors dedans intersection Point de vue View frustum test dans chaque noeud

32 4-1-2 Equilibrer – Hierarchical Backface Culling - Regroupement (Clustering) des polygones suivant - proximité dans lespace euclidienne - proximité dans lespace 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 lApplication Stage Application Stage Geometry Stage Geometry Stage Application Stage Rasterizer Stage Rasterizer Stage

34 4-2-1 Equilibrer – Occlusion culling Le teapot lila nest 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 A D H F CB E G H BCDFG EA Equilibrer – Portal culling

36 A D H F CB E G H BCDFG EA

37 A D H F CB E G H BCDFG EA

38 A D H F CB E G H BCDFG EA

39 A D H F CB E G H BCDFG EA

40 A D H F CB E G par exemple [Luebke et Georges 1995, Teller et Sequin 1991]

41 4-3 Equilibrer – du Geometry Stage au Rasterizer Stage Rasterizer Stage Geometry 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 Objet original Image de normales Bump Mapping :

44 4-3-1 Equilibrer – Appearance Preserving Simplification 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 1.)2.)

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 (V x, V y, V z ) dans une direction (, ) au temps t p = P(,, V x, V y, V z, 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 à lentrée après créer des nouvelles images pour autres (,, V x, V y, V z, t)

49 6 Nouvelles techniques de rendu Polygonal Meshes Texture Mapping Impostors Point Rendering (Surfels) Light Field Rendering Lumigraph Plenoptic Function GEOMETRY- BASED RENDERING 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 4544 Surfels Level-of-Details

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

54 - 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 …) 6 Nouvelles techniques de rendu Point Rendering (Surfels)

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

56 7 Définitions Synthèse dimage ModélisationVisualization Rendu Techniques d Illumination Rendu par Points …… Rendu par Polygons RaytracingRadiosité Rendu basé Image


Télécharger ppt "Rendu 3D temps réel Patrick Reuter Pour DESS Ingénierie de l'Image DESS Informatique Multimedia Patrick Reuter Version 1.2 2/10/2002."

Présentations similaires


Annonces Google