< Insights

Realidade Aumentada: o que é, funcionalidades e tecnologias utilizadas

  • User Experience e Design Thinking

O que é Realidade Aumentada?

Realidade aumentada é basicamente um conceito que visa prover um ambiente no qual o usuário pode visualizar e até mesmo interagir com objetos virtuais, animados ou não. Diferentemente da realidade virtual que insere o usuário num cenário completamente distinto do mundo real, a realidade aumentada o mantêm no cenário do mundo real mas com objetos virtuais inseridos nele.

Um bom exemplo de realidade aumentada são as etiquetas QR Code em pontos turísticos de cidades, onde através de um aplicativo leitor de QR Code o usuário pode simplesmente apontar a câmera do dispositivo para a etiqueta e lhe é exibido o mapa da cidade em 3D com rotas e pontos turísticos disponíveis.

O que são os Objetos Virtuais?

Os objetos virtuais são basicamente arquivos utilizados na realidade aumentada para dar a sensação de imersão ao usuário, eles podem ser animados ou não, são eles: mapas em 3D, os personagens do game Pokémon GO, um modelo de esqueleto em 3D, ou seja, qualquer coisa que possa ser renderizada no cenário do mundo real.

Esses objetos virtuais podem ser criados por softwares específicos ou simplesmente baixados de algum site na internet e posteriormente inseridos no aplicativo a ser desenvolvido.

As tecnologias utilizadas para Realidade Aumentada

Para criar um ambiente imersivo de realidade aumentada é utilizado o ARCore para Android e para o IOS o ARKit, ambas as tecnologias utilizadas são nativas, ou seja, já fazem parte da biblioteca de cada plataforma, desse modo podemos trabalhar com elas independente do método de desenvolvimento escolhido para o projeto, seja ele nativo ou multiplataforma, porém a parte que envolve a realidade aumentada terá de ser implementada separadamente para cada plataforma.

Funcionalidades

Renderização de Objetos 3D

Os objetos 3D são criados em plataformas específicas para design de modelos 3D, por exemplo no projeto do SAE, a equipe responsável por criar o design dos objetos 3D utilizava o programa Blender. Esses objetos por normalmente terem um tamanho considerável, costumam ser armazenados junto com a aplicação, seja durante o próprio Build, como também posteriormente baixados na aplicação e salvos diretamente no armazenamento disponibilizado para o app. Para que o objeto 3D seja “invocado no mundo real”, ele irá precisar ser chamado por seu identificador(nome ou id), e terá uma posição inicial onde o mesmo será renderizado. A posição inicial do objeto é determinada a partir do código, onde no mesmo serão informadas coordenadas para onde o objeto irá ser renderizado no mundo real. Tais coordenadas funcionam através de um plano cartesiano, onde o mesmo é utilizado no espaço virtual, contendo 3 eixos (z, x, y).

imagem representando a Renderização de Objetos 3D

Os eixos X e Y são utilizados para determinar o quão para cima ou para baixo, e o quão para a esquerda ou direita o objeto deverá ser renderizado com base na posição inicial, já o eixo Z é o diferencial no nosso plano cartesiano, é ele quem determina o quão próximo ou distante o objeto será renderizado. As coordenadas também podem ser alteradas com base na interação, isto é, fazer com que nossos objetos se movam no espaço virtual.

Caso seja necessário mais informações sobre espaço em realidade aumentada, confira esse artigo sobre a compreensão de um computador sobre o espaço para a realidade aumentada

Interação com os objetos 3D

Objetos 3D também possuem algumas funcionalidades de componentes normais, por exemplo a funcionalidade de clique que é encontrado nos botões. Ao clicar em um objeto 3D é possível disparar uma ação, seja ela um som, movimento ou algum tipo de interação desejada.

Reconhecimento de Imagem

O reconhecimento de imagem é um fator muito importante, pois como foi   estudado para o projeto do SAE, era através dele que era determinado onde, quando e qual objeto 3D deveria ser renderizado.

O reconhecimento de imagem funciona da seguinte forma no projeto do SAE, assim que a câmera é aberta, a mesma inicia um processo de identificação e comparação, entre tudo que está sendo visto pela câmera, e a biblioteca de imagens disponibilizada para reconhecimento, assim que o mesmo encontra no mundo real, uma imagem que ele considera ser a mesma de alguma da biblioteca, é disparado um evento e sobre a própria imagem, é renderizado um objeto 3D ou é executada uma ação desejada(como abrir uma explicação interativa sobre aquela imagem).

Reconhecimento Facial

Assim como o reconhecimento de imagem, assim que a câmera identifica um  rosto na tela(não necessariamente um rosto específico, mas sim um rosto humano) o mesmo dispara uma ação, como por exemplo os bem conhecidos filtros para fotos, com objetos que são renderizados no rosto do usuário.

Melhorando ainda mais a Experiência do Usuário

Além da renderização dos objetos virtuais da tela do dispositivo, é possível utilizar recursos de mídia e hardware para melhorar ainda mais a experiência do usuário com a realidade aumentada, como:

  • Reprodução de áudio para simular efeitos sonoros dos objetos 3D.
  • Interação com recursos de hardware (giroscópio, sensor de movimento, e etc).
  • Interface sobre a visão da câmera (placeholders).

Aplicativos que utilizam a Realidade Aumentada

Dispositivos Suportados

Para a plataforma iOS, um dos requisitos para que o dispositivo tenha suporte à realidade aumentada com o ARKit é que ele deve possuir a partir da versão 11 do sistema operacional (a partir do iPhone SE). Confira a lista completa de dispositivos.

Já para o Android, um dos requisitos é que o dispositivo possua a partir da versão 7.0 do sistema operacional. A google disponibiliza a lista completa de dispositivos que suportam a realidade aumentada com o ARCore.

Tecnologias Alternativas

Além das tecnologias selecionadas por nós como melhor opção para o projeto do SAE, também foram estudadas algumas outras tecnologias de Realidade Aumentada, que valem a pena serem citadas:

Sugira um artigo

    Para enviar o formulário é necessário o aceite das políticas.

    Insights do nosso time

    Obtenha insights do nosso time de especialistas sobre metodologias de desenvolvimento de software, linguagens, tecnologia e muito mais para apoiar o seu time na operação e estratégia de negócio.