Sistema de geração de paisagem de labirinto com realismo visual aprimorado [tradução do artigo de Jinmo Kim]

Olá Habr!


Neste post, falarei sobre um artigo de Jinmo Kim: "Sistema de criação de terrenos de labirinto em realidade virtual imersiva para novo realismo visual". Foi publicada em 04/04/2019. O texto completo do artigo pode ser encontrado aqui .


Breve descrição do sistema


O artigo propõe o sistema do autor de criar paisagens de labirinto, com as quais o usuário pode gerar automaticamente vários padrões complexos em um sistema simples e intuitivo. Usando as informações do labirinto calculadas no programa, um cenário tridimensional de labirinto é gerado de maneira rápida e eficiente.


O sistema de geração de paisagem de labirinto proposto consiste em três funções principais:


  • a função de geração automática de uma grade de labirinto de vários tamanhos e padrões, implementada usando o algoritmo clássico de geração de labirinto;
  • função de geração circular de labirinto;
  • a função de converter um labirinto de um esboço manual em um objeto 3D usando um algoritmo de processamento de imagem.

Usando o sistema proposto, consistindo dessas três funções, é possível criar efetivamente vários labirintos, de homogêneos a irregulares. Esse desenvolvimento permitirá gerar paisagens de labirinto de vários conceitos diretamente dos cálculos feitos pelo mesmo sistema. Além disso, este trabalho analisa a melhoria do efeito da presença e imersão na realidade virtual, ou seja, realismo visual. Além disso, neste trabalho, uma análise da adequação do sistema de autoria proposto foi realizada usando uma pesquisa.


Por que realidade virtual?


Para obter algum tipo de experiência realista, você precisa interagir com os sentidos humanos. A realidade virtual permite que uma pessoa obtenha essa experiência através da interação com sentimentos visuais, auditivos e táteis. Na realidade virtual, o efeito de presença é importante, devido ao qual o usuário pode obter uma experiência realista com base em sentimentos sobre onde ele está, com quem e quais ações ele executa.


Para aumentar o efeito da presença na realidade virtual, é importante como o usuário interage com o ambiente virtual, mas não menos importante é a variedade de cenas virtuais fornecidas para satisfazer visualmente o usuário.


Em estudos de sistemas de realidade virtual orientados por hardware (sistemas táteis, plataformas de movimento etc.), para exibição realista de ações e movimentos do usuário na realidade virtual, foram utilizadas apenas cenas experimentais, onde o espaço nelas era limitado e a estrutura das cenas era simples. na maioria dos casos. Como a tecnologia VR é usada em vários campos, como artes visuais e projeto arquitetônico, bem como em jogos, são necessários estudos especiais para criar um espaço virtual complexo de acordo com a VR. Para tanto, neste trabalho, foram realizados estudos de métodos para a criação automática de cenas virtuais, como espaços urbanos e paisagens virtuais, que possuem estruturas complexas e diversas características.


Imersão em realidade virtual


A realidade virtual imersiva (ou realidade virtual imersiva) é uma realidade que nasce na mente humana no processo de sua interação com sistemas técnicos complexos, como sistemas de realidade virtual. Possui seu próprio cronotopo único, a lógica, existe apenas relevante, enquanto o usuário está "presente" nessa realidade, possui interatividade, como a capacidade de responder às ações do usuário.


Estudos de mergulhos em realidade virtual foram realizados usando várias abordagens:


  • uma exibição que transmite informações visuais tridimensionais para fornecer uma experiência realista ao usuário em um ambiente virtual baseado em cinco sentidos
  • processamento de som para melhorar a percepção espacial usando som surround
  • um método de interação com um ambiente virtual, assim como um sistema tátil e uma plataforma de movimento que direciona respostas físicas de volta ao corpo humano (braços, pernas, etc.).

Para alcançar o efeito da presença na realidade virtual, deve haver uma satisfação visual do usuário. Por esse motivo, há um interesse crescente na pesquisa multimodal, que examina sensações visuais e auditivas ou visuais e táteis, além de estudos de sistemas pseudo-táteis que combinam experiência visual e sistemas táteis.


Melhorando o realismo visual


Um método para gerar uma cena virtual, que pode fornecer um efeito de presença aprimorado, juntamente com novas experiências visuais para o usuário em um ambiente virtual, é necessário para uma variedade de aplicativos de RV. No futuro, as cenas de realidade virtual se libertarão de espaços pequenos e limitados, como espaços internos, e criarão vastas paisagens abertas, como cidades e mundos virtuais, para oferecer aos usuários mais opções.


