• Aucun résultat trouvé

8 10 12 14 16 18 20 22 24 0 20 40 60 80 100 120 140 160 0 2000 4000 6000 8000 10000 12000 TPS Triangles Temps (secondes) TPS TPS cible Triangles 0 10 20 30 40 50 0 20 40 60 80 100 120 140 160 0 20 40 60 80 100 120

Nombre de tuiles, Mega-octets

Kilo-octets Temps (secondes) Telechargements Tuiles chargees Tuiles affichees RAM utilisee

Fig. 6.14: Performances mesur´ees durant une navigation sur le mod`ele du Grand Canyon sur PocketPC. Les valeurs mesur´ees sont les mˆemes que sur la figure 6.13.

et que l’arithm´etique y est effectu´ee uniquement en valeurs enti`eres. Il faut en effet noter que dans notre impl´ementation, tous les calculs en virgule flottante sont ´emul´es de fa¸con logicielle et que notre code n’a pas ´et´e sp´ecialement optimis´e pour transposer certains calculs en virgule fixe.

105

Fig. 6.15: T´el´echargement progressif et rendu adaptatif de grands terrains. Mod`ele du Buga-boos (8 millions de triangles et 208MB of textures) visualis´e sur un PocketPC VGA 640x480 avec un taux de rafraˆıchissement fix´e `a 2tps et connect´e `a l’aide d’une connexion WiFi.

6.8.1 T´el´echargement progressif des tuiles

Afin d’acc´el´erer le chargement des tuiles et d’augmenter la quantit´e de tuiles charg´ees en m´emoire, nous avons d´ecid´e d’effectuer un t´el´echargement progressif des niveaux de tuiles plutˆot que de recevoir d’un seul coup l’int´egralit´e du MNA la d´ecrivant. Cette approche utilise la capacit´e d’Elkano consistant `a permettre le d´eveloppement de nœuds progressifs `a l’aide d’une communication entre le nœud existant cˆot´e client et son homologue cr´ee cˆot´e serveur. L’id´ee consiste alors `a ce que le client t´el´echarge au besoin les vertex n´ecessaires `a l’affichage d’un niveau de strip-mask plus d´etaill´e. Afin d’augmenter la vitesse de r´eponse du serveur, nous avons mis au point un format de fichier sp´ecifique o`u les points n´ecessaires pour passer du niveau n au niveau n+1 sont stock´es de fa¸con contigu¨e. Une seule op´eration de lecture est alors n´ecessaire pour lire les points `a envoyer au client. Lorsque le client re¸coit les points, il les ajoute dans un tableau de vertex et augmente le compteur d´ecrivant le niveau de masque maximum disponible pour cette tuile.

Les premiers r´esultats obtenus (voir figure 6.15) avec ce nouveau niveau de streaming localis´e sont prometteurs. Cependant, il reste `a d´eterminer une politique de lib´eration des niveaux : par exemple lorsqu’au bout d’un certain nombre de trames, le niveau de masque maximum m n’a pas ´et´e utilis´e, celui-ci est d´ecr´ement´e et la m´emoire utilis´ee pour stocker les points est lib´er´ee. Il faudra ´egalement ´etudier `a partir de quel moment, fonction des ressources disponibles, de la bande passante et de la latence du r´eseau, il peut ˆetre utile d’utiliser ce niveau de streaming.

6.8.2 G´eovisualisation

Avec la disponibilit´e de bases de donn´ees d’informations g´eographiques mondiales, des outils de visualisation grand public de la surface terrestre extrˆemement efficaces sont appa-rus ces derni`eres ann´ees (en particulier NASA WorldWind, KeyHole devenu Google Earth ou encore le G´eoPortail de l’IGN). Toutes ces applications proposent des solutions de visualisa-tion de MNA de la terre (le plus souvent les donn´ees de la mission SRTM) et de navigation totalement g´eor´ef´erenc´ees. L’utilisateur peut alors acc´eder directement `a un point du globe `a l’aide de ses coordonn´ees g´eographiques.

