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 uma cena, ele quer que ele pareça que ele pertence ao mundo real. Se você está criando um aplicativo para usuários comprarem móveis, quer 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 o formato dos objetos reais em uma cena. Ele cria imagens ou mapas de profundidade, adicionando uma camada de realismo aos seus 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 oferecer oclusão de objetos, imersão aprimorada e novas interações que aumentam o realismo das experiências de RA. Confira a seguir algumas maneiras de usá-lo nos seus próprios projetos. Para conferir exemplos do recurso Depth em ação, explore as cenas de amostra no Laboratório de profundidade do ARCore, que demonstra diferentes maneiras de acessar dados de profundidade. Este app Unity tem código aberto no GitHub.

Ativar oclusão

A oclusão, ou seja, a renderização precisa de um objeto virtual por trás de objetos do mundo real, é fundamental para uma experiência de RA imersiva. Considere um Andy virtual que um usuário pode querer colocar em uma cena que tenha um tronco ao lado de uma porta. Renderizado sem oclusão, o Andy se sobrepõe de maneira irrealista à borda do tronco. Se você usar a profundidade de uma cena e entender a que distância o Andy virtual está em relação ao ambiente, como o tronco de madeira, poderá renderizar com precisão o Andy com oclusão, fazendo com que ele pareça muito mais realista nos arredores.

Transforme um cenário

Mostre ao usuário um mundo novo e imersivo exibindo flocos de neve virtuais para sentar nos braços e travesseiros dos sofás ou transmitindo a sala de estar em uma neblina nebulosa. Você pode usar o recurso "Profundidade" para criar uma cena em que as luzes virtuais interagem, se escondem atrás e reacendem objetos reais.

Distância e profundidade de campo

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

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

Permita que os usuários "toquem" o mundo pelo app, permitindo que o conteúdo virtual interaja com o mundo real por meio de colisão e física. Faça objetos virtuais superar obstáculos do mundo real ou faça paintballs virtuais atingirem uma árvore do mundo real. Ao combinar colisão baseada em profundidade com física do jogo, você dá vida à experiência.

Melhorar os testes de hit

A profundidade pode ser usada para melhorar os resultados do teste de hit. Os testes de hit de plano 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 os testes de hit de profundidade 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 os testes de hit de plano padrão, e o Andys vermelho representa os testes de hit de profundidade.

Compatibilidade do dispositivo

A API Depth é compatível apenas com dispositivos com capacidade de processamento compatível profundidade, e deve ser ativado manualmente no ARCore, como descrito em Ative a Profundidade.

Alguns dispositivos também podem fornecer um sensor de profundidade de hardware, como um sensor de tempo (ToF). Consulte a página Dispositivos compatíveis com o ARCore uma lista atualizada dos dispositivos compatíveis com a API Depth e uma lista dos dispositivos que ter um sensor de profundidade de hardware compatível, como um sensor ToF.

Imagens de profundidade

A API Depth usa um algoritmo de profundidade a partir do movimento para criar imagens de profundidade, que fornecem 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 conforme o usuário move o smartphone. Ele usa o machine learning de forma seletiva para aumentar o processamento em profundidade, mesmo com o mínimo de movimento do usuário. Ele também aproveita qualquer hardware adicional que o dispositivo do usuário possa ter. Se o dispositivo tiver um sensor de profundidade dedicado, como o ToF, o algoritmo vai combinar automaticamente os dados de todas as fontes disponíveis. Isso aprimora a imagem com profundidade atual e permite profundidade mesmo quando a câmera não está se movendo. 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 a câmera de um corredor com uma bicicleta na parede e uma visualização da imagem de profundidade criada a partir das 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 do movimento

Os dados de profundidade ficam disponíveis quando o usuário move o dispositivo. O algoritmo pode obter estimativas de profundidade robustas e precisas, de 0 a 65 metros de distância. Os resultados mais precisos aparecem quando o dispositivo está a cerca de 5 metros de distância do cenário real. Experiências que incentivam o usuário a mover mais o dispositivo geram resultados cada vez melhores.

Obter imagens de profundidade

Com a API Depth, você pode recuperar 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 intrínseco do campo de visão que a câmera. Os dados de profundidade válidos só ficam disponíveis depois que o usuário começa a mover o dispositivo, já que a profundidade é adquirida a partir do movimento. Superfícies com poucos ou nenhum recurso, como paredes brancas, serão associadas a profundidade imprecisa.

O que vem em seguida?