FR3123131A1 - Génération d’un maillage surfacique à partir d’une modélisation en voxels d’un environnement tridimensionnel - Google Patents

Génération d’un maillage surfacique à partir d’une modélisation en voxels d’un environnement tridimensionnel Download PDF

Info

Publication number
FR3123131A1
FR3123131A1 FR2105352A FR2105352A FR3123131A1 FR 3123131 A1 FR3123131 A1 FR 3123131A1 FR 2105352 A FR2105352 A FR 2105352A FR 2105352 A FR2105352 A FR 2105352A FR 3123131 A1 FR3123131 A1 FR 3123131A1
Authority
FR
France
Prior art keywords
sub
surface mesh
grid
mesh
voxel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR2105352A
Other languages
English (en)
Other versions
FR3123131B1 (fr
Inventor
Guillaume Gris
Philip Ulrich TRETTNER
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Novaquark
Original Assignee
Novaquark
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to FR2105352A priority Critical patent/FR3123131B1/fr
Application filed by Novaquark filed Critical Novaquark
Priority to KR1020237043760A priority patent/KR20240012464A/ko
Priority to PCT/FR2022/050913 priority patent/WO2022243626A1/fr
Priority to US18/563,289 priority patent/US20240212284A1/en
Priority to JP2023572128A priority patent/JP2024521128A/ja
Priority to EP22730954.9A priority patent/EP4341909A1/fr
Priority to CN202280041341.6A priority patent/CN117751389A/zh
Priority to CA3219703A priority patent/CA3219703A1/fr
Publication of FR3123131A1 publication Critical patent/FR3123131A1/fr
Application granted granted Critical
Publication of FR3123131B1 publication Critical patent/FR3123131B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • H04N13/279Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals the virtual viewpoint locations being selected by the viewers or determined by tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

Procédé pour la génération d’une vue d’un environnement tridimensionnel sur un ensemble de terminaux de communication à partir d’une modélisation de m’environnement stockée sur un serveur sous la forme d’une grille de voxels, ce serveur mettant en œuvre des étapes de - partition (S1) de la grille en un ensemble de sous-grilles; - génération (S2) d’un maillage surfacique pour chaque sous-grille - pour chaque sous-grille, simplification (S3) d’une sous partie du maillage excluant une zone de bordure du maillage; et création d’une table associant chaque vertex du bord à un voxel ; - assemblage (S4) des maillages des sous-grilles, à l’aide de cette table, afin de former un maillage surfacique global ; - transmission (S5) du maillage surfacique global vers les terminaux de communication, et génération (S6) d’une vue de l’environnement tridimensionnel en fonction du maillage surfacique global et d’un point de vue associé à chacun des terminaux de communication. Figure pour l’abrégé : Fig. 3

Description

Génération d’un maillage surfacique à partir d’une modélisation en voxels d’un environnement tridimensionnel
DOMAINE DE L’INVENTION
La présente invention est relative à la génération, par un ensemble de terminaux, d’une vue d’en environnement tridimensionnel géré par un même serveur informatique. Elle s’applique notamment au domaine des univers virtuels multi-utilisateurs, notamment de type « jeux vidéo ».
CONTEXTE DE L’INVENTION
Le domaine des environnements tridimensionnels virtuels est en plein essor. Ce type d’environnement permet à un grand nombre d’utilisateurs d’interagir sur un l’environnement en en modifiant certaines caractéristiques et en y naviguant de la façon la plus réaliste possible.
Les déplacements d’un utilisateur impactent son point et son champ de vue, de sorte que l’affichage de l’environnement tridimensionnel doit être modifié constamment. En outre, le déplacement d’un utilisateur peut être visible d’autres utilisateurs, ce qui impacte également la propre vue que ceux-ci doivent avoir du monde.
Par ailleurs, certains environnements tridimensionnels permettent des modifications par les utilisateurs : ceux-ci peuvent impacter l’environnement en creusant des objets existants, par exemple, ou en créant des objets nouveaux. Ces modifications également doit être répercutées sur la vue qu’ont les autres utilisateurs de l’environnement tridimensionnel.
Parmi les différents environnements tridimensionnels existant, on peut notamment citer celui mis en œuvre par les Demandeurs et nommé « Dual Universe ».Dual Universeest un jeu vidéo de simulation spatiale massivement multijoueur. Le jeu se déroule dans un univers « unique, continu, et non divisé » et se joue à la première personne.
Des explications sur l’environnement mis en œuvre par le jeu peuvent être trouvées sur le site web : https://www.dualuniverse.game, ou sur la page Wikipédia qui, elle-même, fournit de nombreuses références documentaires : https://en.wikipedia.org/wiki/Dual_Universe
Bien évidemment, d’autres environnements tridimensionnels sont disponibles, comme notamment ceux mis en œuvre dans le jeu « Minecraft ».
Il existe différentes façons de modéliser un environnement tridimensionnel. Une possibilité est de discrétiser l’environnement en une matrice, ou « grille », de voxels, de la même façon qu’une image numérique en deux dimensions peut être discrétisé un tableau de pixels. L’environnement «Dual Universe», notamment, fonctionne sur la base d’une telle modélisation.
Afin de pouvoir visualiser l’environnement tridimensionnel, des données sur cet environnement doivent être transmises aux terminaux de communication associés aux utilisateurs. Du fait des interactions récurrentes des utilisateurs, ces données doivent être transmises, au moins en partie, de façon très régulière afin de « rafraîchir » la vue que les utilisateurs ont de l’environnement tridimensionnel.
Or, une modélisation en voxels d’un environnement de grande taille tel qu’un univers utilisé dans un jeu immersif commeDual Universe, Minecraft, etc. implique un nombre extrêmement important de données. Le volume de données dépend directement de la taille de l’environnement et de la discrétisation utilisée.
Dès lors, le volume à transférer depuis le serveur qui gère l’environnement tridimensionnel et les différents terminaux de communication est également très important et peut impliquer de très fortes contraintes à la fois sur le réseau de communication et sur les ressources computationnelles mettant en œuvre le serveur et/ou les terminaux de communication.
Toutefois, dès lors qu’on opte pour ne pas limiter (drastiquement) la taille de l’environnement géré par un unique serveur, deux voies semblent possibles.
Il est tout d’abord possible de transmettre la modélisation en voxels aux utilisateurs. Toutefois une telle façon de faire peut provoquer un engorgement du réseau de communication, nuisant à la qualité de service perçu par les utilisateurs, notamment ceux ne disposant pas d’une connexion à très haut débit. En outre, elle nécessite que les terminaux de communication des utilisateurs soient suffisamment puissants pour effectuer les conversions de la modélisation en voxels en une structure de données permettant son rendu sur un écran ou toute autre interface homme-machine (masque à réalité virtuelle, etc.). Également, un hébergeur fait typiquement payer l'utilisation de bande passante sortante, et cette façon de faire peut donc avoir un impact économique important.
Une autre voie consiste à effectuer cette conversion sur le serveur et de transmettre les données à visualiser à chaque utilisateur. Ce mécanisme se heurte toutefois au fait que le coût des calculs, côté serveur, est proportionnel au nombre d’utilisateur et que les données à calculer dépendent du point de vue des utilisateurs dans l’environnement et sont donc différentes pour chaque utilisateur. Dès lors, le serveur nécessite d’importantes ressources computationnelles, ce qui augmente son coût, ce qui peut devenir rédhibitoire pour l’exploitant d’un tel environnement tridimensionnel.
Une proposition adoptée par certains systèmes consiste alors à limiter la taille des univers et à associer un serveur distinct à chaque univers, sur lequel ne peuvent interagir qu’un nombre également limité d’utilisateurs. Toutefois, cette proposition forme une limitation préjudiciable aux possibilités ludiques et immersives que peuvent offrir ces environnements tridimensionnels.
Un objectif de la présente invention est de fournir une solution palliant au moins partiellement les inconvénients précités. Il s’agit notamment de permettre la visualisation d’un unique environnement tridimensionnel par une multitude de terminaux mobiles, en minimisant les ressources nécessaires (transmission et calcul), sans impacter la qualité tant de la visualisation elle-même que de l’expérience utilisateur (en termes, notamment de gigue, temps de réaction, etc.).
À cette fin, selon un premier aspect, la présente invention peut être mise en œuvre par un procédé pour la génération d’une vue d’un environnement tridimensionnel sur un ensemble de terminaux de communication à partir d’une modélisation dudit environnement stockée sur un serveur sous la forme d’une grille de voxels, ledit serveur mettant en œuvre des étapes de
  • partition d’au moins une partie de ladite grille en un ensemble de sous-grilles;
  • génération d’un maillage surfacique pour chaque sous-grille dudit ensemble,
  • pour chacune desdites sous-grille, simplification d’une sous partie dudit maillage surfacique excluant une zone de bordure dudit maillage surfacique ; et création d’une table associant chaque vertex dudit bord à un voxel ;
  • assemblage des maillages surfaciques desdites sous-grilles dudit ensemble, à l’aide de ladite table, afin de former un maillage surfacique global ;
  • transmission dudit maillage surfacique global vers lesdites terminaux de communication, et génération d’une vue dudit environnement tridimensionnel en fonction dudit maillage surfacique global et d’un point de vue associé à chacun desdits terminaux de communication.
Suivant des modes de réalisation préférés, l’invention comprend une ou plusieurs des caractéristiques suivantes qui peuvent être utilisées séparément ou en combinaison partielle entre elles ou en combinaison totale entre elles :
  • une surface de transition est associée auxdits voxels et en ce que lesdits maillages surfaciques sont générés en fonction desdites surfaces de transition ;
  • lorsque ledit serveur détecte une modification de ladite modélisation, il insère dans une file d’attente, une demande de recalcul du maillage surfacique correspondant à ladite modification, et ce que les demandes de recalcul présentes dans ladite file et portant sur une même sous-grille sont traités de sorte à effectuer qu’une seule génération d’un maillage surfacique pour ladite sous-grille ;
  • l’étape d’assemblage comporte une sous-étape de simplification supplémentaire du maillage surfacique global.
Selon un autre aspect, l’invention peut également être mise en œuvre par un programme d’ordinateur comportant des instructions de pour mettre en œuvre le procédé tel que précédemment décrit lorsqu’exécuté sur une ou plusieurs plateformes de traitement de l’information.
D’autres modes de réalisation de l’invention sont relatives à un serveur pour la génération d’une vue d’un environnement tridimensionnel à partir d’une modélisation dudit environnement, comportant une mémoire pour stocker ladite modélisation sous la forme d’une grille de voxels, et des moyens de traitement pour mettre en œuvre :
  • partition d’au moins une partie de ladite grille en un ensemble de sous-grilles;
  • génération d’un maillage surfacique pour chaque sous-grille dudit ensemble,
  • pour chacune desdites sous-grille, simplification d’une sous partie dudit maillage surfacique excluant une zone de bordure dudit maillage surfacique ; et création d’une table associant chaque vertex dudit bord à un voxel ;
  • assemblage des maillages surfaciques desdites sous-grilles dudit ensemble, à l’aide de ladite table, afin de former un maillage surfacique global ;
  • transmission dudit maillage surfacique global vers un ensemble de terminaux de communication, chacun étant prévu pour la génération d’une vue dudit environnement tridimensionnel en fonction dudit maillage surfacique global et d’un point de vue associé à chacun desdits terminaux de communication.
Suivant des modes de réalisation préférés, l’invention comprend une ou plusieurs des caractéristiques suivantes qui peuvent être utilisées séparément ou en combinaison partielle entre elles ou en combinaison totale entre elles :
  • une surface de transition est associée auxdits voxels et en ce que lesdits maillages surfaciques sont générés en fonction desdites surfaces de transition ;
  • Le serveur est, en outre configuré pour, lorsque ledit serveur détecte une modification de ladite modélisation, il insère dans une file d’attente, une demande de recalcul du maillage surfacique correspondant à ladite modification, et ce que les demandes de recalcul présentes dans ladite file et portant sur une même sous-grille sont traités de sorte à effectuer qu’une seule génération d’un maillage surfacique pour ladite sous-grille ;
  • l’assemblage comporte une simplification supplémentaire du maillage surfacique global.
D’autres modes de réalisation de l’invention sont relatives à un système comportant un serveur tel que précédemment défini et au moins un terminal de communication
D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit d’un mode de réalisation préféré de l'invention, donnée à titre d'exemple et en référence aux dessins annexés
BREVE DESCRIPTION DES FIGURES
Les dessins annexés illustrent l’invention :
La représente schématiquement un contexte général dans lequel peut s’inscrire l’invention un mode de réalisation.
La illustre schématiquement le principe des voxels et des vertex, selon un mode de réalisation de l’invention
La schématise un organigramme d’un procédé selon un mode de réalisation de l’invention :
La illustre un voxel et les vertex associés ;
La schématise un exemple de grille représentant un environnement tridimensionnel et une division en sous-grilles ;
DESCRIPTION DETAILLEE DE MODES DE REALISATION DE L’INVENTION
L’invention s’applique particulièrement aux jeux vidéo massivement multi-joueurs dans lesquels les différents joueurs peuvent interagir dans un environnement, ou univers, virtuel et tridimensionnel. Toutefois, l’invention peut également trouver des applications dans d’autres domaines d’activité nécessitant le partage d’un même environnement tridimensionnel entre plusieurs utilisateurs connectés simultanément à un serveur gérant cet environnement.
La illustre un contexte dans lequel l’invention est susceptible de s’inscrire selon un mode de réalisation.
Au moins un terminal de communication 31, 32, 33 est connecté à un serveur 10 via un réseau de communication 20.
Ces terminaux de communication peuvent être toutes plateformes de traitement de l’information permettant de communiquer de l’information au travers de réseaux de télécommunication. Il peut notamment s’agir d’ordinateurs, de consoles connectées à un ordinateur, de smartphones, etc.
Ces terminaux de communication disposent également d’au moins un processeur et d’une mémoire permettant de stocker des instructions informatiques. Les moyens de communication peuvent permettre la connexion à différents types de réseau d’accès : réseaux cellulaires, notamment de 4eou 5egénération, réseaux locaux de type WLAN ou WIFI, ou de proximité de type Bluetooth ou NFD (Near Field Communication), etc.
Le réseau de communication 20 peut être vu comme une interconnexion de sous-réseaux qui peuvent comprendre un réseau global comme Internet afin de permettre à des utilisateurs distants de se connecter à un même serveur. Le réseau de communication peut également comprendre des réseaux d’accès permettant la connexion des terminaux de communication 31, 32, 33 au réseau global « internet ».
Le serveur 10 peut être vu comme un dispositif de traitement de l’information unique, ou comme un serveur fonctionnel pouvant être déployé sur une pluralité de dispositifs arrangés sous la forme d’une ferme de serveur ou d’une infrastructure d’informatique en nuage («cloud computing» en anglais).
Le serveur dispose d’une mémoire (ou d’un ensemble de mémoires) permettant de stocker une modélisation 11 de l’environnement tridimensionnel sous la forme d’une grille de voxels.
Le serveur dispose également des moyens logiciels pour générer, à partir de cette modélisation, un maillage surfacique global. Ce maillage surfacique global peut être transmis aux terminaux de communication par des messages 41, 42, 43, respectivement.
Dans le cadre de l’invention, une pluralité d’utilisateurs (ou joueurs) de terminaux de communication peuvent partager un même environnement tridimensionnel 11 géré par un unique serveur (fonctionnel) 10. Comme il sera vu plus loin, la génération d’un maillage surfacique global par le serveur permet de diminuer la quantité d’information à transmettre aux terminaux (par rapport à la transmission de la modélisation en voxels, par exemple).
Les terminaux peuvent ensuite générer une vue (subjective) de cet environnement tridimensionnel en fonction de ce maillage surfacique global. Ce maillage est le même pour l’ensemble des terminaux, mais la vue est subjective et dépend de la position et de paramètres de vue (direction, angle, etc.) de chaque utilisateur.
Dans la suite, on appelle « voxel » (pour «Volume Element» en anglais), l’équivalent en 3 dimensions d’un pixel en imagerie numérique 2D. Si l’on considère un univers 3D isotrope, un voxel a l’apparence d’un cube élémentaire.
De la même façon qu’un « pixel », on peut associer des données à un voxel. Ces données peuvent guider notamment l’apparence du voxel lors d’un affichage. Elles peuvent notamment déterminer une couleur, un degré de transparence, une intensité lumineuse, etc.
La notion de voxel est classique en imagerie 3D et est expliquée en détail notamment sur la page Wikipédia : https://fr.wikipedia.org/wiki/Voxel
La illustre un objet 200 discrétisé en voxels, certains étant visibles, d’autres étant masqués.
À chaque voxel 210 peut correspondre 8 vertex, 211, 212…. Un vertex est un sommet du voxel qui peut se caractériser par trois coordonnées x, y, z, dans un repère.
Un environnement tridimensionnel 11 peut être considéré comme une grille tridimensionnelle de voxels. Un objet de cet environnement est ainsi représenté par l’affectation d’une valeur particulière aux voxels correspondant à son emplacement. La valeur de ces voxels peut notamment correspondre à l’apparence de cet objet : couleur, matière, etc.
Un objet peut être de très grande taille (par exemple une planète), ou de taille plus réduite (vaisseaux spatiaux, personnages ou même outils).
La grille représentant l’environnement tridimensionnel peut être de taille considérable et dépend à la fois de la taille de cet environnement et de la résolution de la discrétisation (c’est-à-dire de la taille des voxels rapportée à la taille de l’univers).
Un des intérêts d’une telle modélisation d’un environnement sous la forme d’une grille de voxel est la relative simplicité de sa modification par les utilisateurs : il peut en effet suffire de modifier une valeur d’un voxel. Par exemple, construire un objet revient à modifier la valeur de voxels correspondant à l’emplacement et à la géométrie de cet objet. Creuser un objet (par exemple le sol d’une planète) revient à affecter une valeur « transparente » (correspondant à l’air) aux voxels de la zone extrudée, ce qui automatiquement laisse apparents les voxels masqués.
Selon différents modes de résolution, on peut associer à chaque voxel directement sa couleur ou une information de rendu, ou bien une information de plus haut-niveau sémantique, comme par exemple une matière (terre, roche, métal, plastique, air…). Dans ce dernier cas, le rendu (notamment la couleur, l’intensité…) sera déterminé à partir de cette information sémantique à une étape ultérieure, par exemple par le moteur de rendu déployé sur chaque terminal de communication.
En outre, d’autres types d’information peuvent être associés aux voxels de la grille. Par exemple, des informations géométriques peuvent y être associées, notamment des informations définissant une surface de transition.
Cette surface de transition permet d’influer sur l’apparence du voxel à un niveau d’échelle inférieure à celle du voxel. Elle permet notamment de modéliser des surfaces lisses (c’est-à-dire sans discontinuités) sur plusieurs voxels.
La illustre un voxel pour lequel 8 vertex sont représentés V11, V12, V13, V14, V21, V22, V23, V24, et une surface de transition A, B, C, D.
En indiquant, par exemple, la position des 4 sommets A, B, C, D, on peut définir un quadrilatère qui partitionne le voxel en deux parties :
  • une première partie, V11, V12, V13, V14, V21, V22, V23, V24, représentée par des traits pointillés sur la , peut correspondre à la valeur de rendu (couleur, matière…) du voxel, et,
  • une seconde partie V21, V22, V23, V24, A, B, C, D peut correspondre à la valeur de rendu du voxel voisin par la face V21, V22, V23, V24.
Cette surface de transition est essentiellement opérante lorsque le voxel voisin est transparent. Auquel cas, le voxel V11, V12, V13, V14, V21, V22, V23, V24pourra être représenté comme une forme V11, V12, V13, V14, V21, V22, V23, V24, et non pas comme un cube.
Si les surfaces de transition sont correctement définies pour les voxels voisins, par les autres faces (V12, V13, V22, V23), (V11, V14, V21, V24), (V14, V13, V24, V23), (V11, V12, V21, V22), on peut ainsi obtenir, par la concaténation des surfaces d’interfaces respectives, une surface continue sur plusieurs voxels. Ce résultat permet un rendu esthétique plus naturel, et d’éviter une discrétisation des objets et du paysage comme par exemple avec l’environnement « Minecraft ».
À partir d’une telle modélisation de l’environnement, il est possible de générer un maillage surfacique global de l’environnement. Ce maillage est une structure de données représentant uniquement la surface de l’environnement tridimensionnel, c’est-à-dire ce qui est susceptible d’être visible aux différents utilisateurs en fonction de leur point de vue. Ce maillage, qui ne dépend pas des utilisateurs, est généré chaque fois que nécessaire et transmis aux différents terminaux de communication connecté au serveur. Comme évoqué précédemment, chaque terminal peut alors générer une vue, ou un « rendu », de l’univers sur la base à la fois de ce maillage surfacique global et de ses données subjectives (position dans l’environnement, direction/angle de vue, etc.).
Selon l’invention, la génération du maillage surfacique global est réalisée par le serveur en plusieurs étapes.
Une première étape initiale, S1 sur la , consiste à partitionner au moins une partie de la grille de l’environnement tridimensionnel en un ensemble de sous-grilles.
Il apparaît que considérer l’intégralité de la grille voxel à chaque étape est doublement inefficace :
  • la consommation mémoire est de l’ordre de plusieurs giga-octets, uniquement pour la donnée voxel d’entrée de l’algorithme,
  • En outre, la moindre modification de la grille voxel nécessiterait un recalcul complet du maillage et application de l’algorithme de simplification (étapes S2-S6 sur la )
Pour remédier à ces problèmes, on découpe la grille principale en sous- grilles. Ces sous-grilles peuvent être cubiques et de taille fixe.
La schématise un exemple de grille 400 représentant un environnement tridimensionnel. Dans cet exemple, cette grille a été partitionnée en 4 sous grilles, 410, 420, 430, 440. Chacune de ces sous-grilles 410 comportant une pluralité de voxels 411, 412, 413, 414, 415… Bien entendu, dans la réalité les sous-grilles comportent un nombre nettement plus substantiel de voxels, et la grille comporte un bien plus grand nombre de sous-grilles. Également, l’écart entre les sous-grilles dans la vise uniquement à la clarté de la figure et ne représente aucune réalité concrète : ainsi, le vertex A se trouve sur l’arrête V11-V21, le vertex B se trouve sur l’arrête V14-V24, etc.
Chaque sous-grille forme donc une structure de données de taille substantiellement plus réduite que celle de la grille globale. En outre, il est possible de déterminer la taille des sous-grilles de façon optimale en fonction des ressources computationnelles dont dispose le serveur 10.
Les étapes subséquentes de la génération du maillage surfacique global peuvent être effectuées initialement, et à nouveau lorsque la modélisation 11 est modifiée.
Ces modifications peuvent avoir, comme évoqué précédemment d’autres causes : la création d’un nouvel objet, la destruction d’un objet, la modification d’un objet, etc. D’une façon générale, ces différentes causes résultent sur la modification d’une valeur associée à un voxel (couleur, matière, surface de transition…).
Selon un mode de réalisation, la détection d’une modification dans la modélisation engendre une demande de recalcul qui est placée dans une file d’attente. Cette file d’attente est consommée par un module de génération de maillage. Un mécanisme permet d’agréger plusieurs demandes de recalcul : ainsi, il serait contreproductif de calculer plusieurs fois un maillage surfacique pour plusieurs modifications successives d’une même sous-grille, par exemple.
Ainsi, selon un mode de réalisation de l’invention, lorsque le module de génération de maillage est disponible, il consomme la première demande dans la file et recherche d’autres demandes portant sur la même sous-grille que cette première demande (dans la totalité de la file d’attente ou selon une fenêtre temporelle…), et génère un maillage surfacique pour cette sous-grille qu’une unique fois, en prenant en compte les différentes modifications (correspondant aux demandes respectives).
Ainsi, selon ce mode de réalisation, une file d’attente de type FIFO (« First In, First Out » est mise en place. Cette mise en œuvre est intéressante dans la mesure où l'on a une capacité de calcul fixe et finie sur le serveur et permet de réduire la fréquence de mise-à-jour des maillages si le serveur est saturé et d'avoir des mises-à-jour plus rapides dans le cas où il y a de la capacité de calcul disponible. Cette approche est également intéressante dans notre contexte car elle permet de réduire le nombre de transmission du maillage et d’ainsi réduire le coût en bande passante.
Dans un cas où la demande de mise-à-jour de maillage serait très variable, il pourrait être intéressant d'opter pour une autre mise en oeuvre basée sur une infrastructure de calcul de taille dynamique. Une infrastructure de taille dynamique serait également pertinente si la fréquence de mise-à-jour des maillages était une métrique à garantir fortement.
Dans une étape S2, le serveur peut générer un maillage surfacique pour une ou plusieurs sous-grilles. Typiquement, donc, uniquement les sous-grilles impactées par une modification de la modélisation peuvent être générées à nouveau.
La donnée voxel ne peut typiquement pas être visualisée directement. Aussi, on génère un maillage représentant l’interface entre les voxels opaques et les voxels transparents pour permettre à un utilisateur de visualiser cette donnée. Dans le cas où seule l’apparence est nécessaire, toute l’information qui ne se trouve pas à cette interface est donc complètement superflue.
Pour générer un maillage représentant la donnée voxel, on peut considérer des paires de voxels adjacents. Si un des deux voxels a un matériau opaque et l’autre transparent, alors on génère un quadrilatère entre les deux voxels auquel on attribue le matériau opaque.
Selon un mode de réalisation, on ajuste la position des sommets du quadrilatère en utilisant les informations sur la surface de transition associée au voxel, comme expliqué précédemment.
De cette façon, en considérant l’ensemble des paires de voxels adjacents d’une sous-grille, on obtient effectivement un maillage surfacique, c’est-à-dire une structure de données décrivant uniquement la surface d’interface entre les voxels (ou parties de voxels) opaques (correspondant à une matière différente de l’air) et les voxels (ou parties de voxels) transparents (correspondant à l’air). Ce maillage surfacique correspond à la partie visible de l’environnement tridimensionnel.
Selon un mode de réalisation, la génération d’un maillage surfacique pour une sous-grille comprend une sous-étape de triangulation, consistant à transformer les quadrilatères correspondant à chaque voxel en triangles.
Cette triangulation engendre une tessellation, ou pavage, de la sous-grille. Le nombre de triangles peut néanmoins être très important, ce qui est sous-optimal pour un traitement efficace par le serveur.
La littérature propose de nombreuses solutions pour simplifier une telle triangulation. Notamment, il est possible d’agréger les triangles coplanaires pour constituer des polygones de plus grande taille.
Une simplification simple peut se baser sur l’analyse de chaque point (vertex) du maillage surfacique pour vérifier si les triangles adjacents sont coplanaires ou non, et si oui, ce point est supprimé et les triangles en question sont fusionnés en un polygone unique.
D’autres algorithmes existent et permettent d’optimiser la simplification du maillage.
Il est à noter que dans notre cas, les maillages de départ de sont pas de « bonne qualité ». En particulier, le maillage disponible à ce stage n’est pas manifold. Un maillage est dit n-manifold quand, en une arête, sont connectées au maximum n surfaces planes. Un maillage 2-manifold est donc un réseau de surfaces pour lesquelles les arêtes sont la frontière d’au maximum 2 surfaces planes
Les maillages non-manifold sont généralement difficiles à manipuler et posent problèmes à de nombreux algorithmes de simplifications. Une sélection doit donc être opérée pour choisir des algorithmes convenants dans le cadre des contraintes spécifiques de l’invention.
Ainsi, on peut par exemple citer l’algorithme QSlim, disponible comme outil logiciel libre, et décrit dans la thèse de l’auteur M. Garland, «Quadric-based Polygonal Surface Simplification »,School of Computer Science of Pittsburgh, Mai 1999.
On peut également citer l’algorithme décrit dans «Fast and Robust QEF Minimization using Probabilistic Quadrics »de Philip Trettner, Leif Kobbelt, disponible à l’adresse http://www.graphics.rwth-aachen.de/publication/03308/
Selon l’invention, l’algorithme de simplification est mis en œuvre sur uniquement une sous partie du maillage surfacique de la sous-grille. Cette sous-partie correspond à la sous-grille dont a été exclue une zone de bordure.
On exclue en effet du maillage une zone de bordure. Cette zone de bordure peut se définir par une marge sur les limites de la sous-grille.
En particulier, on peut définir la zone de bordure par l’ensemble des triangles du maillage dont au moins un des vertex appartient au bord du maillage de la sous-grille (c’est-à-dire à un voxel ayant un voisin immédiat dans le maillage d’une autre sous-grille).
Le but est d’éviter toute perte d'information, qui sera nécessaire pour déterminer la jonction entre les deux sous-grilles et évaluer l'erreur de simplification de la géométrie.
Cette table indique de quels voxels proviennent les différents sommets des triangles au bord de la zone.
Selon un mode de réalisation de l’invention, on associe un vertex à un unique voxel selon une règle prédéfinie. Par exemple, sur la base d’un repère donné, on associe arbitrairement chaque vertex au voxel en bas à gauche.
La table permet ainsi une mise en correspondance unique entre la grille de voxels et la grille de vertex : [(vertex 1, voxel 1), (vertex 2, voxel 2),…]
Chaque maillage peut être généré indépendamment des maillages voisins et ne nécessite que la mémoire nécessaire pour une sous-grille. En outre, le fait que les sous-grilles aient une taille fixe et connue permet de dimensionner le serveur de façon optimale en adéquation avec le choix de la taille des sous-grilles.
Par exemple, on peut choisir de travailler avec des sous-grilles de 323, soit environ 32000 voxels. La structure de données de chaque voxel représente une trentaine d’octets d’information. Une sous-grille représente donc environ 1 méga-octet
En général, une majeure partie d’une sous-grille ne contient pas de géométrie (car il n’y a pas de transition entre air et matière). Le maillage correspondant est donc généralement petit devant la taille des donnés voxel. Pour des constructions non dégénérées, on est de l'ordre de 10 kilo-octets par maillage de sous-grille après l'étape de simplification partielle du maillage de la cellule.
Un exemple de maillage peut être composé de 4000 sous-grilles, ce qui correspond à une taille de traitement de quelques centaines de méga-octets pour la fabrication et la simplification du maillage complet.
Dans une étape S4, le serveur assemble les maillages surfaciques des sous-grilles afin de former un maillage surfacique global.
Comme vu précédemment, le serveur ne peut générer que les maillages de sous-grilles impactés par une modification de la modélisation de l’environnement. Dès lors, l’assemblage peut consister à assembler des sous-grilles d’ancienneté variée.
Les maillages intermédiaires générés à l’étape précédente, S3, sont relativement petits du fait de la simplification et de la taille contrôlée des sous-grilles. Il n’y a pas de problème particulier pour le serveur à les avoir tous en mémoire simultanément.
Cet assemblage consiste à concaténer les maillages de chaque sous-grille et à utiliser les tables associées à chaque sous-grille pour former la zone de jonction entre deux maillages contigus.
Selon un mode de réalisation de l’invention, on regarde tous les voxels de jonction dans les tables. S’il y a une transition d'air à matière dans la jonction (air dans une sous-grille et matière dans la sous-grille voisine), alors on ajoute des triangles en reliant les vertex associés à ces voxels.
Selon un mode de réalisation de l’invention, l’étape d’assemblage comprend en outre une sous-étape de simplification du maillage surfacique global
L’algorithme de cette simplification peut être similaire à celui déployé à l’étape S3 mais sur l’ensemble de la grille et sans procéder à l’exclusion d’une zone de bordure.
Cette nouvelle simplification permet d’une part de simplifier les zones de bordure (qui n’ont pu être simplifiés lors de l’étape S3), maintenant jointes deux à deux, et également de détecter des zones pouvant être simplifiées sur plusieurs sous-grilles. Par exemple, des polygones peuvent être coplanaires sur deux (ou davantage) sous-grilles et, auquel, il est possible de procéder à une simplification du maillage global en fusionnant ces polygones.
Ce maillage surfacique global, après simplification supplémentaire éventuelle, peut ensuite être transmis par le serveur, lors d’une étape S5, vers les terminaux de communication.
Chacun d’entre eux peut alors, indépendamment, générer, dans une étape S6, une vue de l’environnement tridimensionnel en fonction dudit maillage surfacique global et d’un point de vue associé au terminal. Cette étape de construction d’une vue à partir d’un maillage surfacique est classique en soi et peut être mise en œuvre par différentes techniques de rendu 3D.
À titre d’exemple, on peut citer la méthode bien connue du « Z buffer », qui permet de gérer le problème de la visibilité en déterminant quels éléments de la scène doivent être rendus, lesquels sont cachés par d'autres et dans quel ordre l'affichage des objets doit se faire.
Cette étape de génération d’une vue peut en outre comprendre une projection du maillage surfacique vers la surface bidimensionnelle représentant l’écran sur lequel l’utilisateur du terminal peut visualiser l’environnement.
Ainsi, selon l’invention, uniquement des données représentant un maillage surfacique simplifié sont transmis vers les terminaux de communication. Ces données sont faiblement volumineuse par rapport à celle de la modélisation en voxels. En outre, ce maillage surfactique est agnonistique par rapport aux points de vue des utilisateurs. Ainsi, une transmission de type « diffusion » (« broadcasting ») peut être mise en œuvre et une partie des calculs déportés vers les terminaux des utilisateurs.
La division d’une grille en sous-grilles permet par ailleurs de garder la charge du serveur sous contrôle en permettant de manipuler des structures de données de taille réduite et en minimisant le volume de données à recalculer à chaque modification de l’environnement.
Ce mécanisme est particulièrement approprié dans le cas où le nombre de modifications de l’environnement est relativement faible par rapport au nombre d’utilisateurs navigant dans l’environnement et devant donc recevoir des mises à jour de l’environnement. En effet, une modification va n’impacter qu’une sous-grille et nécessiter qu’un minimum marginal réduit : recalcul de la sous-grille, et recalcul du maillage surfacique global par assemblage.
Bien entendu, la présente invention n'est pas limitée aux exemples et au mode de réalisation décrits et représentés, mais est défini par les revendications. Elle est notamment susceptible de nombreuses variantes accessibles à l'homme de l'art.

Claims (9)

  1. Procédé pour la génération d’une vue d’un environnement tridimensionnel sur un ensemble de terminaux de communication à partir d’une modélisation dudit environnement stockée sur un serveur sous la forme d’une grille de voxels, ledit serveur mettant en œuvre des étapes de
    - partition (S1) d’au moins une partie de ladite grille en un ensemble de sous-grilles;
    - génération (S2) d’un maillage surfacique pour chaque sous-grille dudit ensemble,
    - pour chacune desdites sous-grille, simplification (S3) d’une sous partie dudit maillage surfacique excluant une zone de bordure dudit maillage surfacique ; et création d’une table associant chaque vertex dudit bord à un voxel ;
    - assemblage (S4) des maillages surfaciques desdites sous-grilles dudit ensemble, à l’aide de ladite table, afin de former un maillage surfacique global ;
    - transmission (S5) dudit maillage surfacique global vers lesdites terminaux de communication, et génération (S6) d’une vue dudit environnement tridimensionnel en fonction dudit maillage surfacique global et d’un point de vue associé à chacun desdits terminaux de communication.
  2. Procédé selon la revendication précédente, dans lequel une surface de transition est associée auxdits voxels et en ce que lesdits maillages surfaciques sont générés en fonction desdites surfaces de transition.
  3. Procédé selon l’une des revendications précédentes dans lequel lorsque ledit serveur détecte une modification de ladite modélisation, il insère dans une file d’attente, une demande de recalcul du maillage surfacique correspondant à ladite modification, et ce que les demandes de recalcul présentes dans ladite file et portant sur une même sous-grille sont traités de sorte à effectuer qu’une seule génération d’un maillage surfacique pour ladite sous-grille.
  4. Procédé selon l’une des revendications précédentes, dans lequel l’étape d’assemblage (S4) comporte une sous-étape de simplification supplémentaire du maillage surfacique global.
  5. Serveur pour la génération d’une vue d’un environnement tridimensionnel à partir d’une modélisation dudit environnement, comportant une mémoire pour stocker ladite modélisation sous la forme d’une grille de voxels, et des moyens de traitement pour mettre en œuvre :
    - partition (S1) d’au moins une partie de ladite grille en un ensemble de sous-grilles;
    - génération (S2) d’un maillage surfacique pour chaque sous-grille dudit ensemble,
    - pour chacune desdites sous-grille, simplification (S3) d’une sous partie dudit maillage surfacique excluant une zone de bordure dudit maillage surfacique ; et création d’une table associant chaque vertex dudit bord à un voxel ;
    - assemblage (S4) des maillages surfaciques desdites sous-grilles dudit ensemble, à l’aide de ladite table, afin de former un maillage surfacique global ;
    - transmission (S5) dudit maillage surfacique global vers un ensemble de terminaux de communication, chacun étant prévu pour la génération (S6) d’une vue dudit environnement tridimensionnel en fonction dudit maillage surfacique global et d’un point de vue associé à chacun desdits terminaux de communication.
  6. Serveur selon la revendication précédente, dans lequel une surface de transition est associée auxdits voxels et en ce que lesdits maillages surfaciques sont générés en fonction desdites surfaces de transition.
  7. Serveur selon l’une des revendications 5 ou 6, en outre configuré pour, lorsque ledit serveur détecte une modification de ladite modélisation, il insère dans une file d’attente, une demande de recalcul du maillage surfacique correspondant à ladite modification, et ce que les demandes de recalcul présentes dans ladite file et portant sur une même sous-grille sont traités de sorte à effectuer qu’une seule génération d’un maillage surfacique pour ladite sous-grille.
  8. Serveur selon l’une des revendications 5 à 7, dans lequel l’assemblage (S4) comporte une simplification supplémentaire du maillage surfacique global.
  9. Système comportant un serveur selon l’une des revendications 5 à 8 et au moins un terminal de communication.
FR2105352A 2021-05-21 2021-05-21 Génération d’un maillage surfacique à partir d’une modélisation en voxels d’un environnement tridimensionnel Active FR3123131B1 (fr)

Priority Applications (8)

Application Number Priority Date Filing Date Title
FR2105352A FR3123131B1 (fr) 2021-05-21 2021-05-21 Génération d’un maillage surfacique à partir d’une modélisation en voxels d’un environnement tridimensionnel
PCT/FR2022/050913 WO2022243626A1 (fr) 2021-05-21 2022-05-13 Génération d'un maillage surfacique à partir d'une modélisation en voxels d'un environnement tridimensionnel
US18/563,289 US20240212284A1 (en) 2021-05-21 2022-05-13 Generation of a surface mesh from a voxel model of a three-dimensional environment
JP2023572128A JP2024521128A (ja) 2021-05-21 2022-05-13 三次元環境のボクセルモデルからの表面メッシュの生成
KR1020237043760A KR20240012464A (ko) 2021-05-21 2022-05-13 3차원 환경의 복셀 모델로부터의 표면 메시의 생성
EP22730954.9A EP4341909A1 (fr) 2021-05-21 2022-05-13 Génération d'un maillage surfacique à partir d'une modélisation en voxels d'un environnement tridimensionnel
CN202280041341.6A CN117751389A (zh) 2021-05-21 2022-05-13 从三维环境的体素模型生成表面网格
CA3219703A CA3219703A1 (fr) 2021-05-21 2022-05-13 Generation d'un maillage surfacique a partir d'une modelisation en voxels d'un environnement tridimensionnel

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2105352A FR3123131B1 (fr) 2021-05-21 2021-05-21 Génération d’un maillage surfacique à partir d’une modélisation en voxels d’un environnement tridimensionnel
FR2105352 2021-05-21

Publications (2)

Publication Number Publication Date
FR3123131A1 true FR3123131A1 (fr) 2022-11-25
FR3123131B1 FR3123131B1 (fr) 2023-06-09

Family

ID=76920924

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2105352A Active FR3123131B1 (fr) 2021-05-21 2021-05-21 Génération d’un maillage surfacique à partir d’une modélisation en voxels d’un environnement tridimensionnel

Country Status (8)

Country Link
US (1) US20240212284A1 (fr)
EP (1) EP4341909A1 (fr)
JP (1) JP2024521128A (fr)
KR (1) KR20240012464A (fr)
CN (1) CN117751389A (fr)
CA (1) CA3219703A1 (fr)
FR (1) FR3123131B1 (fr)
WO (1) WO2022243626A1 (fr)

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "How to generate Continuous Levels Of Detail for a Chunked Terrain (CLOD, Geomorphing)? : VoxelGameDev", 20 February 2017 (2017-02-20), XP055883972, Retrieved from the Internet <URL:https://www.reddit.com/r/VoxelGameDev/comments/5uzics/how_to_generate_continuous_levels_of_detail_for_a/> [retrieved on 20220126] *
ANONYMOUS: "Nick's Voxel Blog: Dual Contouring: Seams & LOD for Chunked Terrain", 11 November 2020 (2020-11-11), XP055883969, Retrieved from the Internet <URL:https://web.archive.org/web/20201111233629/http://ngildea.blogspot.com/2014/09/dual-contouring-chunked-terrain.html> [retrieved on 20220126] *
ANONYMOUS: "Stitching meshes together - Game Development Stack Exchange", 1 October 2020 (2020-10-01), XP055883977, Retrieved from the Internet <URL:https://web.archive.org/web/20201001014351/https://gamedev.stackexchange.com/questions/53727/stitching-meshes-together#> [retrieved on 20220126] *
M. GARLAND: "Quadric-based Polygonal Surface Simplification", May 1999, SCHOOL OF COMPUTER SCIENCE OF PITTSBURGH
PHILIP TRETTNERLEIF KOBBELT, FAST AND ROBUST QEF MINI-MIZATION USING PROBABILISTIC QUADRICS, Retrieved from the Internet <URL:http://www.graphics.rwth-aachen.de/publication/03308>
ULRICH THATCHER: "Rendering Massive Terrains using chunked Level of Detail Control", INTERNET CITATION, 14 April 2002 (2002-04-14), pages 1 - 14, XP002521430, Retrieved from the Internet <URL:http://tulrich.com/geekstuff/sig-notes.pdf> [retrieved on 20090320] *

Also Published As

Publication number Publication date
CN117751389A (zh) 2024-03-22
CA3219703A1 (fr) 2022-11-24
JP2024521128A (ja) 2024-05-28
EP4341909A1 (fr) 2024-03-27
US20240212284A1 (en) 2024-06-27
FR3123131B1 (fr) 2023-06-09
KR20240012464A (ko) 2024-01-29
WO2022243626A1 (fr) 2022-11-24

Similar Documents

Publication Publication Date Title
FR2852128A1 (fr) Procede pour la gestion de la representation d&#39;au moins une scene 3d modelisee.
EP3292541B1 (fr) Procede des simplification de modele de geometrie
US20190221038A1 (en) Three-dimensional modelling with improved virtual reality experience
EP1982310B1 (fr) Procede de synthese d&#39;une image virtuelle par lancer de faisceaux
CN103502974A (zh) 利用网格文件来动画化客户机应用中的过渡
US12080035B2 (en) Updates on context modeling of occupancy coding for point cloud coding
Derzapf et al. River networks for instant procedural planets
WO2012140360A1 (fr) Procede et systeme de rendu d&#39;une scene virtuelle en trois dimensions
JP2023501640A (ja) 点群処理の方法、コンピュータシステム、プログラム及びコンピュータ可読記憶媒体
WO2012140361A1 (fr) Procédé et système de rendu d&#39;une scène virtuelle en trois dimensions
EP2504816B1 (fr) Procede d&#39;estimation de diffusion de la lumiere
Noguera et al. A scalable architecture for 3D map navigation on mobile devices
JP7337193B2 (ja) ポイントクラウド符号化のための占有符号化のコンテキストモデリング
FR2964775A1 (fr) Procede d&#39;estimation de l&#39;occultation dans un environnement virtuel
EP0801775B1 (fr) Procede de generation dynamique d&#39;images synthetiques a niveau de detail automatique, et dispositif de mise en oeuvre
FR3123131A1 (fr) Génération d’un maillage surfacique à partir d’une modélisation en voxels d’un environnement tridimensionnel
EP2502207A2 (fr) Procede d&#39;estimation de diffusion de la lumiere
CN116635900A (zh) 时延弹性化的云渲染
KR100715669B1 (ko) 다단계 해상도를 갖는 3차원 이미지 표현 장치 및 방법
CA2209275C (fr) Procede de generation dynamique d&#39;images synthetiques a niveau de detail automatique, et dispositif de mise en oeuvre
EP1121665B1 (fr) Procede de codage d&#39;un maillage source, avec optimisation de la position d&#39;un sommet resultant d&#39;une fusion d&#39;arete, et applications correspondantes
Ahn A Review of Efficient Interactive Rendering of Natural Scenes Suitable for VR
JP2006215888A (ja) コンピュータを用いた描画方法
FR2837949A1 (fr) Procede pour la visualisation d&#39;une image geographique semi-reelle
FR2953962A1 (fr) Procede de generation d&#39;une representation graphique en temps reel d&#39;un univers virtuel, dispositif et programme d&#39;ordinateur correspondants.

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20221125

PLFP Fee payment

Year of fee payment: 3