Nous avons d´ecid´e d’associer ce m´ecanisme `a notre solution de rendu de terrains. Notre plate-forme de visualisation Elkano ´etant compatible avec VRML97, il nous est paru naturel de lui adjoindre un support pour l’extension GeoVRML.

Le GeoVRML [RIL00] est une sp´ecification propos´ee par le Consortium Web3D en 1998 d´efinissant des extensions `a VRML97 pour permettre la cr´eation d’applications g´eographiques. Concr`etement, le GeoVRML est un ensemble de 10 nouveaux nœuds permettant de g´eor´ef´erencer les objets dans l’espace. En particulier, le nœud GeoElevationGrid, qui ´etend le nœud VRML ElevationGrid, permet de g´en´erer, `a une position g´eographique donn´ee (la-titude, longitude), le maillage d’un terrain `a partir d’un MNA. La g´eom´etrie d’un tel terrain prend alors automatiquement forme sur l’ellipso¨ıde terrestre. GeoVRML a ´et´e propos´e et ac-cept´e comme partie int´egrante du r´ecent langage X3D (eXtensible 3D, format de description de sc`enes 3D cr´e´e par le consortium Web3D dans le but de succ´eder `a VRML97 et normalis´e par l’ISO en 2005).

L’impl´ementation du GeoVRML au sein d’Elkano a ´et´e ´egalement l’occasion pour nous de permettre la lecture des fichiers au format X3D. Grˆace `a ces extensions, nous avons pu tr`es facilement cr´eer une application de g´eovisualisation du type TerraVision exploitant notre technique de rendu adaptatif.

6.9 Bilan

Dans ce chapitre, nous avons pr´esent´e une solution permettant le t´el´echargement pro-gressif et la visualisation temps-r´eel de grands MNA textur´es. Tandis que la plupart des approches classiques se concentrent sur l’optimisation en temps r´eel du maillage de fa¸con tr`es locale, notre approche tend `a all´eger les calculs sur le CPU et la consommation m´emoire en transf´erant la charge sur le processeur graphique 3D (ou son ´emulation logicielle). Autour d’un algorithme de pavage et une structure de donn´ees multi-r´esolution par tuile, nous avons propos´e une technique adaptative en regard des capacit´es de la machine client. D’un cˆot´e, la gestion dynamique des tuiles bas´ee sur une adaptation m´emoire permet un t´el´echargement progressif des donn´ees (g´eom´etrie et images de texture). Ce m´ecanisme permet `a l’utilisateur de naviguer imm´ediatement dans l’environnement virtuel. D’un autre cˆot´e, les tuiles sont rendues efficacement en utilisant un ensemble de masques pr´ecalcul´es repr´esentant les indices d’une chaˆıne de triangles. La r´esolution des tuiles est choisie selon des param`etres globaux et locaux ainsi qu’en fonction des capacit´es de la carte graphique 3D dans le but d’atteindre un taux de rafraˆıchissement interactif donn´e. Les r´esultats que nous avons pr´esent´es attestent de la robustesse de l’adaptation obtenue.

Dans les extensions futures possibles, nous envisageons d’utiliser une structure de donn´ees multi-r´esolution permettant le t´el´echargement progressif de chaque tuile. De cette fa¸con, les niveaux de tuiles pourraient ˆetre t´el´echarg´es uniquement en cas de besoin. Cette r´epartition

107

du t´el´echargement dans le temps permettrait de t´el´echarger plus rapidement les tuiles vi-sibles proches `a de bonnes r´esolutions, tandis que les tuiles lointaines seraient t´el´echarg´ees uniquement `a de faibles r´esolutions. Une autre am´elioration serait d’´eviter d’une fa¸con plus efficace encore les trous dus `a la discontinuit´e de la surface. Nous pensons que ce probl`eme pourrait ˆetre r´esolu `a l’aide d’une autre d´efinition des masques, prenant en compte des zones de transition pour assurer une continuit´e entre les tuiles adjacentes.

Chapitre 7

Visualisation de terrains `a distance

7.1 Introduction

Dans ce chapitre nous pr´esentons deux techniques de visualisation de sc`enes 3D g´eographiques que nous avons mises au point et qui sont bas´ees sur un mod`ele client / serveur dans lequel le serveur synth´etise l’image tandis que le client l´eger est utilis´e comme moyen d’affichage et d’interaction uniquement. Ces techniques permettent de r´epondre efficacement aux probl`emes de ressources m´emoire et calculatoires des assistants personnels ou t´el´ephones portables disposant d’une connexion `a un r´eseau sans fil.

Dans la section7.2nous pr´esentons une technique totalement connect´ee dans laquelle le ser-veur g´en`ere au fur et `a mesure le flux d’images synth´etis´ees en fonction des manipulations effectu´ees par l’utilisateur qui lui sont transmises.

La section 7.3 pr´esente l’´ebauche d’une technique de rep´erage offrant `a l’utilisateur en si-tuation de mobilit´e de type randonn´ee, un aper¸cu du panorama l’environnant ainsi que des donn´ees contextuelles pouvant l’int´eresser. Dans ce cas le protocole utilis´e est non connect´e : le client fait une requˆete en fournissant au serveur ses coordonn´ees et celui-ci lui retourne un ensemble de donn´ees (images et m´eta-donn´ees) correspondant `a sa position.