Rendu de terrain en temps réel

publicité
RENDU DE TERRAIN
• Problématique :
Rendre une très large zone de terrains
en la simplifiant au maximum pour
réduire le nombre de polygones à
afficher.
A.Bailly & L.Zaslavsky
1
Représentation du terrain
• Le terrain est représenté par une grille
d’élévation :
X
1
10
20
17
15
12
16
21
32
16
8
14
Y
A.Bailly & L.Zaslavsky
2
Techniques de rendu de terrain
en temps réel
• Continuous LOD rendering of heigh fields
(1996)
• ROAM : Real-time Optimally Adapting
Meshes (1997)
• Comparaison des 2 méthodes
A.Bailly & L.Zaslavsky
3
Real-Time, Continuous Level of Detail
Rendering of Height Fields
A.Bailly & L.Zaslavsky
4
Représentation du terrain
La surface
• La surface correspondante est composée d’un
ensemble de blocs de triangles de taille 3x3
points :
A.Bailly & L.Zaslavsky
5
Représentation du terrain
Les blocs
• Chaque bloc peut être décomposé en une
grille de sous-blocs de même dimension :
A.Bailly & L.Zaslavsky
6
Algorithme
Étapes
Cet algorithme se décompose en deux
étapes :
 Simplification d’un bloc point par point.
 Simplification de la surface par bloc.
A.Bailly & L.Zaslavsky
7
Algorithme
Simplification par point
• Les deux triangles droit et gauche d’un
quadrant peuvent être fusionnés selon qu’une
certaine condition soit vérifiée :
A.Bailly & L.Zaslavsky
8
Simplification par point
Condition de simplification
• Soit  la distance verticale maximale entre les
deux triangles obtenus après simplification :
A.Bailly & L.Zaslavsky
9
Simplification par point
Condition de simplification
•  projeté sur le plan de projection indique
l’erreur maximum perceptible entre les deux
triangles fusionnés et le triangle résultat de la
fusion.
• Si  est inférieur à un certain seuil  alors les
triangles peuvent être fusionnés.
• L’opération est répétée récursivement avec le
triangle obtenu et un triangle adjacent.
A.Bailly & L.Zaslavsky
10
Algorithme
Simplification par bloc
• Pour ne pas avoir à considérer tous les points
de la surface pour la simplification, l’algorithme
procède par bloc.
A.Bailly & L.Zaslavsky
11
Simplification par bloc
Principe général
• Si toutes les valeurs  des points d’un bloc
sont inférieures à  alors le bloc peut être
directement remplacé par un bloc de moindre
résolution.
• De plus, de larges zones de terrain peuvent
être éliminées par test avec la pyramide de
vue.
A.Bailly & L.Zaslavsky
12
Résultats
A.Bailly & L.Zaslavsky
13
ROAMing Terrain - introduction
• Algorithme populaire de
LOD
• Utilisé dans simulateurs
de vol, jeux, réalité
virtuelle…
• Principe de découpage
et fusion de facettes
ingénieux
A.Bailly & L.Zaslavsky
14
Structure de données – arbre binaire
Va
 Calculé dans pré-processeur
(Vo,V1)
Vo
V1
Vc1
Level 1
A.Bailly & L.Zaslavsky
(Vc1,Va,Vo)
(Vc1,V1,Va)
15
Structure de données – arbre binaire
Va
Vc3
Vc2
(Vo,V1)
Vo
Vc1
Level 2
V1
(Vc1,Va,Vo)
(Vc1,V1,Va)
(Vo,Vc1,Vc2) (Vc2,Vc1,Va) (Va,Vc1,Vc3)
(Vc3,Vc1,V1)
On rajoute des feuilles TQ LOD non atteint
A.Bailly & L.Zaslavsky
16
Accès aux structures de données :
Split / merge opérations
découpage
fusion
A.Bailly & L.Zaslavsky
3 cas :
• La face fait partie d’un
diamant - Split la face
et « Base Neighbor ».
• La face est à coté du
maillage - Trivial, split la
face.
• La face n’appartient pas
à un diamant – Forcer le
découpage du « Base
Neighbor ».
17
Forcer le découpage d’une face
Base neighbor
Current triangle
• « Current triangle »
n’appartient pas à un
diamant
• récursivement,
• le triangle original
forcer le découpage peut maintenant
jusqu’à trouver un être découpé.
diamant !
A.Bailly & L.Zaslavsky
18
Optimisation par files de priorités
• Priorités sur chaque facette.
• Si point de vue change : modification des
priorités selon les frames précédentes.
• Split file : contient les triangles à raffiner.
• Merge file : contient les triangles à fusionner.
Cohérence frame-to-frame (+ pour les grands
terrains !)
Maillage optimal : 1ère frame coûteuse, le
reste peu coûteux grâce aux files.
A.Bailly & L.Zaslavsky
19
Étude de performances
• Performance proportionnelle au nb de
changements de triangles de la frame
précédente ! et non la taille de la carte !
• Tests sur Indigo2 Silicon Graphics
• View frustum culling : ok - flags pour chq
triangle de l’arbre binaire.
• T-Stripping : bien, dû à la structure du terrain
A.Bailly & L.Zaslavsky
20
Évolutions…
Diamond Terrain algo (2001) : H.Hakl
• Basé sur ROAM, avec une structure de
triangle quadtrees.
• 4 files LIFO (à la place des files de priorités)
• Meilleur pr triangle stripping
Moins d’opérations split/merge
ex : 5 Splits pr Diamond pr réduire une face
en 16 sous-facettes. ROAM fait 15 splits !
A.Bailly & L.Zaslavsky
21
Quelques graphiques…
A.Bailly & L.Zaslavsky
22
Comparaison des méthodes
ROAM
LOD Height Field
+ Calcul conservé d’une + Simplification par
frame sur l’autre.
bloc.
- Calcul refait à chaque
frame.
+ La structure de données employée pour
représenter la surface :
+ Pas de problème de disjonction de face.
+ Accélération par Triangle Stripping.
A.Bailly & L.Zaslavsky
23
Téléchargement