Para criar cenas de labirinto virtual que podem fornecer novas experiências e melhorar o efeito da presença do usuário na realidade virtual, um sistema de autoria otimizado é proposto neste trabalho. É baseado em pesquisas tradicionais e pode gerar mais diversas cenas de labirinto virtual em uma estrutura simples, intuitiva e fácil de usar.


Sistema de paisagem de labirinto


O sistema proposto cria uma paisagem virtual do labirinto, com o efeito de aprimorar o realismo visual para usuários em realidade virtual, usando vários efeitos visuais. Inclui três funções básicas que geram automaticamente vários padrões de labirinto e os convertem em informações necessárias para criar uma superfície tridimensional do labirinto.


Gerar um padrão de labirinto retilíneo


A primeira função do sistema de criação de paisagem de labirinto é gerar automaticamente padrões de labirinto usando o algoritmo clássico de geração de labirinto. Um fator importante é a necessidade de criar o labirinto final. Deve haver caminhos diferentes ou um caminho absoluto para que o usuário não fique preso dentro do labirinto. Isso ajuda a impedir que os usuários sofram da doença da RV, que é um sério problema de realidade virtual. Esta função é baseada no algoritmo de Lee et al., Que cria um padrão de labirinto usando o algoritmo Prim.


O algoritmo para a geração final do labirinto de Lee, etc., é um método que começa com os processos: (1) definindo a posição inicial e (2) definindo aleatoriamente a célula rodoviária a partir das células circundantes. Então (3) o algoritmo examina quatro células ao redor da direção (determinando a estrutura das camadas celulares após adicionar essas quatro células circundantes à coleção como células da parede). Em seguida, o algoritmo repete os processos (4, 5) para encontrar uma das células registradas da parede e, em seguida, cria uma estrada.


As figuras abaixo mostram o processo de construção de um modelo de labirinto retilíneo. O usuário define o tamanho do modelo de labirinto e, quando você clica no botão "Labirinto", o modelo de labirinto é calculado e gerado automaticamente.


imagem

Se o usuário deseja editar o modelo do labirinto criado automaticamente, o modo "Editar" é selecionado. O usuário edita com o mouse no campo de apresentação do modelo do labirinto, clicando na célula, após o que é automaticamente convertido de parede em estrada ou de estrada em parede. Depois que o modelo de labirinto é gerado, o usuário tem a oportunidade de visualizar o labirinto resultante no formato 3D.


Veja o labirinto em 3D
imagem

O método de criação de um labirinto circular


A segunda função do sistema do autor proposto para criar uma paisagem de labirinto é o método de gerar um labirinto circular. Esse método cria automaticamente labirintos circulares de vários tamanhos e padrões e é um bom complemento para a função de gerar padrões de labirinto na forma de uma grade retangular. Assim, esse método amplia a experiência visual dos usuários em realidade virtual. O processo de criação e instalação de muros e ruas é basicamente idêntico. Mas para um labirinto circular, as características de entrada são o raio do labirinto e o número de entradas no labirinto.


Primeiro, quando o usuário entra no raio desejado do labirinto, as paredes das paredes do labirinto circular são calculadas automaticamente pelo algoritmo para desenhar um círculo a partir de um ponto central. Então a parede do labirinto circular é duplicada muitas vezes com um certo intervalo (ns) do círculo externo. Com base no número de entradas inseridas pelo usuário, as passagens são criadas girando as células da parede quantas vezes as entradas devem vir do círculo mais externo.


As células que se tornarão o ponto de partida para entrar no círculo externo são selecionadas aleatoriamente quantas vezes for o número de entradas no labirinto. Em seguida, na célula selecionada, é selecionada uma célula da parede cujo comprimento coincide com o intervalo (ns) entre as paredes circulares e gira apenas o suficiente para tocar a parede circular interna.
Finalmente, quando uma célula da parede ocorre na posição em que é girada e toca a parede circular interna, o algoritmo acima é repetido.


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 

O texto original do algoritmo
 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 

O algoritmo acima deste processo é baseado nos parâmetros de entrada do raio do labirinto circular e no número de entradas inseridas pelo usuário. Além disso, a figura abaixo mostra o processo de criação de um labirinto circular.


