Fanny CHEVALIER Guillaume CAURANT Rendering Massive Terrains using Chunked Level of Detail Control Ulrich Thatcher Fanny CHEVALIER Guillaume CAURANT
Sommaire Contexte Méthodes existantes Objectifs Chunk LOD Principe Algorithme Avantages, inconvénients Démonstration
Contexte Pourquoi le rendu de terrain ? Simulateur de vol, jeux, visites de sites… Qu’est ce que le rendu de terrain idéal ? Pourquoi la simplification de terrain ? Énormément de données Rendu 3D réaliste en temps réel
Techniques existantes Continuous LOD rendering of Height Fields (P. Lindstrom 1996) Progressive Meshes (H. Hoppe 1996) ROAM (Real-Time Optimally Adapting Meshes) (M. Duchaineau 1997)
LOD : Level Of Detail Créer différents niveaux de détails d’un objet (pré-traitement) 69,451 polygones 2,502 polygones 251 polygones 76 polygones
LOD : Level Of Detail Créer différents niveaux de détails d’un objet (pré-traitement) Adapter la résolution à la distance de l’objet (pendant l’exécution)
τ = erreur sur l’affichage Erreur commise τ = 2 pixels 79 382 polygones τ = 4 pixels 25 100 polygones τ = erreur sur l’affichage
Continuous LOD (P. Lindstrom) Simplification de la surface par bloc On peut représenter un bloc en moindre résolution à condition que l’erreur commise sur la topologie ne dépasse pas un certain taux
Continuous LOD (P. Lindstrom) Simplification d’un bloc par point deux polygones peuvent être fusionnés à condition que l’erreur commise sur la topologie ne dépasse pas un certain taux
Progressive Meshes (H. Hoppe) Nouvelle conception de simplification de maillage : Pas de suppression d’arête Fusion progressive de sommets vt vl vl vr vr vs ’ vs
Progressive Meshes (H. Hoppe) Raffinement sélectif
ROAMing Terrain (M. Duchaineau) dépendant de l’angle de vue
ROAMing Terrain (M. Duchaineau) dépendant de l’angle de vue Spécialisé pour la visualisation de terrain (les données « Height Field » sont les entrées)
ROAMing Terrain (M. Duchaineau) Principe de « split and merge » selon des files de priorité basées sur l’erreur commise
Comparaison des deux méthodes CLOD ROAM Simplification par bloc OUI NON Transitions douces Dépend du point de vue Adapté au mapping de texture Frame-to frame coherence
Objectifs Simplification par bloc Transitions douces Dépendant du point de vue Adapté au mapping de texture
Chunck LOD : Principe Quadtree de données statiques Niveau de détail
Chunck LOD : Principe Le cœur de la méthode Un Quadtree de données statiques (mesh) appelé « chunks » Données statiques générées par une étape préalable de simplification de mesh classique Morphing des « chunks » au passage des différents niveaux Textures incorporées avec les données géométriques
La Dépendance Au Point De Vue Chaque « Chunck » possède une boîte englobante et une erreur géométrique maximum Cette erreur est la même pour chaque niveaux de l’arbre Grâce à cela nous pouvons appliquer un algorithme basique de LOD Quand on constate que l’erreur produite par le LOD n’est plus acceptable par rapport à la distance au point de vue, on change de niveau dans l’arbre
Discontinuité Du Maillage Problèmes de discontinuité à la jonction de deux « chunk » de résolutions différentes
Discontinuité Du Maillage Problèmes de discontinuité à la jonction de deux « chunk » de résolutions différentes utilisation de quadrangles verticaux le long du bord de chaque « chunk »
Discontinuité Du Maillage Problèmes de discontinuité à la jonction de deux « chunk » de résolutions différentes Pour régler le problème, utilisation de quadrangles verticaux le long du bord de chaque « chunk » Ces quadrangles sont texturés en étirant la texture du « chunk » Tout ceci est statique et fait partie intégrante du « chunk » (donc évite des calculs superflus lors de l’affichage)
Transitions Douces Un deuxième problème se pose : comment rendre non perceptible le passage entre deux niveaux de résolution Utilisation d’un paramètre de morphing qui agira sur la hauteur des vertices (interpolation linéaire) Ce paramètre est compris entre 0 et 1 0 : lorsque l’on va découper le « chunk » 1 : lorsque l’on va fusionner plusieurs « chunks »
Textures Adaptatives Pour éviter des artefacts visuels, il faut avoir une résolution de texture adaptée De plus cela permet de réduire l’espace mémoire occupé Grâce à la structure en quadtree nous avons la possibilité de faire du MipMapping en intégrant une texture avec une résolution adéquate pour le niveau dans lequel elle se trouve
Le Stockage Des Données Données très volumineuses Facile de stocker les données hors du corps du programme et de les charger à la demande grâce à la hiérarchie des « chunks » Utilisation d’un thread dédié au chargement des données
Avantages Et Inconvénients Textures intégrées avec la géométrie Facile a intégrer hors du corps du programme Transitions douces entre les niveaux Charge CPU peu élevée
Avantages Et Inconvénients Pré-traitement fastidieux Données statiques Nombre de triangles supérieur à un algorithme classique de simplification de maillage
Conclusion !!!