Rendu 3D temps rel Patrick Reuter preuterlabri'fr - PowerPoint PPT Presentation

1 / 68
About This Presentation
Title:

Rendu 3D temps rel Patrick Reuter preuterlabri'fr

Description:

du Model Space pour ajouter 3D - 2D (les objets en ajuster le champ ... du Model Space pour ajouter 3D - 2D (les objets en ajuster le champ ... – PowerPoint PPT presentation

Number of Views:37
Avg rating:3.0/5.0
Slides: 69
Provided by: lab54
Category:

less

Transcript and Presenter's Notes

Title: Rendu 3D temps rel Patrick Reuter preuterlabri'fr


1
Rendu 3D temps réelPatrick Reuterpreuter_at_labri.
fr
  • Pour DESS Ingénierie de l'Image
  • DESS Informatique Multimedia

Patrick Reuter
Version 1.3 2/11/2002
2
1-1 Préface - Interaction
projection
Scène 3D
Image (2D ou stéreo)
interaction
perception
Utilisateur
Interaction commence à 5 fps  temps
réel  gt 12 fps plus de difference gt 72
fps fps frames per second (taux de
rafraîchissement)
3
1-2 Préface - Applications
  • Modélisation
  • Animation
  • Environnements virtuels (architecture, virtual
    prototyping, digital mock-ups, medecine, )
  • Jeux vidéos
  • Graphics hardware double sa performance tous les
    6 mois
  • mais scènes de plus en plus complexes
    demandent accéleration

4
1-3 Préface - Littérature
  • Tomas Möller, Eric Haines
  •  Real-Time Rendering 
  • www.realtimerendering.com
  • ISBN 1-568816-101-2
  • Haines99

5
2 The Graphics Rendering Pipeline
  • Le processus du rendu dune 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
2-2 The Graphics Rendering Pipeline
Application Stage
Geometry Stage
Rasterizer Stage
(per-vertex operations), en 5 phases
Model View Transform
Lighting Shading
Viewport Transform
Projection
Clipping
du Model Space pour ajouter 3D -gt 2D (les
objets en ajuster le champ -gt World Space du
réalisme (projection or- dehors du champ de vue à
la taille -gt Eye Space tographique ou de vue
sont de la fenêtre (Muliplications perspectiviqu
e) 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, filtrage, blending
  • Z buffering (depth-test)
  • brouillard, fog
  • 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 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
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

CPU-limited
13
3-2-2 Optimisation Identifier le bottleneck
Geometry Stage
(le plus difficile, parce que seulement la
lumière naffecte que le Geometry Stage)
tester le
geometry-limited
  • é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
fill-limited
  • diminuer la taille de la fenêtre
  • plus de performance? ? bottleneck
  • éteindre les textures, le brouillard,
    z-buffering, blending,
  • plus de performance? ? bottleneck

15
3-3 Optimisation du Bottleneck
Optimiser le temps dexécution du bottleneck
stage - Application Stage - Geometry
Stage - Rasterizer Stage
16
3-3-1 Optimisation du Application stage
Application Stage
Application Stage
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
Geometry Stage
  • transformations 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 0-1-2-3-4-5-6 (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) 0-1-2-3-4-5-6-7-8-9
20
3-3-2 Optimisation du Geometry stage OpenGL
Triangle Strips
  • pour triangles connectés
  • réduire de 3n vertices jusquà n2 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
3-3-2 Optimisation du Geometry stage (avec perte)
Application Stage
Geometry 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
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 et les vertex
    arrays

state sorting
27
4 Equilibrer le Graphics Rendering Pipeline
Application Stage

Geometry Stage
Rasterizer Stage
Application Stage
30 ms 50 ms 30 ms mieux
Rasterizer Stage
Application Stage
Geometry 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 Equilibrer - Culling techniques
Conservative surestimation de la visibilité
objets invisible sont consideré visible
Agressive sousestimation de la visibilité
objets visible sont exclus Approximate
Exate calcule pas plus ni moins dobjet
visible
30
4-1 Equilibrer du Geometry Stage a l
Application Stage
Geometry Stage
Application Stage
Rasterizer Stage
Application Stage
Geometry Stage
Rasterizer Stage
31
4-1-1 Equilibrer Hierarchical View Frustum
Culling
Par exemple basé sur des spheres
englobantes (bounding spheres)
32
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
33
4-1-2 Equilibrer Hierarchical Backface Culling
  • Regroupement (Clustering) des polygones suivant
  • - proximité dans lespace des normales
  • Création des Clusters (exemple)
  • début un triangle associé
  • par quadrant
  • subdiviser chaque quadrant
  • en 4 triangles
  • normaliser les sommets

8
32
normalisation
32
128
34
4-1-2 Equilibrer Hierarchical Backface Culling
  • Création dune hierarchie
  • (par exemple Kumar et al. 1996)
  • ici Grisoni et al. 2000

8
32
Tous les normales
quadrant
Autres quadrants

normalisation

32
128
Dans les feuilles, il y a les polygones associé
pour chaque cluster
35
4-2 Equilibrer du Geometry Stage et Rasterizer
Stage a lApplication Stage
Geometry Stage
Application Stage
Rasterizer Stage
Application Stage
Geometry Stage
Rasterizer Stage
36
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
37
4-2-2 Equilibrer Portal culling
A
D
E
F
C
B
G
H
E
A
B
C
D
F
G
H
38
4-2-2 Equilibrer Portal culling
A
D
E
F
C
B
G
H
E
A
B
C
D
F
G
H
39
4-2-2 Equilibrer Portal culling
A
D
E
F
C
B
G
H
E
A
B
C
D
F
G
H
40
4-2-2 Equilibrer Portal culling
A
D
E
F
C
B
G
H
E
A
B
C
D
F
G
H
41
4-2-2 Equilibrer Portal culling
A
D
E
F
C
B
G
H
E
A
B
C
D
F
G
H
42
4-2-2 Equilibrer Portal culling
A
D
E
F
C
B
G
H
par exemple Luebke et Georges 1995, Teller et
Sequin 1991
43
4-3 Equilibrer du Geometry Stage au Rasterizer
Stage
Geometry Stage
Rasterizer Stage
Application Stage
Rasterizer Stage
Geometry Stage
Application Stage
44
4-3-1 Equilibrer Appearance- Preserving
Simplification
  • Utilisation du Bump Mapping pour preserver les
    normales
  • Bump Mapping
  • Multipass
  • Rendering

Bump Map
Texture Map
45
4-3-1 Equilibrer Appearance- Preserving
Simplification

Bump Mapping 
Objet original
Simulation par une image de normales
46
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
47
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

48
5 Conclusions
  • Séparation du Graphics Rendering pipeline en 3
    Stages conceptuels
  • Optimisation de chacun de ces Stages
  • Équilibrer des Stages
  • Cartes Graphiques programmables
  • autres techniques de rendu (Rendu basé Image,
    Surfels)
  • Discussion

49
6 Cartes Graphiques Programmables (Shaders)
  • Cartes graphiques nouvelle génération (p.ex.
    GeForce 3)
  • Comparable à PIXAR Renderman en temps réel
  • Remplacement de
  •  Fixed Function Pipeline TL  (Transformation
    et éclairage)
  •  Fixed Function Pipeline Texturing, Filtering,
    Blending 
  • par
  • Vertex Programs (OpenGL) / Vertex Shaders
    (DirectX)
  • Fragment Programs (OpenGL) / Pixel Shaders
    (DirectX)

50
6 Cartes Graphiques Programmables (Shaders)
Application Stage
Geometry Stage
Rasterizer Stage
(per-vertex operations), en 5 phases
Model View Transform
Lighting Shading
Viewport Transform
Projection
Clipping
du Model Space pour ajouter 3D -gt 2D (les
objets en ajuster le champ -gt World Space du
réalisme (projection or- dehors du champ de vue à
la taille -gt Eye Space tographique ou de vue
sont de la fenêtre (Muliplications perspectiviqu
e) supprimés) des matrices 4x4)
51
6 Cartes Graphiques Programmables (Shaders)
Application Stage
Geometry Stage
Rasterizer Stage
(per-vertex operations), en 5 phases
Viewport Transform
Projection
Clipping
3D -gt 2D (les objets en ajuster le
champ (projection or- dehors du champ de vue
à la taille tographique ou de vue sont de la
fenêtre perspectivique) supprimés)
Vertex Program (Vertex Shader)
52
6 Cartes Graphiques Programmables (Shaders)
  • Vertex Programs / Vertex Shaders
  • programme assembleur pour transformation/eclairag
    e
  • taille limité (128 bytes), pas de boucles, SIMD,
    instr. perf.
  • Entrée 1 vertex pas transformé et pas éclairé
  • Sortie 1 vertex transformé et éclairé
  • Ne crée ni efface un vertex
  • Nutilise aucune information topologique (voisin,
    polygons )

53
6 Cartes Graphiques Programmables (Shaders)
Application Stage
Geometry Stage
Rasterizer Stage
(per-pixel operations)
  • mettre les bonnes couleurs aux pixels
  • utilisation des textures, filtrage, blending
  • Z buffering (depth-test)
  • brouillard, fog
  • double buffering

54
6 Cartes Graphiques Programmables (Shaders)
Application Stage
Geometry Stage
Rasterizer Stage
(per-pixel operations)
  • utilisation des textures, filtrage, blending

55
6 Cartes Graphiques Programmables (Shaders)
Application Stage
Geometry Stage
Rasterizer Stage
(per-pixel operations)
  • Fragment Programs (Pixel Shaders)
  • adaptation  custom  des textures, filtrage,
    blending

56
6 Cartes Graphiques Programmables (Shaders)
Exemple 1 Deplacement dynamiques des Vertex
57
6 Cartes Graphiques Programmables (Shaders)
Exemple 2 Eclairage Cartoon
58
6 Cartes Graphiques Programmables (Shaders)
  • Exemples (suite)
  • Morphing
  • Dynamic lighting
  • Deformations

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

60
7 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 (?,
    ? , Vx, Vy, Vz, t)

61
7 Nouvelles techniques de rendu
GEOMETRY-BASED RENDERING
  • Polygonal Meshes
  • Texture Mapping
  • Impostors
  • Point Rendering (Surfels)
  • Light Field Rendering
  • Lumigraph
  • Plenoptic Function

IMAGE-BASED RENDERING
62
7 Nouvelles techniques de renduPoint Rendering
(Surfels)
  • Modèles complexes gtgt polygones, écran toujours
    pareil
  • projection
  • mais
  • projection
  • Plus de necessité de prendre des polygones

63
7 Nouvelles techniques de renduPoint Rendering
(Surfels)

Littérature p. ex. Pfister et al.
2000, Rusinkiewicz et Levoy 2000
64
7 Nouvelles techniques de renduPoint Rendering
(Surfels)

65
7 Nouvelles techniques de renduPoint Rendering
(Surfels)
  • Niveaux de détails gérés par un arbre BSP

66
7 Nouvelles techniques de renduPoint 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 )

67
8 Definitions
Realité virtuelle
Immersion
Environnement virtuel
Utilisateur
Interaction

Son
Synthèse dimage
Applications - Géomarketing - Prototypage -
Virtual design - Simulateurs -
Interacteurs

68
8 Définitions
Synthèse dimage
Modélisation
Visualization
Rendu
Techniques d Illumination
Rendu par Points


Rendu par Polygons
Raytracing
Radiosité
Rendu basé Image
Write a Comment
User Comments (0)
About PowerShow.com