JavaRush /Blogue Java /Random-PT /Java em realidade virtual. É verdade que VR/AR é o futuro...

Java em realidade virtual. É verdade que VR/AR é o futuro e há lugar para Java nele?

Publicado no grupo Random-PT
Nos artigos anteriores desta série, já examinamos quase todas as tecnologias mais ou menos modernas do mercado moderno de TI, como inteligência artificial , blockchain , serviços em nuvem , big data , etc., descobrindo como a linguagem de programação Java é usada. nesses nichos e até que ponto ele desempenha um papel importante. Java em realidade virtual.  É verdade que VR/AR é o futuro e há lugar para Java nele?  - 1Hoje falaremos de outro segmento tecnológico moderno e muito interessante - nomeadamente VR e AR, ou seja, realidade virtual e aumentada. “Acho que uma parte significativa da população dos países desenvolvidos irá muito em breve interagir com soluções de AR de forma contínua, todos os dias. Muito em breve, a AR se tornará parte de nossas vidas diárias.” Tim Cook, CEO da Apple

O que são VR e AR?

Primeiro, vamos descobrir o que são essas tecnologias, como são usadas e como diferem umas das outras. Vamos começar com VR, ou seja, realidade virtual. Os aplicativos de realidade virtual são executados em dispositivos especiais que capturam completamente a visão do usuário para criar a impressão de que ele está em outro lugar. Todos os fones de ouvido VR populares, como o HTC Vive ou Oculus Rift, bloqueiam completamente a visão do usuário quando usados. Quando tal dispositivo é ligado, os painéis LCD ou OLED dentro dele são refratados por lentes especiais para preencher completamente o campo de visão do usuário com o conteúdo transmitido, seja um jogo, um vídeo em 360 graus ou simplesmente a interface de um programa. . A maioria dos headsets VR, incluindo o mencionado Oculus Rift, bem como Vive, PlayStation VR, Windows Mixed Reality e outros, usam tecnologia de rastreamento de movimento de seis graus de liberdade (6DOF), que é obtida por meio de sensores ou câmeras externas. Isso permite que os dispositivos detectem não apenas a direção para a qual você está olhando, mas também o movimento que o usuário faz nessa direção. Isso, junto com os detectores de movimento 6DOF, permite que os usuários se movimentem no espaço virtual, tornando tais aplicações muito mais envolventes. Quanto à AR, ou seja, realidade aumentada, sua diferença em relação à VR é que a AR não se esforça para absorver completamente a sua visão, mas adiciona alguns elementos a ela. Dispositivos AR como o Microsoft HoloLens e vários tipos de óculos inteligentes permitem que o usuário veja tudo ao seu redor, projetando imagens para onde está olhando. Este conceito também inclui vários aplicativos e jogos para smartphones, como Pokémon Go, Temple Treasure Hunt, ARrrrrgh, Ingress e muitos mais. Eles utilizam a câmera de um dispositivo móvel para monitorar o ambiente e complementá-lo com diversos tipos de informações colocadas na tela. Os monitores AR podem sobrepor alguns dados muito simples à realidade, como o mostrador de um relógio, por exemplo, mas também podem implementar objetos complexos como hologramas de monstros no meio de uma sala. Por exemplo, o jogo Pokémon Go projeta personagens Pokémon na tela do seu dispositivo, para onde a lente da câmera está apontada. Enquanto vários tipos de óculos de realidade aumentada permitem aos usuários colocar elementos de interface e ícones de aplicativos sobre a imagem da realidade que observam. “Acredito que a realidade aumentada será a maior revolução tecnológica do nosso tempo.” Tim Sweeney, programador e desenvolvedor de videogame americano, fundador da Epic Games Java em realidade virtual.  É verdade que VR/AR é o futuro e há lugar para Java nele?  - 2

VR e AR não são a mesma coisa

