Bonjour, Habr!
Dans cet article, je vais parler d'un article de Jinmo Kim: "Système de création de terrains de labyrinthe en réalité virtuelle immersive pour un nouveau réalisme visuel". Il a été publié le 04/04/2019. Le texte intégral de l'article est disponible ici .
Brève description du système
L'article propose le système de l'auteur pour créer des paysages de labyrinthe, avec lequel l'utilisateur peut générer automatiquement divers motifs complexes dans un système simple et intuitif. En utilisant les informations de labyrinthe calculées dans le programme, un paysage de labyrinthe en trois dimensions est généré rapidement et efficacement.
Le système de génération de paysage de labyrinthe proposé comprend trois fonctions principales:
- la fonction de génération automatique d'une grille de labyrinthe de différentes tailles et motifs, mise en œuvre en utilisant l'algorithme de génération de labyrinthe classique;
- fonction de génération de labyrinthe circulaire;
- la fonction de conversion d'un labyrinthe d'une esquisse manuelle en un objet 3D à l'aide d'un algorithme de traitement d'image.
En utilisant le système proposé, composé de ces trois fonctions, il est possible de créer efficacement différents labyrinthes, d'homogène à irrégulier. Ce développement vous permettra de générer des paysages de labyrinthe de différents concepts directement à partir des calculs effectués à travers le même système. De plus, ce travail analyse l'amélioration de l'effet de présence et d'immersion dans la réalité virtuelle, c'est-à-dire réalisme visuel. De plus, dans ce travail, une analyse de l'adéquation du système de création proposé a été réalisée à l'aide d'une enquête.
Pourquoi la réalité virtuelle?
Pour obtenir une sorte d'expérience réaliste, vous devez interagir avec les sens humains. La réalité virtuelle permet à une personne d'acquérir une telle expérience en interagissant avec des sensations visuelles, auditives et tactiles. Dans la réalité virtuelle, l'effet de présence est important, grâce auquel l'utilisateur peut obtenir une expérience réaliste basée sur des sentiments sur où il est, avec qui et quelles actions il effectue.
Pour augmenter l'effet de la présence dans la réalité virtuelle, il est important de savoir comment l'utilisateur interagit avec l'environnement virtuel, mais non moins important est de savoir comment des scènes virtuelles variées sont fournies pour satisfaire visuellement l'utilisateur.
Dans les études des systèmes de réalité virtuelle orientés matériel (systèmes tactiles, plateformes de mouvement, etc.), pour un affichage réaliste des actions et des mouvements des utilisateurs en réalité virtuelle, seules des scènes expérimentales ont été utilisées, où l'espace en elles était limité et la structure des scènes était simple dans la plupart des cas. Étant donné que la technologie VR est utilisée dans divers domaines, tels que les arts visuels et la conception architecturale, ainsi que dans les jeux, des études spéciales sont nécessaires pour créer un espace virtuel complexe conformément à la VR. À cette fin, dans ce travail, des études ont été menées sur les méthodes de création automatique de scènes virtuelles, telles que les espaces urbains et les paysages virtuels, qui ont des structures complexes et des caractéristiques diverses.
Immersion en réalité virtuelle
La réalité virtuelle immersive (ou réalité virtuelle immersive) est une telle réalité qui naît dans l'esprit d'une personne au cours de son interaction avec des systèmes techniques complexes, tels que les systèmes de réalité virtuelle. Il a son propre chronotope unique, la logique, n'existe que pertinente, alors que l'utilisateur est «présent» dans cette réalité, a l'interactivité, comme la capacité de répondre aux actions de l'utilisateur.
Des études de plongées en réalité virtuelle ont été réalisées selon différentes approches:
- un écran qui transmet des informations visuelles en trois dimensions pour offrir une expérience réaliste à l'utilisateur dans un environnement virtuel basé sur cinq sens
- traitement du son pour une perception spatiale améliorée grâce au son surround
- une méthode d'interaction avec un environnement virtuel, ainsi qu'un système tactile et une plateforme de mouvement qui redirigent les réponses physiques vers le corps humain (bras, jambes, etc.).
Pour obtenir l'effet de présence dans la réalité virtuelle, il doit y avoir une satisfaction visuelle de l'utilisateur. Pour cette raison, il y a un intérêt croissant pour la recherche multimodale, qui examine à la fois les sensations visuelles et auditives ou les sensations visuelles et tactiles, ainsi que les études de systèmes pseudo-tactiles qui combinent l'expérience visuelle et les systèmes tactiles.
Amélioration du réalisme visuel
Une méthode pour générer une scène virtuelle, qui peut fournir un effet de présence amélioré, ainsi que de nouvelles expériences visuelles pour l'utilisateur dans un environnement virtuel, est nécessaire pour une variété d'applications VR. À l'avenir, les scènes de réalité virtuelle se libéreront de petits espaces limités tels que les espaces intérieurs et créeront de vastes paysages ouverts tels que les villes et les mondes virtuels pour offrir aux utilisateurs plus de choix.
Pour créer des scènes de labyrinthe virtuel pouvant offrir de nouvelles expériences et améliorer l'effet de la présence des utilisateurs dans la réalité virtuelle, un système de création optimisé est proposé dans ce travail. Il est basé sur la recherche traditionnelle et peut générer des scènes de labyrinthe virtuel plus diverses dans une structure simple, intuitive et conviviale.
Système de paysage de labyrinthe
Le système proposé crée un paysage virtuel du labyrinthe, avec pour effet d'améliorer le réalisme visuel des utilisateurs dans la réalité virtuelle, en utilisant divers effets visuels. Il comprend trois fonctions de base qui génèrent automatiquement divers modèles de labyrinthe et les convertissent en informations nécessaires pour créer une surface tridimensionnelle du labyrinthe.
Générer un motif de labyrinthe rectiligne
La première fonction du système de création de paysage de labyrinthe est de générer automatiquement des motifs de labyrinthe en utilisant l'algorithme de génération de labyrinthe classique. Un facteur important est la nécessité de créer le labyrinthe final. Il doit y avoir différents chemins ou un chemin absolu pour que l'utilisateur ne soit pas piégé à l'intérieur du labyrinthe. Cela aide à empêcher les utilisateurs de souffrir de la maladie VR, qui est un grave problème de réalité virtuelle. Cette fonction est basée sur l'algorithme de Lee et al., Qui crée un motif de labyrinthe en utilisant l'algorithme Prim.
L'algorithme pour la génération finale du labyrinthe de Lee, etc., est une méthode qui commence par les processus: (1) définir la position de départ et (2) définir aléatoirement la cellule de route à partir des cellules environnantes. Ensuite (3), l'algorithme examine quatre cellules autour de la direction (déterminant la structure des couches de cellules après avoir ajouté ces quatre cellules environnantes à la collection en tant que cellules de paroi). Ensuite, l'algorithme répète les processus (4, 5) pour trouver l'une des cellules enregistrées du mur, puis crée une route.
Les figures ci-dessous montrent le processus de construction d'un gabarit de labyrinthe rectiligne. L'utilisateur définit la taille du modèle de labyrinthe et lorsque vous cliquez sur le bouton «Labyrinthe», le modèle de labyrinthe est automatiquement calculé et généré.

