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