Brevet FR2936074A1 — publié le 20100319

PROCEDE DE REPRESENTATION D'UNE ZONE D'INTERET D'UN OBJET TRIDIMENSIONNEL L'invention concerne un procédé de représentation d'une zone d'intérêt d'un objet tridimensionnel par un poste client distant ainsi qu'une architecture informatique pour la mise en œuvre d'un tel procédé. Le brevet publié sous le numérc FR-2 870 374 Bl divulgue une architecture client-serveur pour la visualisation d'une maquette numérique. L'architecture divulguée dans ce brevet comprend des données tridimensionnelles, un serveur comportant un module de synchronisation réseau, et un ou plusieurs postes clients distants. Chaque poste client possède un module de visualisation pour la représentation de la maquette et un module de synchronisation réseau. Dans cette architecture, les modules de synchronisation autorisent la mise à jour d'états de scène de la maquette au sein dudit réseau, entre le ou les postes clients et le serveur. La définition de la maquette visualisée est tout d'abord faible puis s'améliore avec le temps lorsque l'état de scène souhaité par le client ne change pas. Ce brevet divulgue donc des moyens destinés à permettre la représentation d'un objet tridimensionnel lorsque les postes clients sont éloignés des données qui définissent ledit objet. Toutefois et., en particulier, lorsque la quantité de données est importante et/ou lorsque la bande passante du réseau est faible ou insuffisante et/ou lorsque les capacités de traitement des données par le poste client sont réduites, il peut être particulièrement intéressant d'associer des moyens à l'architecture divulguée dans le document brevet précité, pour améliorer encore les performances de cette architecture et ainsi permettre aux clients de visualiser une zone d'intérêt de l'objet tridimensionnel et d'interagir sur cette zone d'intérêt sans que l'éloignement physique des données représente une difficulté quelconque, vu de l'utilisateur client. Compte tenu de ce qui précède, un problème que se propose de résoudre l'invention est de réaliser un procédé de représentation d'une zone d'intérêt d'un objet par un ou plusieurs postes clients distants, ainsi qu'une architecture informatique correspondante, qui permette d'assurer une visualisation adéquate et presque immédiate de l'objet, dans des détails acceptables, même lorsque la quantité de données, qui définit l'objet, est particulièrement importante et/ou même lorsque la bande passante autorisée par le réseau de communication est insuffisante et/ou même lorsque les capacités de traitement des données par le poste client sont réduites. La solution proposée de l'invention à ce problème posé a pour premier objet un procédé de représentation d'une zone d'intérêt d'un objet tridimensionnel à partir d'un ou plusieurs postes clients distants, comportant les étapes selon lesquelles : on fournit des données numériques tridimensionnelles relatives audit objet tridimensionnel et on fournit au moins un poste client distant comportant des moyens pour la visualisation dudit objet 25 tridimensionnel, caractérisé en ce qu'il comporte en outre les étapes suivantes selon lesquelles : lesdites données numériques sont fragmentées selon un arbre de fragmentation spatiale ; 30 des niveaux de détails sont associés avec les noeuds de l'arbre de fragmentation pour farmer un arbre de details ; le poste client distant envoie une requête de visualisation d'une zone d'intérêt de l'objet 35 tridimensionnel ; une configuration d'arbre de détails est définie dynamiquement en réponse à ladite requête de visualisation de la zone d'intérêt dudit objet ; et la zone d'intérêt de l'objet est représentée par le poste client selon des niveaux de détails contenus dans la configuration de l'arbre de détails définie dynamiquement en réponse à ladite requête. Elle a pour second objet une architecture informatique pour la mise en oeuvre du procédé ci-dessus. De manière avantageuse, - la configuration de l'arbre de détails générée dynamiquement tient compte des contraintes environnementales qui pèsent sur le poste client ; - les contraintes environnementales comprennent la bande passante dont dispose le client et/ou la capacité de traitement des données tridimentionnelles ; - l'arbre de détails comporte des noeuds répartis selon les niveaux de détails ; - l'arbre de fragmentation comporte des noeuds répartis selon les niveaux dje regroupement ; - les noeuds de l'arbre de détails sont associés aux noeuds de l'arbre de fragmentation ; - l'arbre de détails et l'arbre de fragmentation sont des arbres de même ordre, par exemple des arbres d'ordre 2 ; - le procédé comporte une étape de prétraitement des données selon laquelle les niveaux de détails sont associés aux niveaux de regroupement des données fragmentées ; - le procédé comporte l'étape suivante selon laquelle on compose de nouveaux niveaux avec les niveaux de détails qui existent déjà chez le client ; - les étapes de fragmentation et/ou de regroupement des données fragmentées et/ou de prétraitement des données et/ou de génération dynamique de l'arbre de détails sont réalisées sur une grille informatique ; - la représentation de la zone d'intérêt est effectuée en temps réel, au niveau du poste client. L'invention sera mieux comprise à la lecture de la description non limitative qui va suivre, rédigée au regard des dessins annexés, dans lesques la figure 1, présente, de manière schématique, une 5 architecture client-serveur pour la aise en oeuvre du procédé selon l'invention ; les figures 2A, 2B et 2C schématisent la fragmentation spatiale des données numériques en données fragmentées selon l'invention ; 10 les figures 3A, 3B et 3C illustrent la correspondance entre un arbre de détails et des niveaux de représentation des données fragmentées selon l'invention les figures 4A et 4B illustrent la continuité 15 géométrique de niveau 0 qui existe entre les parties communes d'un père et d'un fils dans les niveaux de représentation des données fragmentées selon l'invention les figures 5A et 5B schématisent les étapes 20 conduisant à la définition de l'arbre de détails selon l'invention les figures 6A et 6B schématisent les étapes successives initiées à la suite d'une requête d'un client pour la visualisation d'un objet tridimensionnel selon 25 l'invention ; et les figures 7A, 7B et 7C sont des illustrations d'exemples de mise en oeuvre de l'invention lorsque, respectivement, les capacités de traitement des données par le poste client sont réduites ou la bande passante 30 est faible et la zone d'intérêt est globale, les capacités de traitement des données par le poste client sont réduites ou la bande passante est moyenne et la zone d'intérêt est locale, et les capacités de traitement des données par le poste client sont moyennes ou la bande 35 passante est moyenne et la zone d'intérêt est locale. Ainsi que cela est montré à la figure 1, l'invention repose sur une architecture client-serveur du type de celle divulguée dans le brevet précité FR-2870374 B1. Cette architecture comprend des données 1, un serveur 2 et un ou plusieurs postes clients ou clients 3a, 3b distants du serveur 2. Le serveur 2 et les clients 3a, 3b sont connectés entre eux au sein d'un réseau de communication 4. Les postes clients 3a, 3b, sont des postes informatiques du type classique par exemple des ordinateurs personnels (PC) munis notamment d'un microprocesseur et d'une mémoire volatile, d'un disque dur, d'un clavier et de moyens de représentation d'images comprenant un écran et une carte ou un composant graphique apte à représenter des environnements 3D supportant tous types d'objets tels que des objets surfaciques, volumiques, des collectio:zs de points, des courbes, des lumières. Ces postes comportent en outre un module qui leur permet de définir une taille souhaitée d'une représentation 3D en fonction de paramètres environnementaux tels que l'espace disque, l'espace mémoire, la capacité graphique, la bande passante réseau. Ils comportent enfin des modules pour transférer des données dans le réseau et recevoir des données dudit réseau. Le serveur 2 est par exemple un serveur classique comprenant une mémoire non volatile de type disque dur pour permettre le stockage des données 1. Le serveur est apte à recevoir et transférer des données dans le réseau. Le réseau 4 est un réseau du type Internet. Les données 1 sont des données numériques, qui définissent un objet en trois dimensions. Il s'agit donc de données numériques tridimensionnelles (3D). La quantité de données définissant l'objet est massive. Dans un exemple, cette quantité de données est de plusieurs téraoctets. Ainsi, ces données ne peuvent généralement pas être entièrement contenues par le poste client. L'objet est un objet quelconque. Il s'agit par exemple d'un ensemble de blocs sismiques, d'un matériau, d'un fluide, d'un objet mécanique, d'une partie du corps humain ou animal, voire de la surface terrestre. Les données 3D représentatives de cet objet sont donc, par exemple, des données pétrolières, des résultats de simulation de l'écoulement d'un fluide et de déformation de matériaux, des données relatives à un véhicule par exemple automobile ou aérien, des données médicales telles que des données d'IRM ou des échographies 3D, des données cartographiques telles que des informations de terrain ou relatives à des immeubles, ou encore, des données du type de celles fournies par des fournisseurs de services sur Internet, notamment les données de cartographie fournies par GoogleEarthTM. Les données numériques 3D sont susceptibles d'être contenues, dans le serveur, sous une forme dite native et sous une forme dite convertie dans un format standard exploitable. Les données natives sont des données s:ockées dans des formats connus du marché ou propriétaires. Ils s'agit notamment des formats utilisés par les outils de CAO existants tels que CatiaTM , Pro-EngineerTM, VA-FSTM, IGESTM, AutodeskTM, AliasTM, AliasTM ou SoftimageTM. Selon l'invention, elles sont avantageusement converties dans un format standard exploitable dit GVZML, qui est le format adopté par le demandeur. Il apparaît en effet particulièrement avantageux que les données soient converties sous un format unique en vue de la mise en oeuvre du procédé selon l'invention. Selon l'invention, les données numériques 3D formatées sont fragmentées en données fragmentées. Cette fragmentation est spatiale. Elle est réalisée en vue d'une répartition des informations ultérieure et de calculs par exemple sur une grille informatique. Elle a pour objectif d'améliorer le rendement des processus de génération dynamique de niveaux de détails. A la figure 2B, on a représenté un exemple d'une fragmentation de la surface triangulée representée par la figure 2A selon l'invention. Ainsi que cela est représenté dans cette figure, ces données sont fragmentées sous la forme groupes de triangles. Toutefois, d'autres méthodes de fragmentation sont susceptibles d'être utilisées selon l'invention. L'objectif de la fragmentation spatiale selon l'invention est de découper l'objet en sous-parties de poids de données équivalent présentant une cohérence spatiale. Ainsi, les groupes de triangles collatêraux bl-1, bl-2, bl-3 et bl-4 se réfèrent à quatre portions de surface collatérales de la surface tridimensio:znelle de l'objet et présentent par exemple approximativement un même poids en données. Dans l'exemple précité, les blo:s bl-1 et bl-2 comprennent 9 triangles chacun alors que les blocs bl-3 et bl-4 comprennent 8 triangles chacun. Ainsi que cela apparaît à la figure 2C, on définit, selon l'invention, un arbre de fragmentation des données comportant des nœuds répartis par niveaux. Le premier niveau, c'est-à- dire le niveau pour lequel N = 1, correspond au niveau des blocs bl-1, bl-2, bl-3 et bl-4. Tl s'agit donc du niveau correspondant aux blocs regroupant directement les triangles résultant de la fragmentation. Au niveau N = 2, ces blocs sont regroupés deux par deux. Au troisième niveau, c'est-à-dire au niveau N = 3, les regroupements de blocs du niveau N = 2 sont regroupés une nouvelle fois. L'arbre de fragmentation est ainsi un arbre d'ordre deux, c'est-à-dira un arbre dans lequel un père repartit son espace sur deux fils. Dans d'autres variantes de réalisation selon l'invention, l'arbre ne sera pas d'ordre 2 mais d'un ordre quelconque. Selon une autre étape du procédé selon l'invention, on définit un arbre de détails d'ordre p comportant P niveaux de détails, p étant un nombre entier supérieur ou égal à 2, P étant un nombre entier supérieur ou égal à 0. A chaque niveau P, l'arbre comprend pP noeuds. A la figure 3A, on a représenté un arbre de détails d'ordre 2 comportant 3 niveaux de détails. Il s'agit des niveaux P = 0 (ou niveau de base), ainsi que des niveaux P = 1 et P = 2. Au niveau de base, l'arbre comprend un unique noeud f0. Au niveau P = 1, il com:rend 21 noeuds f1-1 et fl-2. Au niveau P = 2, ii comprend 22 = 4 noeuds f2-1, f2-2, f2-3 et f2-4. Chaque niveau de l'arbre de détail; est associé avec un niveau N de regroupement des données fragmentées. Ainsi, comme cela apparaît à la figure 3A précitée, le niveau de détail de base P = 0 est associé avec le niveau de regroupement N = 3. Dans cette association, chaque noeud d'un niveau de détails est associé à une représentation d'un regroupement de blocs donné. Ainsi, toujours au niveau de détails P = 0, l'unique noeud f0 est associé a une représentation du regroupement des blocs bl-1, bl-2, bl-3 et bl-4. Par contre, ainsi que cela est montré à la figure 3B, les noeuds fl-2 et fl-2 du second niveau de détails (P = 1) sont associés chacun avec une représentation un regroupement de blocs du niveau N = 2. Le noeud fi-1 est associé au regroupement des blocs bl-1 et bl-2 et le noeud fl-2 est associé au regroupement des blocs bl-3 et bi-4. Finalement, et ainsi que cela est cette fois montré à la figure 3C, au niveau de détails P = 2, le noeud f2-1 est associé au bloc bl-1, le noeud f2-2 est associé au bloc bl-2, le noeud f2--3 est associé au bloc bl-3 et le noeud f2-4 est associé au bloc bi-4. Chaque niveau de détails P correspond à un niveau de résolution de la donnée 3D. Plus le niveau est haut, c'est-à-dire plus P est grand, plus =La résolution est importante. Ainsi, le niveau P = 2, en correspondance avec les blocs bl-1 à bl-4 de la figure 3C, correspond au plus haut niveau de résolution de l'arbre de détails. En effet, il présente 8 + 8 + 9 + 9 triangles. Au niveau N = 2, la résolution est plus faible, chaque regroupement de blocs présentant 10 triangles (Figure 3B). Au niveau N = 1, la résolution est plus faible encore, le regroupement de blocs présentant cette fois 11 triangles en tout (Figure 3A). A la figure 4A, on a représenté un regroupement de blocs. Ainsi que cela est montré à la figure 4B, ce regroupement de blocs se subdivise en deux blocs fils : les blocs bl-3 et bl-4 au niveau de regroupement N = 1. Les niveaux de détails entre les parties communes d'un père et de ces fils sont de continuité géométrique de niveau zéro. Les figures 5A et 5B présentent différente étapes du procédé selon l'invention. Ainsi que cela apparaît dans cette figure, les données numériques natives 3D représentatives de l'objet sont tout d'abord converties puis fragmentées en groupes de triangles par exemple. Les éléments résultant de la fragmentation sont regroupés de manière à définir un arbre de fragmentation tel que représenté à la figure 5B. Puis, on exécute une étape de prétraitement des données numériques 3D formatées. Ce prétraitement comprend l'exécution d'une commande LOD Preprocessing. L'exécution de cette commande permet de préparer les niveaux de détails pour chaque noeud de l'arbre de fragmentation. Les figures 6A et 6B présentent différentes étapes du procédé selon l'invention, qui se déroulent à la suite d'une requête envoyée par un client souhaitant visualiser une représentation de l'objet tridimensionnel selon l'invention, ladite représentation étant fonction d'une zone d'intérêt, correspondant fictivement à une position d'une caméra et à un grossissement donné de l'image, et étant contrainte en termes de taille, par exemple, pas plus de 2 Mo, selon, par exemple, les capacités de traitement du client. Cette requête est envoyée au serveur. Lorsque le serveur reçoit cette requête, il exécute une commande LOD_Define_Tree. Cette commande est exécutée par le serveur pour définir dynamiquement une instance d'arbre de détails permettant de répondre à la requête du client, c'est-à-dire correspondant à la zone d'intérêt souhaitée par le client et dans les limites de taille imposées par celui-ci. Une fois que l'instance d'arbre de détails est générée, alors une nouvelle commande est exécutée sur la grille informatique en vue de générer dynamiquement les représentations unitaires de chaque noeud de l'instance de l'arbre de détails défini par la fonction LODDefineTree. Cette commande est appelée LODGenerate. Les résultats de ces calculs sont finalement transmis au poste client de manière incrémentale. Le client exécute alors une nouvelle commande dénommée LODCompositing. Cette commande permet de composer de nouveaux niveaux de déta:_ls avec ceux qui existent déjà sur le poste client. Ceci permet de mettre en place des procédés incrémentaux de génération et de reconstitution de niveaux de détails. Plus simplement, un niveau de détails peut avoir besoin d'informations de son père pour être reconstitué. Cette démarche permet de minimiser la taille des informations transférées entre le serveur et le poste client. Les transferts de données au sein du réseau sont minimisés. A l'issue de cela, l'image 3D est reconstituée à partir des information existantes puis affichée sur l'écran du poste client. Si la zone d'intérêt souhaitée par le client change mais change peu - par exemple la quantité de données acceptée par le client reste la même mais l'angle de vue change de quelques degrés - alors un nouvel arbre sera défini mais cette arbre sera légèrement différent de l'arbre précédent. Il suffira donc de faire la différence entre l'arbre précédent et l'arbre souhaité et de transférer uniquement les données correspondant aux nœuds de l'arbre de détails nouveau qui n'étaient présents dans l'arbre de détails précédent. Les images affichées sont fluides. Il est possible de se déplacer dans la représentation de l'objet rapidement. On notera que l'architecture selon l'invention permet d'externaliser le support de types de données. Ainsi, il est possible d'adapter facilement la plateforme à des besoins spécifiques de chaque secteur d'application. Par exemple, les procédés de simplification de données médicales seront différents de ceux utilisés pour des données mécaniques, tel que le moteur d'une automobile. Dans le domaine médical, les algorithmes de simplification devront certainement conserver des informations importantes telles que l'identification de tumeurs. Dans le cas de la simplification d'un moteur, les algorithmes de simplification conserveront certainement les formes globales (un tube, un cylindre....) qui permettront à l'oeil humain de se déplacer dans l'objet. Pour permettre d'adapter la plateforme à ces différents usages, certains procédés devront pouvoir être externalisés, c'est-à-dire mis en place par des tiers spécialisés dans chaque secteur. Les fonctions précédentes LODPreprocessing, LODDefineTree, LOD Generate et LOD Compositing sont toutes susceptibles d'être externalisées. Les étapes de fragmentation et/ou de regroupement des données fragmentées et/ou de prétraitement des données et/ou de génération dynamique de l'arbre de détails sont réalisées sur une grille informatique. En effet, certaines étapes du procédé selon l'invnetion sont susceptibles d'être de mise en oeuvre particulièrement lourde, selon la quantité de données qu=_ définit l'objet. Les données elles-mêmes sont éventuellement dispersées dans la grille informatique. En pratique, le serveur effectuera la répartition des tâches dans la grille informatique afin qu'un réponse soit donnée dès que possible, en temps réel, au(x) client(s). En définitive, selon l'invention, il est possible de générer dynamiquement une représentation de l'objet tridimensionnel en fonction de la zone d'intérêt et des contraintes environnementales telles que : l'espace mémoire, la capacité graphique de poste client, la présence ou l'absence d'une carte graphique ou la largeur de la bande passante. La représentation est effectuée en temps réel, c'est-à-dire directement en réponse à une requête transmise lorsque l'utilisateur souhaite obtenir une représentation d'une zone d'intérêt donnée. Dans un premier exemple, et ainsi que cela est illustré à la figure 7A, des contraintes environnementales fortes pèsent sur le client. De ce fait, le nombre de triangles que pourra traiter le client sera faible, par exemple 11 triangles. Or, l'utilisateur a défini une zone d'intérêt large. Aussi, la configuration de l'arbre de détails générée dynamiquement sera construite pour des représentations légères (niveau N = 3 - f O - figure 3A). Dans un second exemple, et ainsi que cela est illustré à la figure 7B, des contraintes environnementales fortes pèsent sur le client et, de même que dans l'exemple précédent, le nombre de triangles que pourra traiter le client sera faible, par exemple 10 triangles. Par contre, l'utilisateur a défini une zone d'intérêt limitée. Il ne souhaite observer qu'une partie de l'objet. Aussi, le procédé de génération dynamique selon l'invention choisira, ou construira, une configuration de l'arbre de details permettant d'obtenir une représentation légère et correspondant à la zone d'intérêt (niveau N = 2 - fi-1 - figure 3B). Enfin, dans un troisième exemple, et ainsi que cela est illustré à la figure 7C, des contraintes environnementales moyennes pèsent sur le client et le nombre de triangles qu'il peut traiter est cette fois de 26. Par ailleurs, l'utilisateur a défini une zone d'intérêt limitée. Aussi, le procédé de génération dynamique de niveau de détails choisira, ou construira, une configuration de l'arbre de détails permettant d'obtenir une représentation correspondant à la zone d'intérêt. Des niveaux de détails élevés seront choisis dans le centre de cette zone d'intérêt. Des niveaux de détails plus faibles seront choisis dans les parties prériphériques de cette zone. REVENDICATIONS1. Procédé de représentation d'une zone d'intérêt d'un objet tridimensionnel à partir d'un ou plusieurs postes clients (3a, 3b) distants, comportant les étapes selon lesquelles : on fournit des données numériques (1) tridimensionnelles relatives audit objet tridimensionnel ; et on fournit au moins un poste client (3a, 3b) distant comportant des moyens pour la visualisation dudit objet 10 tridimensionnel, caractérisé en ce qu'il comporte en outre les étapes suivantes selon lesquelles : lesdites données numériques (1) sont fragmentées spatialement selon un arbre de fragmentation spatiale ; 15 des niveaux de détails sont associés avec les noeuds de l'arbre de fragmentation pour former un arbre de details ; le poste client distant envoie une requête de visualisation d'une zone d'intérêt de l'objet 20 tridimensionnel ; une configuration de l'arbre de détails est définie dynamiquement en réponse à ladite requête de visualisation de la zone d'intérêt dudit objet ; et la zone d'intérêt de l'objet est représentée par le 25 poste client selon des niveaux de détails contenus dans la configuration de l'arbre de détails définie dynamiquement en réponse à ladite requête. 2. Procédé selon la revendication 1, caractérisé en 30 ce que la configuration de l'arbre de détails générée dynamiquement tient compte des contraintes environnementales qui pèsent sur le poste client (3a, 3b). 3. Procédé selon la revendication 2, caractérisé en ce que les contraintes environnementales comprennent la bande passante dont dispose le client (3a, 3b) et/ou la capacité de traitement des données tridimentionnelles. 4 . Procédé selon l'une des revendications 1, 2 ou 3 caractérisé en ce que l'arbre de détails comporte des noeuds répartis selon les niveaux de détails. 5. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'arbre de fragmentation comporte des noeuds répartis selon les niveaux de regroupement. 6. Procédé selon les revendications 4 et 5, caractérisé en ce que les noeuds de l'arbre de détails sont associés aux noeuds de l'arbre de fragmentation. 20 7. Procédé selon les revendicaticns 4 et 5, ou la revendication 6, caractérisé en ce que l'arbre de détails et l'arbre de fragmentation sont des arbres de même ordre, par exemple des arbres d'ordre 2. 25 8. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte une étape de prétraitement des données selon laquelle les niveaux de détails sont associés aux niveaux de regroupement des données fragmentées. 30 9. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte l'étape suivante selon laquelle on compose de nouveaux niveaux avec les niveaux de détails qui existent déjà chez le 35 client. 15 10. Procédé selon l'une des revendications précédentes, caractérisé en ce que les étapes de fragmentation et/ou de regroupement des données fragmentées et/ou de prétraitement des données et/ou de génération dynamique de l'arbre de détails sont réalisées sur une grille informatique. 11. Procédé selon l'une des revendications précédentes, caractérisé en ce que la représentation de la zone d'intérêt est effectuée en temps réel, au niveau du poste client. 12. Architecture informatique pour la représentation d'une zone d'intérêt d'un objet tridimensionnel par un ou plusieurs postes distants selon le procédé défini dans l'une des revendications précédentes.