Essa, aliás, é a principal desvantagem da realidade aumentada em relação à realidade virtual. Se a VR substitui completamente a imagem na sua visão, então a AR apenas a complementa, muitas vezes ocupando apenas uma área muito pequena da visão do usuário. Mas esta é também a principal vantagem da realidade aumentada, porque este método oferece aos desenvolvedores possibilidades quase ilimitadas. Por exemplo, aplicativos móveis de AR que podem reconhecer objetos na imagem de uma câmera e transmitir informações sobre eles ao usuário já existem há vários anos. Óculos AR especiais, como o HoloLens, permitem que os usuários coloquem janelas flutuantes ao seu redor que podem ser visualizadas na tela do dispositivo. Sem mencionar os muitos jogos que usam a realidade aumentada como elemento central do jogo (Pokemon Go, RoboRaid, Fragments) ou como recurso adicional. Assim, a realidade virtual e a realidade aumentada são duas tecnologias muito diferentes que são utilizadas para fins diferentes, embora a AR e a VR sejam geralmente referidas como dois tipos da mesma abordagem. Se o objetivo dos dispositivos e aplicativos de VR é substituir a realidade e transportar virtualmente o usuário para outro lugar, então a AR trabalha com a realidade, complementando o que já está diante de nossos olhos com novas informações. Ambas as tecnologias ainda estão nos seus primórdios, mas são consideradas extremamente promissoras e têm o potencial de revolucionar a forma como as pessoas utilizam os computadores num futuro próximo. “Acho que num futuro próximo muitas histórias serão contadas no espaço virtual.” Joe Russo, diretor de cinema americano Java em realidade virtual.  É verdade que VR/AR é o futuro e há lugar para Java nele?  -3

AR/VR e Java

Embora o nicho AR/VR utilize uma série de linguagens de programação, incluindo C#, C/C++, JavaScript, Swift e até Python, Java é uma das mais procuradas. As razões, na verdade, são as mesmas que no caso de outras tecnologias: o código Java permite que os aplicativos sejam executados rapidamente, a orientação a objetos facilita a criação de componentes de aplicativos individuais e a independência de plataforma torna os produtos AR/VR em Java mais universais. No caso da AR, ou seja, da realidade aumentada, o Java será uma das principais linguagens de programação, pois a grande maioria das aplicações de AR são criadas para dispositivos móveis. Dessa forma, Java é a principal opção para aplicativos de AR criados para dispositivos baseados no sistema operacional móvel Android, enquanto no caso de produtos Apple são utilizadas as linguagens Objective-C e Swift. Hoje, os aplicativos de AR suportam muitos dispositivos diferentes, incluindo capacetes, óculos, dispositivos portáteis e até lentes de contato. De muitas maneiras, é o Java que permite criar soluções de AR que funcionarão em plataformas diferentes, muitas vezes muito diferentes. Hoje, aplicativos de AR baseados em Java estão sendo implementados ativamente em clínicas, bancos, restaurantes, museus, etc. “A AR já está revolucionando a forma como abordamos o comércio e as compras, criando uma ponte entre os mundos digital e físico.” Muchaneta Kapfunde, fundadora do FashNerd.com

Tipos de aplicativos AR

Agora vamos dar uma olhada rápida nos principais conjuntos de ferramentas (SDK) e estruturas que fazem sentido usar para desenvolver aplicativos de AR. Mas primeiro, vamos dar uma olhada nos dois principais tipos de aplicativos de AR: aplicativos de marcadores e de geolocalização.
  • Aplicações de marcador AR.

    Os aplicativos Marker AR são baseados em tecnologia de reconhecimento de imagem. Eles usam marcadores preto e branco como gatilhos que ativam a exibição de conteúdo de AR para o usuário. Assim, para ver um elemento de realidade aumentada à sua frente, o usuário de tal aplicativo deve apontar a câmera para o marcador correspondente em seu ambiente. Assim que o dispositivo reconhece o marcador, o aplicativo sobrepõe dados digitais e mostra ao usuário um elemento de realidade aumentada. Este tipo de aplicações, em particular, são amplamente utilizadas para fins publicitários por lojas, restaurantes e outros negócios onde esta funcionalidade é adequada.

  • Aplicações de geolocalização.

    O segundo tipo principal de aplicativo de AR, baseado em localização, opera sem marcadores, confiando em vez disso nas informações de localização do usuário fornecidas por GPS, acelerômetro ou bússola digital e sobrepondo objetos de AR sobre localizações físicas reais. E novamente usamos o Pokémon Go como exemplo - este é provavelmente o aplicativo AR de geolocalização mais famoso.

    “A principal tarefa para o desenvolvimento de tecnologias AR e VR é criar uma única plataforma aberta onde os desenvolvedores possam implementar todas as suas ideias.”

    Mark Zuckerberg, criador da rede social Facebook

    Java em realidade virtual.  É verdade que VR/AR é o futuro e há lugar para Java nele?  - 4

