Desenvolver com o OpenXR

Dispositivos XR relevantes
Estas orientações ajudam você a criar experiências para esses tipos de dispositivos XR.
Headsets XR
Óculos XR com fio

 

Logotipo de texto do OpenXR

O Android XR é compatível com apps criados com o OpenXR, graças à compatibilidade com a especificação do OpenXR 1.1 e algumas extensões de fornecedores. O OpenXR é um padrão aberto que permite criar experiências imersivas e interativas usando um conjunto comum de APIs em uma ampla variedade de dispositivos XR.

Recursos

O Android XR oferece suporte a recursos que permitem criar apps que aproveitam ao máximo as capacidades exclusivas dos dispositivos XR, usando o OpenXR. Esses recursos incluem o seguinte.

Framework de entidade espacial
Uma base unificada para compreensão de cenas e raciocínio espacial. Permite que os aplicativos descubram, consultem e rastreiem entidades espaciais físicas no ambiente (incluindo planos, malhas 3D, caixas delimitadoras, imagens, marcadores e anotações), filtrem a descoberta usando limites espaciais, consultem arquétipos de entidade, criem âncoras espaciais anexadas a entidades, realizem raycasting de entidade espacial e malha e mantenham entidades espaciais em sessões de aplicativos.
Contêineres espaciais
Uma API multiplataforma de janelas espaciais (XR_EXT_spatial_container e XR_EXT_spatial_container_self_rendering) que permite que os aplicativos criem e renderizem contêineres espaciais 3D exibíveis (limitados e imersivos) usando swapchains e camadas de composição do OpenXR, permitindo que os usuários interajam com vários contêineres espaciais simultaneamente.
Âncoras geoespaciais e geoespaciais
Permite que os aplicativos rastreiem poses relativas à Terra usando o Serviço de Posicionamento Visual (VPS) e o GPS do Google, autentiquem-se com os serviços do Google Cloud e coloquem âncoras geoespaciais e de superfície em latitudes, longitudes e altitudes específicas.
Rastreáveis
Oferece suporte à detecção de planos, que é a capacidade de identificar e rastrear superfícies planas no ambiente, permitindo a colocação de objetos virtuais em relação ao mundo real, e às âncoras, que são pontos de referência virtuais que podem ser anexados a objetos ou locais do mundo real, para que o conteúdo virtual permaneça posicionado e orientado com precisão, mesmo quando o usuário se move.
Raycasting
Uma técnica usada para determinar o ponto de interseção entre um raio virtual e objetos ou malhas do mundo na cena, facilitando interações como selecionar e manipular elementos virtuais.
Persistência de âncoras
A capacidade de salvar e restaurar âncoras em várias sessões, permitindo o posicionamento persistente e consistente de conteúdo virtual no ambiente.
Rastreamento de objetos
A capacidade de rastrear mouse, teclado e outros objetos físicos no mundo real.
Rastreamento de imagens e marcadores
A capacidade de detectar e rastrear imagens de referência planas e marcadores físicos (como AprilTags e marcadores ArUco) no ambiente.
Rastreamento de QR code
A capacidade de rastrear QR codes no ambiente físico e decodificar os dados deles.
Texturas de profundidade
A geração de mapas de profundidade que fornecem informações sobre a distância entre a câmera e os objetos na cena, permitindo efeitos de oclusão e interação mais realistas.
Passagem
A capacidade de combinar imagens de câmera do mundo real com conteúdo virtual, criando uma experiência de realidade mista que combina perfeitamente os mundos físico e digital.
Escurecimento global do passthrough
Permite que os aplicativos definam e consultem o nível de escurecimento global do passthrough para combinar conteúdo virtual com o ambiente físico e receber eventos quando o nível de escurecimento mudar.
Suavização da janela de visualização
Expõe a área do perímetro de suavização aplicada pelo ambiente de execução para que os aplicativos possam organizar os elementos da interface na área segura sem serem afetados pela suavização periférica.
Malha de cena
A capacidade de adquirir uma malha 3D do ambiente, que pode ser usada para física, oclusão e outras interações que reconhecem o mundo.
Passagem de camada de composição
Permite um recorte de camada de composição de passagem de polígono, que pode ser usado para trazer objetos do mundo real para uma cena.
Rastreamento de rostos
A capacidade de rastrear as características do rosto do usuário com base em fontes de dados visuais e de áudio, permitindo a criação de avatares e personagens virtuais mais realistas e expressivos.
Rastreamento ocular
Fornece a posição e a orientação do olho do usuário, o que foi projetado para tornar a pose dos olhos dos avatares mais realista.
Rastreamento de mãos
A capacidade de rastrear a posição e o movimento das mãos do usuário.
Malha de mão
Fornece uma representação precisa das mãos do usuário como uma malha de polígonos reduzida. Otimizado para entrega de plataforma para aplicativo para garantir que você tenha o melhor desempenho possível. Essa é uma alternativa a outras extensões que usam uma pose de vinculação e pesos de mesclagem.
Rastreamento corporal
Estima as posições e proporções das articulações do corpo do usuário usando entradas de rastreamento de cabeça e mãos.
Estimativa de luz
Usado para modelos de iluminação (incluindo iluminação direcional, ambiente, harmônicos esféricos e de mapa de cubo) para corresponder às condições de iluminação do usuário no mundo real.

