![Page 1: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/1.jpg)
RENDU DE TERRAINRENDU 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
![Page 2: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/2.jpg)
Représentation du terrainReprésentation du terrain
• Le terrain est représenté par une grille d’élévation :
1 10 20 17
15 12 16 21
32 16 8 14
X
YA.Bailly & L.Zaslavsky 2
![Page 3: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/3.jpg)
Techniques de rendu de Techniques de rendu de terrain en temps réelterrain 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
![Page 4: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/4.jpg)
Real-Time, Continuous Level of Detail Real-Time, Continuous Level of Detail Rendering of Height FieldsRendering of Height Fields
A.Bailly & L.Zaslavsky 4
![Page 5: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/5.jpg)
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
![Page 6: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/6.jpg)
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
![Page 7: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/7.jpg)
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
![Page 8: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/8.jpg)
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
![Page 9: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/9.jpg)
Simplification par point
Condition de simplification
• Soit la distance verticale maximale entre les deux triangles obtenus après simplification :
A.Bailly & L.Zaslavsky 9
![Page 10: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/10.jpg)
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
![Page 11: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/11.jpg)
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
![Page 12: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/12.jpg)
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
![Page 13: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/13.jpg)
Résultats
A.Bailly & L.Zaslavsky 13
![Page 14: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/14.jpg)
ROAMing TerrainROAMing Terrain - - introductionintroduction
• 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
![Page 15: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/15.jpg)
Structure de données – arbre Structure de données – arbre binairebinaire
Va
Vo V1
(Vo,V1)
Vc1(Vc1,Va,Vo)
(Vc1,V1,Va)
Level 1
A.Bailly & L.Zaslavsky 15
Calculé dans pré-processeur
![Page 16: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/16.jpg)
Structure de données – arbre Structure de données – arbre binairebinaire
Va
Vo V1
(Vo,V1)
(Vc1,Va,Vo)
(Vc1,V1,Va)
Vc1
Vc2 Vc3
(Vo,Vc1,Vc2)
(Vc2,Vc1,Va)
(Va,Vc1,Vc3)
(Vc3,Vc1,V1)
Level 2
A.Bailly & L.Zaslavsky 16
On rajoute des feuilles TQ LOD non atteint
![Page 17: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/17.jpg)
Accès aux structures de Accès aux structures de données :données : Split / merge opérationsSplit / merge opérations
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 ».
découpage
fusion
A.Bailly & L.Zaslavsky 17
![Page 18: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/18.jpg)
Forcer le découpage d’une Forcer le découpage d’une faceface
Current triangle Base neighbor
• « Current triangle » n’appartient pas à un diamant
• récursivement, forcer le découpage jusqu’à trouver un diamant !
• le triangle original peut maintenant être découpé.
A.Bailly & L.Zaslavsky 18
![Page 19: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/19.jpg)
Optimisation par files de Optimisation par files de prioritéspriorité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
![Page 20: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/20.jpg)
Étude de performancesÉ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
![Page 21: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/21.jpg)
Évolutions…É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/mergeex : 5 Splits pr Diamond pr réduire une face en 16 sous-facettes. ROAM fait 15 splits !
A.Bailly & L.Zaslavsky 21
![Page 22: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/22.jpg)
Quelques graphiques…Quelques graphiques…
A.Bailly & L.Zaslavsky 22
![Page 23: 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](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bab38/html5/thumbnails/23.jpg)
Comparaison des méthodesComparaison des méthodes
ROAM LOD Height Field+ Calcul conservé d’une frame sur l’autre.
+ Simplification par 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