Brevet FR2862792A1 — publié le 20050527

facettes servant de données d'entrée au système de réalité virtuelle. Ceci nécessite à nouveau des calculs relativement lourds qui pénalisent la vitesse de représentation de synthèse. Un but de l'invention est de fournir un système de conversion entre une scène tridimensionnelle et des objets tridimensionnels compris dans cette scène en un modèle multi-facettes obtenues par maillage, qui allège au maximum les calculs que doit ensuite fournir le système de réalité virtuelle. A cet effet, on prévoit selon un premier aspect de l'invention, un procédé de conversion d'un ensemble de données vectorielles décrivant un scène et plusieurs objets géométriques compris dans la scène en un modèle maillé multi-facettes, de manière à engendrer des données transformées destinées à une représentation de la scène et des objets dans un système de réalité virtuelle, le procédé étant mis en oeuvre par un processeur relié à une mémoire et comprenant les étapes suivantes: (a) lecture de l'ensemble des données vectorielles des objets dans la mémoire, (b) à partir d'un maillage de base et d'informations de niveaux de détail définissant une pluralité de niveaux de détail possibles pour la représentation de la scène, calcul pour chaque objet d'une pluralité de modèles maillés multi-facettes, et (c) sauvegarde des différents modèles correspondant aux différents objets dans la mémoire, à chaque modèle étant associée l'information de niveau de détail correspondante. Avantageusement, mais facultativement, le procédé présente au moins l'une des caractéristiques suivantes: * le procédé en outre une étape de détermination du maillage de base par analyse des objets vectoriels, cette étape comprenant les sous-étapes suivantes: - recherche de l'objet de révolution de plus grand rayon, dit rayon de base, parmi les objets géométriques de la scène, - choix du nombre de côtés d'un polygone le plus fin inscrit dans un cercle ayant un rayon équivalent au rayon de l'objet de révolution le plus volumineux trouvé, le nombre de côtés du polygone donnant l'information de maillage de base. * le procédé comprend en outre l'étape consistant, pour chaque objet géométrique de révolution, à déterminer le nombre de facettes le long de la section circulaire de l'objet à partir du maillage de base, du rayon de base et du rayon de l'objet. * la relation entre le nombre de facettes et le 20 rayon est linéaire. * le nombre de niveaux de détail pour la scène est déterminé en fonction d'une taille de ladite scène. * le maillage d'un modèle maillé d'un objet donné est obtenu par application d'un diviseur au maillage du modèle maillé de niveau de détail immédiatement supérieur. * le procédé comprend en outre une étape d'application de texture sur les différentes facettes des modèles maillés multi-facettes. * le procédé comprend en outre une étape de marquage d'objets géométriques à ne pas traiter, et l'étape (b) est mise en oeuvre seulement sur les objets non marqués. * l'ensemble d'objets géométriques à ne pas traiter comprend des objets géométriques unidimensionnels de type courbe ou droite et des objets texte inclus dans la scène. * le procédé comprend, entre les étapes (a) et (b), une étape de détection d'objets géométriques mal construits. Selon un deuxième aspect, la présente invention propose un procédé d'affichage, dans un environnement informatique comprenant un processeur, une mémoire et un dispositif d'affichage, d'une représentation d'une scène comportant une pluralité d'objets géométriques, caractérisé en ce qu'il comprend les étape suivantes: (i) prévoir un ensemble de modèles obtenus par le procédé tel que défini plus haut, (ii) déterminer une information représentative de l'éloignement d'un point d'observation par rapport à la 20 scène à représenter, et (iii) sélectionner pour chaque objet un modèle de données correspondant à un niveau de détail adapté à ladite information d'éloignement, et (iv) afficher la représentation de la scène en 25 utilisant les modèles de données sélectionnés à l'étape précédente. Selon une première option, le niveau de détail souhaité est déterminé par une interface utilisateur autorisant un choix par l'utilisateur. Selon une deuxième option, le niveau de détail souhaité est déterminé en fonction d'une information de distance entre un point d'observation de la scène représentée et ladite scène. Dans ce cas, le niveau de détail souhaité peut être déterminé objet par objet, en fonction de la distance entre le point d'observation de la scène et les objets respectifs. D'autres caractéristiques, buts et avantages de la présente invention apparaîtront à la lecture de la description ci-après d'un mode de réalisation préféré. Sur les dessins annexés: - la figure 1 est un schéma de fonctionnement d'un 10 procédé selon l'invention, et - la figure 2 est un logigramme du procédé selon l'invention. En référence à la figure 1, un système 10 de conversion d'un ensemble de données vectorielles en un modèle maillé multi-facettes selon l'invention présente, en données d'entrée, une scène S comprenant plusieurs objets géométriques 1, dont un seul est ici illustré. L'objet géométrique 1 est issu, par exemple, d'un logiciel de CAO (Conception Assistée par Ordinateur) capable de fournir un ensemble de données vectorielles décrivant l'objet géométrique 1. Il est à noter que d'autres logiciels capables de fournir de telles données vectorielles peuvent être utilisés. En sortie, le système de conversion 10 selon l'invention est apte à fournir des modèles maillés multi-facettes 2, 3, 4, 5 de l'objet géométrique 1, selon plusieurs niveaux de détail. Ici quatre niveaux de détails sont illustrés. Dans le cas d'espèce, le niveau de détail de premier degré est un niveau dit très détaillé , où le modèle 2 présente un nombre maximal de facettes. Le niveau de détail de deuxième degré est un niveau dit détaillé , où le modèle 3 présente un maillage moins fin que le modèle 2 du niveau très détaillé , et par exemple deux fois moins fin que le modèle 2. Le niveau de détail de troisième degré est un niveau dit peu détaillé , où le modèle 4 présente un maillage moins fin que le modèle 3 du niveau détaillé , et par exemple deux fois moins fin. Enfin le niveau de détail de quatrième degré est un niveau dit très peu détaillé , où le modèle 5 présente le maillage le plus grossier, et par exemple deux fois moins fin que le modèle maillé 4 du niveau précédent. Un système d'affichage de réalité virtuelle, non représenté, utilise ensuite l'un parmi les modèles maillés multi-facettes 2, 3, 4 et 5 issus du procédé de conversion 10 pour réaliser une représentation de synthèse, selon un point de vue d'observation donné, de la scène S et de l'objet géométrique 1 dans cette scène. Plus précisément, suivant l'éloignement dudit objet géométrique 1 dudit point de vue, déterminé par le système à partir de sa connaissance de la position de l'objet dans la scène et de sa connaissance de la position du point de vue, le système de réalité virtuelle utilise pour le calcul le modèle maillé multi- facettes qui correspond au niveau de détail qui est le mieux en relation avec ledit éloignement: si l'objet géométrique 1 est proche du point de vue, le système de réalité virtuelle utilise le modèle 2 correspondant au niveau très détaillé . A l'opposé, si l'objet géométrique 1 est très éloigné du point de vue, le système de réalité virtuelle utilise le modèle 5 du niveau de détail très peu détaillé , car l'objet géométrique 1 n'a pas besoin d'être très détaillé car lointain. Les niveaux de détail intermédiaires correspondant aux modèles 3 et 4 sont quant à eux utilisés pour des distances point de vue/objet intermédiaires. Dans le cas où la scène comporte plusieurs objets, ce qui sera généralement le cas, le processus ci-dessus est répété pour chacun des objets en fonction de la distance entre le point de vue et l'objet en question, pour ainsi aboutir à un jeu de représentations des différents objets selon des maillages adaptés. Ainsi, la seule tâche du système de réalité virtuelle, de façon préliminaire à l'affichage, est de sélectionner le modèle maillé multifacettes correspondant au niveau de détail approprié pour chaque objet, ce qui permet d'alléger sensiblement les calculs à effectuer et de contribuer, pour une puissance de calcul et une mémoire de travail donnée, à fluidifier l'affichage de la réalité virtuelle lors d'une représentation dynamique, c'est-à-dire avec variation de la position du point de vue et de l'orientation de l'axe de vue. Maintenant en référence à la figure 2, on va décrire en détail les étapes du procédé mis en uvre 25 dans le système 10. Dans une première étape 11, le système de conversion 10 effectue une analyse de l'ensemble des données d'entrée. A cet effet, le système effectue une lecture de l'ensemble des données vectorielles d'entrée préalablement stockées dans une mémoire d'un système informatique hôte (non représenté) comprenant, en outre, un processeur relié à cette mémoire et apte à mettre en oeuvre la conversion. Il détermine ensuite le type de données vectorielles, ainsi que différentes informations concernant la scène et les objets inclus dans la scène, décrits par l'ensemble des données vectorielles lues. Ces différentes informations concernent les dimensions de la scène, et les types ainsi que les dimensions et les positions respectives des différents objets. Dans une forme de réalisation particulière, l'ensemble des données vectorielles d'entrée sont stockées dans la mémoire sous la forme d'un fichier unique. Dans ce cas, la détermination du type de données vectorielles par le système de conversion 10 requiert essentiellement une identification du format du fichier, sachant que les différents logiciels de conception ou de dessin assisté par ordinateur enregistrent les données vectorielles sous des formats propriétaires différents. Dans une autre forme de réalisation, l'ensemble des données vectorielles servant de données d'entrée peuvent être stockées dans plusieurs fichiers contenus dans la mémoire, l'un de ces fichiers étant un fichier dit maître contenant des références aux autres fichiers (appelés dans ce cas fichiers références). Dans ce cas, le système de conversion 10 lit l'ensemble des fichiers concernés (fichier maître + fichiers références) de manière à rassembler la totalité des données vectorielles d'entrée. Dans une deuxième étape 12, sur la base des informations déterminées lors de l'étape d'analyse 11, le système de conversion 10 selon l'invention réalise un paramétrage automatique ou semi-automatique de la conversion des objets et de la scène sous format vectoriel en un ensemble de plusieurs modèles maillés multi-facettes. Pour réaliser ce paramétrage automatique, le système de conversion 10 détermine: - une série de paramètres de niveaux de détail ou de maillage variable, une série de paramètres d'optimisation, - une liste d'éléments décrits dans les données vectorielles d'entrée, qui ne seront pas convertis par le système de reconversion 10 selon l'invention. La série de paramètres de niveaux de détail comporte: - un premier paramètre représentant le nombre de niveaux de détail nécessaire à la scène considérée. Ce nombre de niveaux de détail est déterminé par l'utilisateur, ou encore automatiquement, essentiellement en fonction des dimensions de ladite scène considérée, - un deuxième paramètre représentant un diviseur permettant de passer d'un niveau de détail de degré donné à un niveau de détail de degré immédiatement inférieur. Par défaut, ce paramètre est initialisé à deux, c'est-à-dire qu'un niveau de détail de degré immédiatement inférieur comporte des facettes définies par un maillage deux fois plus grossier que le maillage utilisé au niveau de détail immédiatement supérieur. un troisième paramètre représentant un maillage de base, représentatif lui-même du nombre de facettes par objet. Ce paramètre est déterminé de préférence en déterminant le plus grand diamètre parmi l'ensemble des diamètres trouvés lors de l'analyse des données d'entrée, et en associant à ce plus grand diamètre, de façon manuelle ou automatique, un nombre de facettes pour 360 souhaité dans l'affichage le plus détaillé, ou encore le nombre de facettes souhaité dans l'affichage le plus détaillé d'un cylindre de révolution présentant une section de ce diamètre. Les autres diamètres trouvés lors de l'analyse des données d'entrée seront alors découpés selon un nombre de facettes fonction de ce paramètre, par exemple, selon une fonction linéaire dudit diamètre ou proportionnelle au carré dudit diamètre. La série de paramètres d'optimisation comprend: - un paramètre manuel ou automatique de faces visibles permettant de déterminer pour chaque objet les faces qui sont à considérer comme visibles du point de vue de la représentation. Pour des objets considérés comme bidimensionnels, les deux faces sont susceptibles d'être visibles lors de la représentation virtuelle, car il n'y a ni intérieur ni extérieur pour un objet bidimensionnel. Pour les objets en volume, on conserve la face externe comme visible par défaut. un paramètre manuel ou automatique d'adoucissement des surfaces maillées qui permet d'adoucir l'angle entre deux facettes adjacentes existant dans un modèle maillé, adoucissement qui sera réalisé dans le cadre du processus de génération de l'image de synthèse à afficher. Cela permet d'améliorer la représentation de synthèse. Enfin, le système de conversion repère les éventuels objets qui ne feront pas l'objet de la conversion dans les étapes ultérieures du procédé. Par défaut, ce sont les objets qui ne sont considérés ni comme une surface, ni comme un objet en volume. Cette élimination concerne essentiellement les objets unidimensionnels de type ligne, courbe ainsi que les objets de type texte. Dans la présente forme de réalisation de l'invention, l'ensemble de paramètres décrits ci-dessus, ainsi que la liste des éléments non convertibles, sont vérifiés avant validation par un utilisateur, qui peut modifier les paramètres ou faire passer des éléments du statut de nonconvertible à convertible ou réciproquement. Dans une étape 13, le système de conversion 10 selon l'invention effectue une correction éventuelle des données de départ de certains objets. En effet, il est fréquent de rencontrer dans des données vectorielles d'entrée complexes des erreurs de construction ou de représentation d'un objet graphique donné. Ces erreurs sont principalement de deux types. - le premier type d'erreur rencontrée concerne l'orientation des normales d'une surface d'un objet tridimensionnel. On rappellera ici que pour établir un modèle maillé d'un objet tridimensionnel, il est nécessaire de connaître pour chacune des limites de l'objet tridimensionnel, quelles sont la face externe et la face interne des surfaces formant ces limites. Ces faces interne et externe sont déterminées par l'orientation de la normale associée à ladite surface. Si la représentation dans les données vectorielles de l'objet ne comporte pas d'erreur, les normales sont orientées vers l'extérieur de l'objet, en prenant donc appui sur la face externe. Mais il arrive que ces normales soient inversées, c'est-à-dire qu'elles prennent appui sur la face interne et sont dirigées vers l'intérieur de l'objet. Si en général cela ne porte pas à conséquence dans un logiciel de CAO, cela devient en revanche problématique pour le maillage de l'objet et sa représentation virtuelle subséquente. En effet, si une normale est inversée, le système de conversion ou encore le système de réalité virtuelle va considérer la face interne correspondante comme une face externe et la rendre en réalité virtuelle. Pour éviter ce problème, l'étape 13 mise en uvre dans le système de conversion 10 selon l'invention effectue une analyse des normales et leur correction si nécessaire, par un processus à la portée de l'homme du métier que l'on ne décrira pas ici par souci d'allègement de la description. - la deuxième erreur couramment rencontrée concerne la construction des objets présentant des formes ou des surfaces de révolution. En effet, il est fréquent que l'un des paramètres de construction de l'objet, à savoir l'angle de révolution, soit négatif, ce qui conduit lors de la représentation virtuelle à une aberration mathématique. Pour éviter cela, l'étape 13 corrige cette aberration en remplaçant l'angle négatif par un angle équivalent compris entre 0 et 360 , ce qui va permettre lors du maillage de modéliser correctement l'objet. Une fois toutes les étapes précédentes effectuées, le système de conversion 10 selon l'invention met en uvre une étape 14 de maillage des objets en fonction du paramétrage établi lors de l'étape 12 et de la correction éventuelle des objets présentant des erreurs ou des aberrations de construction lors de l'étape 13. Lors de cette étape 14, chacun des objets de la scène considérée est maillé autant de fois qu'il y a de niveaux de détails à satisfaire, conformément au paramétrage. Par exemple, si, dans le paramétrage, il a été déterminé quatre niveaux de détail possibles pour une scène donnée, alors chacun des objets 1 est maillé en quatre modèles maillés multi-facettes 2, 3, 4 et 5 correspondant respectivement à ces quatre niveaux. La précision de chacun des modèles ainsi obtenus dépend du maillage de base et du paramètre de division décrits plus haut, permettant de passer d'un niveau de détail au niveau de détail suivant. L'opération de maillage elle-même à partir des données vectorielles utilise des techniques de conversion connues en elles-mêmes de l'homme du métier. Une fois l'étape 14 menée à bien, le système de conversion 10 a donc fourni un ensemble de modèles maillés multi-facettes associés à des niveaux de détail respectifs, et ce pour chacun des objets de la scène considérée. L'ensemble de ces modèles maillés multifacettes est stocké dans la mémoire et peut servir pour élaborer les données d'entrée d'un système de représentation de réalité virtuelle, le choix des différents modèles maillés étant effectué par le système en fonction de la distance entre le point de vue et l'objet considéré, comme décrit plus haut. Dans une forme de réalisation particulière, ce stockage intervient sous forme d'un fichier unique. En variante, les modèles maillés sont stockés par niveau de détail, dans autant de fichiers correspondant respectivement à ces niveaux de détail. Bien entendu, on pourra apporter à la présente invention de nombreuses modifications et variantes sans 10 sortir du cadre de celle-ci. REVENDICATIONS 1. Procédé de conversion d'un ensemble de données vectorielles décrivant un scène et plusieurs objets géométriques compris dans la scène en un modèle maillé multi-facettes, de manière à engendrer des données transformées destinées à une représentation de la scène et des objets dans un système de réalité virtuelle, le procédé étant mis en oeuvre par un processeur relié à une mémoire et comprenant les étapes suivantes: (a) lecture de l'ensemble des données vectorielles des objets dans la mémoire, (b) à partir d'un maillage de base et d'informations de niveaux de détail définissant une pluralité de niveaux de détail possibles pour la représentation de la scène, calcul pour chaque objet d'une pluralité de modèles maillés multi-facettes, et (c) sauvegarde des différents modèles correspondant aux différents objets dans la mémoire, à chaque modèle étant associée l'information de niveau de détail correspondante. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre une étape de détermination du maillage de base par analyse des objets vectoriels, cette étape comprenant les sous-étapes suivantes: recherche de l'objet de révolution de plus grand rayon, dit rayon de base, parmi les objets géométriques de la scène, - choix du nombre de côtés d'un polygone le plus fin inscrit dans un cercle ayant un rayon équivalent au rayon de l'objet de révolution le plus volumineux trouvé, le nombre de côtés du polygone donnant l'information de maillage de base. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce qu'il comprend en outre l'étape consistant, pour chaque objet géométrique de révolution, à déterminer le nombre de facettes le long de la section circulaire de l'objet à partir du maillage de base, du rayon de base et du rayon de l'objet. 4. Procédé selon la revendication 3, caractérisé en ce que la relation entre le nombre de facettes et le rayon est linéaire. 5. Procédé selon l'une des revendications 1 à 4, caractérisé en ce que le nombre de niveaux de détail pour la scène est déterminé en fonction d'une taille de ladite scène. 6. Procédé selon l'une des revendications 1 à 5, caractérisé en ce que le maillage d'un modèle maillé d'un objet donné est obtenu par application d'un diviseur au maillage du modèle maillé de niveau de détail immédiatement supérieur. 7. Procédé selon l'une des revendications 1 à 6, caractérisé en ce qu'il comprend en outre une étape d'application de texture sur les différentes facettes des modèles maillés multi-facettes. 8. Procédé selon l'une des revendications 1 à 7, caractérisé en ce qu'il comprend en outre une étape de marquage d'objets géométriques à ne pas traiter, et en ce que l'étape b) est mise en oeuvre seulement sur les objets non marqués. 9. Procédé selon la revendication 8, caractérisé en ce que l'ensemble d'objets géométriques à ne pas traiter comprend des objets géométriques unidimensionnels de type courbe ou droite et des objets texte inclus dans la scène. 10. Procédé selon l'une des revendications 1 à 9, caractérisé en ce qu'il comprend, entre les étapes (a) et (b), une étape de détection d'objets géométriques mal construits. 11. Procédé d'affichage, dans un environnement informatique comprenant un processeur, une mémoire et un dispositif d'affichage, d'une représentation d'une scène comportant une pluralité d'objets géométriques, caractérisé en ce qu'il comprend les étape suivantes: (i) prévoir un ensemble de modèles obtenus par la mise en oeuvre du procédé selon l'une des revendications 1 à 10, (ii) déterminer une information représentative d'un niveau de détail souhaité pour la représentation de la scène, et (iii) sélectionner pour chaque objet un modèle de 30 données correspondant au niveau de détail souhaité, et (iv) afficher la représentation de la scène en utilisant les modèles de données sélectionnés à l'étape précédente. 12. Procédé selon la revendication 11, caractérisé en ce que le niveau de détail souhaité est déterminé par une interface utilisateur autorisant un choix par l'utilisateur. 13. Procédé selon la revendication 11, caractérisé en ce que le niveau de détail souhaité est déterminé en fonction d'une information de distance entre un point d'observation de la scène représentée et ladite scène. 14. Procédé selon la revendication 13, caractérisé en ce que le niveau de détail souhaité est déterminé objet par objet, en fonction de la distance entre le point d'observation de la scène et les objets respectifs.