Si l'utilisateur souhaite éditer le modèle du labyrinthe créé automatiquement, le mode «Éditer» est sélectionné. L'utilisateur modifie avec la souris dans le champ de présentation du modèle de labyrinthe en cliquant sur la cellule, après quoi il est automatiquement converti de mur en route ou de route en mur. Une fois le modèle de labyrinthe généré, l'utilisateur a la possibilité de visualiser le labyrinthe résultant au format 3D.
La méthode de création d'un labyrinthe circulaire
La deuxième fonction du système proposé par l'auteur pour créer un paysage de labyrinthe est la méthode de génération d'un labyrinthe circulaire. Cette méthode crée automatiquement des labyrinthes circulaires de différentes tailles et motifs et est un bon ajout à la fonction de génération de motifs de labyrinthe sous la forme d'une grille rectangulaire. Ainsi, cette méthode étend l'expérience visuelle des utilisateurs en réalité virtuelle. Le processus de création et d'installation des murs et des cellules de route est fondamentalement identique. Mais pour un labyrinthe circulaire, les caractéristiques d'entrée sont le rayon du labyrinthe et le nombre d'entrées dans le labyrinthe.
Tout d'abord, lorsque l'utilisateur entre dans le rayon souhaité du labyrinthe, les parois des parois du labyrinthe circulaire sont automatiquement calculées par l'algorithme de tracé d'un cercle à partir d'un point central. Ensuite, la paroi du labyrinthe circulaire est dupliquée plusieurs fois avec un certain intervalle (ns) du cercle extérieur. En fonction du nombre d'entrées entrées par l'utilisateur, les passages sont créés en faisant tourner les cellules du mur autant de fois que les entrées doivent provenir du cercle le plus à l'extérieur.
Les cellules qui deviendront le point de départ pour entrer dans le cercle extérieur sont sélectionnées au hasard autant de fois que le nombre d'entrées du labyrinthe devrait être. Ensuite, dans la cellule sélectionnée, une cellule de paroi est sélectionnée dont la longueur coïncide avec l'intervalle (ns) entre les parois circulaires, et elle tourne juste assez pour toucher la paroi circulaire intérieure.
Enfin, lorsqu'une cellule de paroi se produit dans la position dans laquelle elle tourne et touche la paroi circulaire intérieure, l'algorithme ci-dessus est répété.
1: nr ← . 2: ne ← . 3: procedure (nr, ne) 4: ns ← . 5: while nr > ns do 6: . 7: nr = nr - ns. 8: end while 9: nc ← . 10: Arre[ne] ← , ne . 11: for i = nc, 0 do: . 12: for j = 0, ne do 13: ns (Arre[j]). 14: . 15: Arre[j], , . 16: end for 17: end for 18: end procedure
Le texte original de l'algorithme nr ← radius of the circular maze. ne ← number of maze entrances. procedure CIRCULAR MAZE GENERATION PROCESS(nr, ne) ns ← interval between maze for user road. while nr > ns do define wall cell by using Bresenham's circle drawing algorithm. nr = nr - ns. end while nc ← number of drawing circles. Arre[ne] ← as many entrance cells as ne are selected from wall cell of the outermost circle. for i = nc, 0 do: generate passages in every circle. for j = 0, ne do select cells with length of ns in entrance cell (Arre[j]). rotate selected cells. renew Arre[j] by finding a cell that meets the inner circle after rotation. end for end for end procedure
L'algorithme ci-dessus de ce processus est basé sur les paramètres d'entrée du rayon du labyrinthe circulaire et le nombre d'entrées entrées par l'utilisateur. En outre, la figure ci-dessous montre le processus de création d'un labyrinthe circulaire.
Le processus de création d'un labyrinthe circulaire Labyrinthe basé sur des croquis
La dernière fonction du système de création de labyrinthe dans ce travail est la génération du labyrinthe basée sur l'esquisse. Les motifs de labyrinthes rectilignes et circulaires sont des labyrinthes homogènes. Cependant, dans la plupart des cas, le parc de labyrinthe que nous pouvons rencontrer dans la vie quotidienne a une forme irrégulière. Par conséquent, dans ce travail, une fonction est proposée qui, à partir d'une image d'esquisse dessinée à la main d'un utilisateur, peut facilement créer une surface naturelle du labyrinthe, ainsi qu'un modèle de labyrinthe sous forme électronique. Cette fonctionnalité vous permet d'utiliser les sections de labyrinthe dans diverses applications, telles que les systèmes de recherche de chemin ou les parcs virtuels.
La fonction de génération de labyrinthe proposée permet à l'utilisateur d'utiliser un motif de labyrinthe dessiné à l'aide d'un logiciel graphique tel que Photoshop ou un croquis numérisé dessiné à la main sur une feuille de papier. L'image est chargée dans un système dans lequel l'algorithme de traitement d'image est appliqué, grâce auquel l'image est convertie en une carte de texture de labyrinthe. Ce processus se déroule en trois étapes.
- La première étape est le processus d'obtention d'une image d'esquisse dans le système. Pour effectuer des calculs de processus ultérieurs, une image miniature est convertie en une image monocanal en niveaux de gris.
- La deuxième étape est le processus de rupture des murs et des routes en utilisant la binarisation. Ici, la valeur seuil est un élément important pour déterminer les murs et les routes. Le système a la possibilité de modifier la valeur du seuil d'entrée via l'interface.
- La troisième étape est le processus de remplissage des trous qui surviennent pendant le processus de binarisation.
À travers ces étapes, un labyrinthe naturel est créé. Le système fournit également un élément de menu qui permet à l'utilisateur de contrôler le nombre d'itérations de l'opération de remplissage.
La figure ci-dessous montre le processus de génération d'une carte de texture de labyrinthe dans un mode étape par étape à partir d'un croquis dessiné par l'utilisateur du labyrinthe.
Génération de labyrinthe à partir d'un croquis utilisateur Résultats expérimentaux et analyse
Le système proposé pour créer un paysage de labyrinthe a été implémenté à l'aide de Microsoft Visual Studio 2013, OpenCV 2.4.11 et DirectX SDK 9.0c. En outre, le moteur Unity 2017.3.1f1 (64 bits) a été utilisé pour créer un paysage de labyrinthe, finalisé à l'aide d'un travail graphique, basé sur une carte de texture de labyrinthe générée automatiquement à l'aide du système de création de labyrinthe de l'auteur. Pour tester ce paysage et visualiser le résultat en réalité virtuelle, le système a été intégré à l'aide du dispositif Oculus Rift CV1 HMD et du SDK Oculus (ovr_unity_utilities 1.22.0) avec le moteur Unity3D. Enfin, le PC utilisé pour l'expérience et la mise en œuvre avait des spécifications Intel Core i7-6700, 16 Go de RAM (mémoire à accès aléatoire) et un processeur graphique Geforce 1080.
La figure ci-dessous montre trois paysages de labyrinthe virtuels. Ce sont les résultats de la génération de relief à partir des modèles de labyrinthe calculés en utilisant les fonctions considérées de ce système de développement. De plus, vous pouvez voir que divers environnements de labyrinthe virtuel sont créés en ajoutant des facteurs graphiques conformément au concept.

De plus, une enquête pilote a été menée auprès des participants communs. Premièrement, en ce qui concerne les performances du système, à l'aide de tests comparatifs ayant pour fonction de créer des paysages de moteurs de jeux commerciaux, il a été confirmé que le système proposé permet aux utilisateurs (développeurs) de modifier facilement et intuitivement les sections souhaitées du labyrinthe. Cela a réduit le temps requis et a conduit à un degré élevé de satisfaction des utilisateurs avec le système.
A travers une enquête sur le sentiment de présence, il a été confirmé que les paysages labyrinthiques en réalité virtuelle peuvent offrir aux utilisateurs une nouvelle expérience visuelle. L'analyse statistique a également confirmé que tous les sites obtenus à l'aide des trois fonctions proposées étaient satisfaisants sans aucune différence significative entre eux. À l'avenir, le système sera affiné pour fournir un environnement de labyrinthe virtuel à grande échelle, tel qu'un parc de labyrinthes ou un parc à thème, où plusieurs utilisateurs pourront découvrir l'espace du labyrinthe ensemble en réalité virtuelle.