Tornando o mundo lindo com o ARCore Android

The Software House Blocked Desbloquear Seguir Seguindo 2 de outubro de 2018

Se você está insatisfeito com o mundo como é, você pode se sentir tentado a melhorá-lo. Para torná-lo mais bonito. E, em 2018, o Google e seu ARCore Android podem ajudar você a conseguir isso. O ARCore é uma plataforma de desenvolvimento para criar aplicativos de realidade aumentada. Neste artigo, apresentarei suas funcionalidades e como a própria tecnologia pode enriquecer sua vida cotidiana. Também mostrarei, passo a passo, como criar seu próprio aplicativo ARCore.

O que é realidade aumentada?

Você poderia dizer que a realidade aumentada permite que você crie seu próprio mundo usando seu telefone celular. Em termos técnicos, o AR possibilita aprimorar seu ambiente real com modelos, imagens e vídeos em 3D gerados por computador. Quando você olha para algo através da câmera do seu telefone, você vê / ouve todas as adições virtuais como parte do ambiente. Desde que, claro, você instale um aplicativo AR necessário.

Por que o AR é uma das tecnologias mais populares de 2018 ? É provavelmente porque existem muitas maneiras de usá-lo – o único limite é a sua imaginação. A realidade aumentada tem o potencial de impactar e enriquecer todos os aspectos de nossas vidas. Leia mais para descobrir como.

O que é o ARCore Android?

Já que meu artigo foca no ARCore, vamos começar com uma curta viagem ao passado. Em 23 de fevereiro de 2018, o Google lançou o ARCore ver. 1.0.0. Desde então, o Android tem apoiado a realidade aumentada. Na primeira versão, o Google implementou funcionalidades básicas, como: rastrear a posição de um telefone no mundo real, detectar o tamanho e a localização dos planos ambientais, além de entender as condições atuais de iluminação do ambiente. Além desses recursos, o ARCore 1.0 introduziu pontos orientados que permitem colocar objetos virtuais em superfícies texturizadas não horizontais ou não planas.

Em 17 de abril de 2018, o Google lançou o ARCore Android ver. 1.1.0, que incluiu:

  • API para sincronizar (no mesmo quadro) a aquisição da imagem a partir de um quadro de câmera (sem copiar manualmente o buffer de imagem da GPU para a CPU);
  • API para obter informações de correção de cores para as imagens capturadas pela câmera.

Em 8 de maio, tivemos um grande lançamento, no qual o Google adicionou:

  • Cloud Anchors API, que permite aos desenvolvedores criar experiências compartilhadas do Google ARCore em iOS e Android. Isso é feito permitindo que âncoras criadas em um dispositivo sejam transformadas em âncoras de nuvem e compartilhadas com usuários em outros dispositivos;
  • API de Imagens Aumentada que permite que os aplicativos ARCore detectem e rastreiem imagens;
  • detecção de plano vertical, o que significa que o ARCore começou a detectar os planos horizontal e vertical.

No momento em que escrevo este post, o Google já lançou o ARCore Android ver. 1.3.0, que suporta:

  • novo método no Frame, getAndroidSensorPose (), que retorna a pose de espaço do quadro do sensor Android;
  • novos métodos na Câmera: getImageIntrinsics () que retorna os intrínsecos da câmera da imagem da câmera e getTextureIntrinsics () que retorna a intrínseca da câmera da textura da câmera;
  • nova classe CameraIntrinsics que fornece as características físicas não rotacionadas para uma câmera, que consiste em sua distância focal, ponto da pricinpal e dimensões da imagem;
  • novo método na sessão getConfig () que retorna a configuração configurada por Session.configure ().

ARCore Android em ação

Na seção anterior, escrevi sobre as funcionalidades do Google ARCore. Agora, vamos deixar os detalhes técnicos para trás por um tempo e apreciar o quão impressionante é a realidade aumentada visualmente. Você está pronto para ver como você pode incorporá-lo em sua vida?

Imagine que é bonito do lado de fora e você está indo em uma viagem de bicicleta para um novo lugar. Você nunca esteve lá antes, então, é claro, você precisará de um guia. Com realidade aumentada, o seu telefone pode servir como um excelente guia, mostrando-lhe para onde ir com base na sua localização. Aqui está um exemplo:

Ou digamos que você acabou de se mudar para uma cidade grande, mas ainda não tem nenhum amigo lá, então você não sabe como chegar a todos os lugares interessantes. Se você tiver um dispositivo compatível com o ARCore, ele localizará todos os pontos de interesse próximos e os mostrará a você em tempo real. Tudo o que você precisa fazer é apontar seu telefone para a rua.

O ARCore Android também pode ajudá-lo quando você quiser decorar seu novo local ou comprar um novo móvel que não colida com o resto. Basta apontar o telefone para onde você deseja colocar as coisas novas.

Há muitas ideias e conceitos sobre como usar o AR. Neste filme, há alguns exemplos:

Como fazer um aplicativo ARCore

Na parte restante deste artigo, ensinarei como criar um aplicativo ARCore simples com marcadores e vídeos. No ARCore, os marcadores são imagens 2D no ambiente do usuário, como pôsteres ou embalagens de produtos. Em seu aplicativo, você usará marcadores para mostrar um modelo 3D da Terra e um pequeno vídeo reproduzido depois que o usuário clicar no modelo. Este será o primeiro passo para criar algo maior mais tarde, por exemplo, o seu próprio guia para um museu. Vamos ao trabalho!