Dispositivos de entrada compatíveis

O Android XR também é compatível com os seguintes dispositivos de entrada.

Interação com as mãos
O reconhecimento de gestos específicos com as mãos, como pinça, deslizar e apontar, permitindo que os usuários interajam com objetos virtuais usando gestos e movimentos das mãos.
Interação com o olhar
A capacidade de rastrear os movimentos dos olhos do usuário, permitindo que ele selecione e interaja com objetos virtuais usando o olhar.
Controles de movimento 6DoF
A capacidade de rastrear a posição e o movimento dos controles, além de vinculações de botões direcionais e botões para acionar ações ou eventos de passagem do cursor no app.
Interação com o mouse
A capacidade de os usuários interagirem com objetos usando um ponteiro do mouse no espaço 3D

Recursos de performance compatíveis

O Android XR é compatível com os seguintes recursos relacionados ao desempenho.

Foveação com acompanhamento ocular
Permite que um app renderize conteúdo de alta resolução apenas no ponto focal dos olhos.
Dobra espacial
Usa vetores de velocidade e informações de textura de profundidade para gerar frames de interpolação, o que aumenta o frame rate necessário para manter os usuários imersos nas suas experiências
Síntese de frames
Usa vetores de movimento e dados de frame fornecidos pelo aplicativo para sintetizar frames intermediários, melhorando a suavidade visual e as taxas de frames.
Métricas de desempenho
Fornece métricas de performance do Android XR no ambiente de execução do dispositivo XR, do compositor e do app XR atuais. Isso inclui o tempo para a renderização do frame da CPU, o tempo para a renderização do frame da GPU, o uso da GPU, a frequência da CPU, os quadros por segundo e muito mais.

Consulte a Visão geral dos recursos do OpenXR para ver uma lista completa de recursos e extensões compatíveis.

Mecanismos compatíveis

Os seguintes mecanismos são compatíveis com o desenvolvimento do OpenXR com o Android XR.

Unity

O suporte do Android XR ao Unity, criado com base no OpenXR, permite que os desenvolvedores criem experiências usando o Unity 6. Saiba mais sobre como criar apps de XR com o Unity na visão geral do Unity.

Unreal Engine

O Unreal Engine é compatível com o Android XR pelo padrão OpenXR, permitindo que você use as ferramentas e os fluxos de trabalho padrão no Unreal Engine 5. Saiba mais sobre como criar apps de XR com o Unreal Engine na visão geral do Unreal Engine.

Godot

O Godot é compatível com o Android XR pela integração com o OpenXR, permitindo que você crie e exporte apps de XR para Android usando o fluxo de trabalho padrão do Godot. Saiba mais sobre como criar apps de XR com o Godot na visão geral do Godot.


OpenXR™ e o logotipo do OpenXR são marcas registradas do The Khronos Group Inc. e são registradas como marcas na China, na União Europeia, no Japão e no Reino Unido.