Profundidade adiciona realismo

Guias específicos da plataforma

Como desenvolvedor de apps de RA, você quer combinar o virtual com o real para seus usuários. Quando um usuário coloca um objeto virtual em sua cena, ele quer que pareça que pertence ao mundo real. Se você está criando um aplicativo para os usuários comprarem móveis, precisa que eles tenham certeza de que a poltrona que estão prestes a comprar se encaixará no espaço deles.

A API Depth ajuda a câmera de um dispositivo a entender o tamanho e a forma dos objetos reais em uma cena. Ele cria imagens ou mapas de profundidade, adicionando uma camada de realismo aos apps. Você pode usar as informações fornecidas por uma imagem de profundidade para permitir experiências do usuário imersivas e realistas.

Casos de uso para desenvolvimento com a API Depth

A API Depth pode potencializar a oclusão de objetos, melhorar a imersão e novas interações que melhoram o realismo das experiências de RA. Veja a seguir algumas maneiras de usá-lo nos seus próprios projetos. Para conferir exemplos de profundidade em ação, confira as cenas de exemplo no Laboratório de profundidade do ARCore, que mostra diferentes maneiras de acessar dados de profundidade. Este app do Unity é de código aberto no GitHub.

Ativar a oclusão

A oclusão, ou a renderização precisa de um objeto virtual atrás de objetos do mundo real, é fundamental para uma experiência imersiva de RA. Considere um Andy virtual que um usuário pode querer colocar em um cenário contendo um porta-malas ao lado de uma porta. Renderizado sem oclusão, o Andy se sobrepõe de forma irreal à borda do tronco. Se você usar a profundidade de uma cena e entender a distância entre o Andy virtual em relação aos arredores, como o tronco de madeira, será possível renderizar o Andy com precisão com a oclusão, tornando-o muito mais realista.

Transformar um cenário

Mostre aos usuários um novo mundo imersivo renderizando flocos de neve virtuais para sentar nos braços e travesseiros dos sofás ou colocando a sala de estar na neblina. Você pode usar o recurso "Profundidade" para criar um cenário em que luzes virtuais interagem, se escondem atrás e iluminam objetos reais.

Distância e profundidade de campo

Precisa mostrar que algo está longe? Com a API Depth, você pode usar a medição da distância e adicionar efeitos de profundidade de campo, como desfocar um plano de fundo ou o primeiro plano de uma cena.

Permitir interações do usuário com objetos de RA

Permita que os usuários "toquem" no mundo pelo seu app, permitindo que o conteúdo virtual interaja com o mundo real por colisão e física. Faça objetos virtuais passarem por obstáculos ou bata bolas de paintball em uma árvore real. Ao combinar a colisão baseada em profundidade com a física do jogo, você pode dar vida a uma experiência.

Melhorar os testes de hit

A profundidade pode ser usada para melhorar os resultados dos testes de hit. Os testes de batida plana só funcionam em superfícies planas com textura, enquanto os testes de hit de profundidade são mais detalhados e funcionam até mesmo em áreas não planas e de baixa textura. Isso ocorre porque esses testes usam informações de profundidade da cena para determinar a profundidade e a orientação corretas de um ponto.

No exemplo a seguir, o Andys verde representa testes de hit padrão e o Andys vermelho representa testes de hit de profundidade.

Compatibilidade do dispositivo

A API Depth só tem suporte de dispositivos com a capacidade de processamento para oferecer suporte à profundidade e precisa ser ativada manualmente no ARCore, conforme descrito em Ativar profundidade.

Alguns dispositivos também podem fornecer um sensor de profundidade de hardware, como um sensor de tempo de voo (ToF). Consulte a página Dispositivos compatíveis com o ARCore para ver uma lista atualizada de dispositivos com suporte à API Depth e uma lista de dispositivos que têm um sensor de profundidade de hardware com suporte, como um sensor ToF.

Imagens de profundidade

A API Depth usa um algoritmo de profundidade de movimento para criar imagens com profundidade, que dão uma visão em 3D do mundo. Cada pixel em uma imagem de profundidade está associado a uma medida da distância entre a cena e a câmera. Esse algoritmo usa várias imagens de dispositivos de diferentes ângulos e as compara para estimar a distância de cada pixel enquanto o usuário move o smartphone. Ela usa o aprendizado de máquina de maneira seletiva para aumentar o processamento de profundidade, mesmo com o mínimo de movimento do usuário. Ele também aproveita qualquer hardware adicional que o dispositivo de um usuário possa ter. Se o dispositivo tiver um sensor de profundidade dedicado, como o ToF, o algoritmo vai mesclar automaticamente os dados de todas as fontes disponíveis. Isso aumenta a profundidade da imagem existente e permite mesmo quando a câmera não está em movimento. Ela também oferece melhor profundidade em superfícies com poucos ou nenhum recurso, como paredes brancas ou em cenas dinâmicas com pessoas ou objetos em movimento.

As imagens a seguir mostram uma imagem de uma câmera de um corredor com uma bicicleta na parede e uma visualização da imagem de profundidade criada com base nas imagens da câmera. As áreas em vermelho estão mais próximas da câmera, e as áreas em azul estão mais distantes.

Profundidade de movimento

Os dados de profundidade ficam disponíveis quando o usuário move o dispositivo. O algoritmo pode conseguir estimativas de profundidade robustas e precisas de 0 a 65 metros de distância. Os resultados mais precisos aparecem quando o dispositivo está entre 50 e 50 metros do cenário do mundo real. As experiências que incentivam o usuário a movimentar mais o dispositivo geram resultados cada vez melhores.

Conseguir imagens de profundidade

Com a API Depth, você pode extrair imagens de profundidade que correspondem a todos os frames da câmera. Uma imagem de profundidade adquirida tem o mesmo carimbo de data/hora e o mesmo campo de visão intrínsecos que a câmera. Os dados de profundidade válidos só estão disponíveis depois que o usuário começa a mover o dispositivo, já que a profundidade é adquirida pelo movimento. Superfícies com poucos ou nenhum recurso, como paredes brancas, serão associadas a uma profundidade imprecisa.

O que vem em seguida?