Você precisa começar com a configuração do ambiente. Fazê-lo requer conhecimentos básicos do Android Studio e Kotlin. O próximo passo é configurar seu build.gradle . Lembre-se que a versão min do sdk para o ARCore é 24. Em seu build.gradle, adicione dependências:

No seu AndroidManifest.xml , adicione permissões para a câmera:

Quando você executa seu aplicativo, você precisa ter certeza de que o instalou em um dispositivo suportado pelo ARCore. Existem duas maneiras de fazer isso:
use o ARFragment – você não precisa escrever código para verificar se o ARCore Android está instalado no seu dispositivo; ARFragment fará isso por você!
escrever código que verificará todos os status do ARCore

Aqui está um exemplo do último:

Ok, agora que seu ambiente está funcionando, você pode começar a criar o aplicativo. Como mencionei antes, ele mostrará uma fração do poder do ARCore.

Eu decidi usar marcadores populares (imagens 2D). Dentro do ARCore Android, eles são chamados de AugmentedImages. Primeiro de tudo, você precisa adicionar imagens que seu aplicativo reconhecerá e mostrará como modelos 3D na sua tela. Você também precisa instalar um plugin de cena para uma importação fácil de recursos sceneform. Isso pode ser feito em:

  • id Studio -> Preferências -> Plugins,
  • selecione Navegar nos repositórios… -> Pesquisar no Google Sceneform Tools,
  • clique em Instalar.

Agora você tem tudo para começar a importar modelos 3D para o seu projeto. Hora de encontrar alguns modelos! Você pode começar com este site . Basta lembrar que os modelos devem ser OBJ, FBX ou glTF. Para mais informações sobre a importação de modelos 3D em seu aplicativo ARCore, confira este site.

Ótimo! Você importou modelos para o nosso aplicativo. Agora vamos nos divertir! Crie uma pasta de recursos dentro do seu projeto, no seu pacote de aplicativos. Você estará salvando imagens para marcadores e vídeos lá. Lembre-se de usar apenas arquivos de imagem .jpg e .png.

Com imagens e vídeos na pasta de recursos, além de modelos importados, você pode finalmente iniciar a codificação. Primeiro de tudo, você precisa criar um método para carregar uma imagem como um marcador, a partir de ativos no Bitmap:

No meu exemplo, usei uma imagem de amostras do Google para o ARCore Android, mas você pode escolher qualquer imagem que quiser. Agora, você precisa adicionar um banco de dados para armazenar todas as imagens para marcadores, para fins de reconhecimento. Para fazer isso, adicione:

Como você pode ver, você criou o AugmentedImageDatabase e usou o método anterior para adicionar uma imagem. Depois disso, é hora de configurar uma sessão:

Esse método deve ser chamado no método onResume ().

Então, você criou métodos para importar imagens de ativos, além de adicioná-los ao banco de dados e à configuração da sessão. A única coisa que resta a implementar é mostrar modelos 3D após o marcador de digitalização. Moleza; fácil; baba! Comece criando um método de atualização, que você usará para atualizar o modelo exibido:

A última etapa é incluir esse método no listener de atualização da exibição de superfície:

É isso aí! Tente escanear a imagem e você deverá ver um modelo 3D da Terra em sua tela (ou qualquer imagem que você tenha escolhido).

Graças ao ARCore, você pode ver um modelo 3D da Terra na tela de um smartphone

Como adicionar um vídeo no ARCore Android

Seu aplicativo ARCore agora permite que você importe imagens e modelos 3D, adicione-os ao banco de dados e mostre um modelo 3D após o marcador de digitalização. Mas uma coisa ainda está faltando – mostrando e reproduzindo vídeos. O ARCore não suporta a reprodução de vídeos de maneira direta. Para implementá-lo, você precisa usar o OpenGL. Eu usei o código daqui.

Isso é exatamente o que queremos. Se você criar uma classe a partir da essência, a única coisa a fazer é adicionar algum código em sua MainActivity.class:

  • passo 1 – você precisa estender o GLSurfaceView.Renderer,
  • passo 2 – no seu layout para MainActivity, adicione:
  • passo 3 – no método onCreate, adicione:
  • passo 4 – adicione código para desenhar frame com um vídeo:
  • etapa final – adicione um ouvinte de clique para o seu modelo 3D no método onUpdateFrame:

É isso aí! Você pode encontrar o código completo para MainActivity aqui.

Depois de aplicar todos os passos anteriores, você deve obter algo assim:

mobizen_20180808_131833 – Streamable
Editar descrição streamable.com

Parabéns! Você acabou de criar um aplicativo que pode exibir um modelo 3D e, depois de clicar nele, mostra um vídeo! É incrível o que você pode fazer com o ARCore Android

Resumo

Como você pode ver, criar um mundo mais bonito com realidade aumentada é muito simples. O Google ARCore oferece a liberdade de fazer quase tudo o que você quiser. Por que quase? A tecnologia ainda é muito nova – com um potencial incrível, mas sem muitos recursos que precisamos. Os desenvolvedores do Google estão gradualmente adicionando novos recursos e corrigindo bugs, mas ainda há muito a ser feito. Ainda assim, apesar de todos os bugs e recursos ausentes, o ARCore Android vale a pena se familiarizar. Pelo menos, é o que penso.

Texto original em inglês.