O processo de criação de um labirinto circular

imagem


Labirinto baseado em esboço


A última função do sistema de criação de labirintos neste trabalho é a geração do labirinto com base no esboço. Padrões de labirintos retilíneos e circulares são labirintos homogêneos. No entanto, na maioria dos casos, o parque de labirintos que podemos encontrar na vida cotidiana tem uma forma irregular. Portanto, neste trabalho, propõe-se uma função que a partir de uma imagem de esboço desenhada à mão de um usuário possa criar facilmente uma superfície natural do labirinto, bem como um modelo de labirinto em formato eletrônico. Esse recurso permite usar as seções de labirinto em vários aplicativos, como sistemas de localização de caminhos ou parques virtuais.


A função de geração de labirinto proposta permite que o usuário use um padrão de labirinto desenhado usando software gráfico como o Photoshop, ou um esboço digitalizado desenhado à mão em um pedaço de papel. A imagem é carregada em um sistema no qual o algoritmo de processamento de imagem é aplicado, devido ao qual a imagem é convertida em um mapa de textura de labirinto. Este processo é realizado em três etapas.


  • A primeira etapa é o processo de obtenção de uma imagem de esboço no sistema. Para realizar cálculos dos processos subseqüentes, uma imagem em miniatura é convertida em uma imagem de canal único em escala de cinza.
  • O segundo passo é o processo de quebrar muros e estradas usando binarização. Aqui, o valor limite é um elemento importante para determinar muros e estradas. O sistema tem a capacidade de editar o valor do limite de entrada através da interface.
  • O terceiro estágio é o processo de preenchimento dos orifícios que surgem durante o processo de binarização.

Através dessas etapas, um labirinto natural é criado. O sistema também fornece um item de menu que permite ao usuário controlar o número de iterações da operação de preenchimento.
A figura abaixo mostra o processo de geração de um mapa de textura de labirinto em um modo passo a passo a partir de um esboço desenhado pelo usuário do labirinto.


Geração de labirinto a partir do esboço do usuário
imagem

Resultados e Análises Experimentais


O sistema proposto para criar um cenário de labirinto foi implementado usando o Microsoft Visual Studio 2013, OpenCV 2.4.11 e DirectX SDK 9.0c. Além disso, o mecanismo Unity 2017.3.1f1 (64 bits) foi usado para criar uma paisagem de labirinto, finalizada usando trabalho gráfico, com base em um mapa de textura de labirinto gerado automaticamente usando o sistema de criação de labirintos do autor. Para testar esse cenário e visualizar o resultado em realidade virtual, o sistema foi integrado usando o dispositivo Oculus Rift CV1 HMD e o SDK Oculus (ovr_unity_utilities 1.22.0) com o mecanismo Unity3D. Finalmente, o PC usado para o experimento e a implementação tinha especificações Intel Core i7-6700, 16 GB de RAM (memória de acesso aleatório) e um processador gráfico Geforce 1080.


A figura abaixo mostra três paisagens virtuais de labirinto. Estes são os resultados da geração de relevo a partir dos padrões de labirinto calculados usando as funções consideradas neste sistema de desenvolvimento. Além disso, você pode ver que vários ambientes de labirinto virtual são criados adicionando fatores gráficos de acordo com o conceito.


imagem

Além disso, foi realizada uma pesquisa piloto com foco em participantes comuns. Primeiramente, no que diz respeito ao desempenho do sistema, usando testes comparativos com a função de criar paisagens de mecanismos de jogos comerciais, foi confirmado que o sistema proposto permite que os usuários (desenvolvedores) editem fácil e intuitivamente as seções desejadas do labirinto. Isso reduziu o tempo necessário e levou a um alto grau de satisfação do usuário com o sistema.


Através de uma pesquisa sobre o senso de presença, foi confirmado que as paisagens de labirinto na realidade virtual podem oferecer aos usuários uma nova experiência visual. Utilizando análise estatística, também foi confirmado que todas as parcelas obtidas usando as três funções propostas eram satisfatórias, sem diferenças significativas entre elas. No futuro, o sistema será refinado para fornecer um ambiente de labirinto virtual em grande escala, como um parque de labirintos ou parque temático, onde vários usuários podem experimentar o espaço do labirinto juntos em realidade virtual.

Source: https://habr.com/ru/post/pt455744/


All Articles