Os melhores SDKs para desenvolver aplicativos AR

  • Google ARCore

    ARCore é a principal plataforma do Google para desenvolvimento de aplicativos AR, suportando dispositivos baseados no sistema operacional móvel Android e trabalhando com bibliotecas Java/OpenGL, Unity e Unreal.

    Entre os principais recursos do ARCore: rastreamento de movimento (o ARCore pode determinar a posição e o ponto de direção do dispositivo usando a câmera embutida), modelagem ambiental (a plataforma é capaz de determinar superfícies horizontais, o que permite, por exemplo, colocar objetos virtuais em mesas ou no chão), estimativa de iluminação (determina o nível de iluminação, se necessário, destacando objetos virtuais para que pareçam naturais no ambiente), entre outros.

  • ARToolKit

    ARToolKit é um conjunto de ferramentas de código aberto para o desenvolvimento de aplicativos de AR.

    Apesar de ser um kit aberto e gratuito, o ARToolKit inclui um conjunto muito rico de funções, incluindo suporte para Unity3D e OpenSceneGraph, capacidade de criar aplicações AR em tempo real, integração com óculos inteligentes, suporte para diferentes tipos de câmeras, calibração automática da câmera e etc.

    ARToolKit oferece suporte a uma variedade de plataformas, incluindo Android, iOS, Linux, Windows e Mac OS.

  • Vuforia

    Vuforia é talvez a plataforma mais popular e conhecida para o desenvolvimento de aplicações de realidade aumentada.

    Entre as principais funções do Vuforia: reconhecimento de diversos tipos de objetos e imagens; suporte para reconhecimento de textos básicos, criação de marcadores personalizados, criação de mapas 3D de vários locais, suporte para serviços em nuvem e armazenamento de dados locais, etc.

    Vuforia oferece suporte a plataformas como Android, Plataforma Universal do Windows, Unity e iOS.

  • Apple Arkit

    Bem, a Apple também possui seu próprio conjunto de ferramentas para desenvolvimento de aplicativos de AR, que foi introduzido junto com o iOS11 e se chama ARKit. Naturalmente, ele suporta apenas dispositivos iOS e inclui todas as funcionalidades básicas para a criação de aplicativos de realidade aumentada.

    “Nosso objetivo atual é tornar as experiências de RV mais divertidas e envolventes e permitir que as pessoas vivam essas experiências juntas.”

    John Hanke, CEO da Niantic

  • As melhores plataformas e frameworks para desenvolvimento de aplicações VR

    E, finalmente, vamos examinar algumas das plataformas e estruturas abertas mais populares para o desenvolvimento de aplicativos de realidade virtual.
    • GuriVR

      GuriVR é um editor de VR de código aberto que permite converter descrições de texto de cenas 3D em modelos 3D reais para aplicativos de VR. Suporta texto, modelos 3D, imagens, gravações de áudio, narrações, gráficos 3D e muitas outras funções.

    • OpenSpace3D

      OpenSpace3D é uma plataforma gratuita e aberta para o desenvolvimento de aplicativos e jogos de VR baseados em tecnologias de VR. Suporta um grande número de plataformas e dispositivos diferentes, incluindo Leap Motion, HTC Vive/Oculus, Google Cardboard e outros. Também inclui funcionalidade para criação de aplicativos AR.

    • OSVR: plataforma de realidade virtual de código aberto

      OSVR é outra plataforma universal para soluções VR e AR. Ele permite detectar, configurar e gerenciar centenas de dispositivos VR/AR, bem como vários tipos de dispositivos periféricos. OSVR oferece suporte a vários mecanismos de jogo e sistemas operacionais e fornece serviços como time warping assíncrono e modo direto para oferecer suporte à renderização de baixa latência.

    • Prímula VR

      Primrose VR é uma estrutura de navegador aberta para criar experiências simples de VR, como demonstrações virtuais de produtos, reuniões virtuais ou atividades virtuais. Primrose VR é compatível com todos os navegadores modernos e roda em WebGL.

    • IdeaSpace VR (CMS)

      IdeaSpaceVR não é uma estrutura ou plataforma, mas um sistema de gerenciamento de conteúdo (CMS) aberto para conteúdo VR. Desenvolvido em PHP/MySQL, o IdeaSpaceVR é um sistema modular instalado localmente com um reprodutor de conteúdo integrado para aplicativos de realidade virtual.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION