Sviluppa con OpenXR

Dispositivi XR applicabili
Queste indicazioni ti aiutano a creare esperienze per questi tipi di dispositivi XR.
Visori XR
Occhiali XR con cavo

 

Il logo di testo OpenXR

Android XR supporta le app create con OpenXR tramite il supporto della specifica OpenXR 1.1 e di estensioni del fornitore selezionate. OpenXR è uno standard aperto che ti consente di creare esperienze immersive e interattive utilizzando un insieme comune di API su un'ampia gamma di dispositivi XR.

Funzionalità

Android XR supporta funzionalità che ti consentono di creare app che sfruttano appieno le funzionalità uniche dei dispositivi XR, utilizzando OpenXR. Queste funzionalità includono quanto segue.

Framework Spatial Entity
Una base unificata per la comprensione delle scene e il ragionamento spaziale. Consente alle applicazioni di rilevare, eseguire query e monitorare entità spaziali fisiche nell'ambiente (tra cui piani, mesh 3D, riquadri di delimitazione, immagini, indicatori e annotazioni), filtrare il rilevamento utilizzando limiti spaziali, eseguire query sugli archetipi delle entità, creare ancoraggi spaziali collegati alle entità, eseguire il raycasting di entità spaziali e mesh e rendere persistenti le entità spaziali tra le sessioni dell'applicazione.
Container spaziali
Un'API di windowing spaziale multipiattaforma (XR_EXT_spatial_container e XR_EXT_spatial_container_self_rendering) che consente alle applicazioni di creare ed eseguire il rendering di container spaziali 3D visualizzabili (sia limitati che immersivi) utilizzando le catene di scambio e i livelli di composizione di OpenXR, consentendo agli utenti di sperimentare più container spaziali contemporaneamente.
Ancore geospaziali e Geospatial
Consente alle applicazioni di monitorare le pose relative alla Terra utilizzando il servizio di posizionamento visivo (VPS) e il GPS di Google, di autenticarsi con i servizi Google Cloud e di posizionare ancoraggi geospaziali e ancoraggi di superficie a latitudini, longitudini e altitudini specifiche.
Elementi monitorabili
Supporta il rilevamento dei piani, ovvero la capacità di identificare e monitorare le superfici piane all'interno dell'ambiente, consentendo il posizionamento di oggetti virtuali in relazione al mondo reale, e gli ancoraggi, ovvero punti di riferimento virtuali che possono essere collegati a oggetti o luoghi del mondo reale, in modo che i contenuti virtuali rimangano posizionati e orientati con precisione anche quando l'utente si sposta.
Raycasting
Una tecnica utilizzata per determinare il punto di intersezione tra un raggio virtuale e gli oggetti o le mesh del mondo nella scena, facilitando interazioni come la selezione e la manipolazione di elementi virtuali.
Persistenza degli ancoraggi
La possibilità di salvare e ripristinare gli ancoraggi in più sessioni, consentendo un posizionamento persistente e coerente dei contenuti virtuali all'interno dell'ambiente.
Monitoraggio oggetti
La possibilità di monitorare mouse, tastiera e altri oggetti fisici nel mondo reale.
Monitoraggio di immagini e indicatori
La capacità di rilevare e monitorare immagini di riferimento planari e indicatori fisici (come AprilTag e indicatori ArUco) nell'ambiente.
Monitoraggio dei codici QR
La possibilità di monitorare i codici QR nell'ambiente fisico e decodificare i relativi dati.
Texture di profondità
La generazione di mappe di profondità che forniscono informazioni sulla distanza tra la fotocamera e gli oggetti nella scena, consentendo effetti di occlusione e interazione più realistici.
Passthrough
La possibilità di unire i filmati della videocamera del mondo reale con i contenuti virtuali, creando un'esperienza di realtà mista che combina perfettamente il mondo fisico e quello digitale.
Attenuazione passthrough globale
Consente alle applicazioni di impostare ed eseguire query sul livello di oscuramento passthrough globale per combinare i contenuti virtuali con l'ambiente fisico e ricevere eventi quando il livello di oscuramento cambia.
Sfumatura dell'area visibile
Espone l'area perimetrale sfumata applicata dal runtime in modo che le applicazioni possano disporre gli elementi UI all'interno dell'area sicura senza che siano interessati dalla sfumatura periferica.
Meshing della scena
La possibilità di acquisire una mesh 3D dell'ambiente, che può essere utilizzata per la fisica, l'occlusione e altre interazioni che tengono conto del mondo.
Passthrough del livello di composizione
Consente un ritaglio del livello di composizione passthrough poligonale, che può essere utilizzato per inserire oggetti del mondo reale in una scena.
Rilevamento dei volti
La capacità di monitorare le caratteristiche del volto dell'utente da origini dati visive e audio, consentendo la creazione di avatar e personaggi virtuali più realistici ed espressivi.
Tracciamento oculare
Fornisce la posizione e l'orientamento dell'occhio dell'utente, progettati per rendere più realistica la posa degli occhi per gli avatar.
Tracciamento delle mani
La possibilità di monitorare la posizione e il movimento delle mani dell'utente.
Mesh della mano
Fornisce una rappresentazione accurata delle mani dell'utente come mesh low poly. Ottimizzato per la distribuzione da piattaforma ad applicazione per garantire le migliori prestazioni possibili. Si tratta di un'alternativa ad altre estensioni che utilizzano una posa di associazione e pesi di fusione.
Traccia movimento
Stima le posizioni e le proporzioni delle articolazioni del corpo dell'utente utilizzando gli input del tracciamento della testa e delle mani.
Stima della luce
Utilizzato per i modelli di illuminazione (tra cui illuminazione direzionale, ambientale, armoniche sferiche e cubemap) per adattarsi alle condizioni di illuminazione reali dell'utente.

Dispositivi di input supportati

Android XR supporta anche i seguenti dispositivi di input.

Interazione con le mani
Il riconoscimento di gesti con la mano specifici, come pizzicare, scorrere e puntare, consente agli utenti di interagire con oggetti virtuali utilizzando gesti e movimenti della mano.
Interazione con lo sguardo
La capacità di monitorare i movimenti oculari dell'utente, consentendogli di selezionare e interagire con gli oggetti virtuali usando lo sguardo.
Controller di movimento 6DoF
La possibilità di monitorare la posizione e il movimento dei controller, insieme alle associazioni di pulsanti e D-pad per attivare azioni o eventi di passaggio del mouse all'interno dell'app.
Interazione con il mouse
La possibilità per gli utenti di interagire con gli oggetti tramite un puntatore del mouse nello spazio 3D

Funzionalità di rendimento supportate

Android XR supporta le seguenti funzionalità relative alle prestazioni.

Foveazione con tracciamento oculare
Consente a un'app di eseguire il rendering di contenuti ad alta risoluzione solo nel punto focale degli occhi.
Distorsione spaziale
Utilizza i vettori di velocità e le informazioni sulla texture di profondità per generare fotogrammi intermedi che aumentano efficacemente la frequenza fotogrammi necessaria per mantenere gli utenti immersi nelle tue esperienze
Sintesi dei frame
Utilizza i vettori di movimento e i dati dei fotogrammi forniti dall'applicazione per sintetizzare i fotogrammi intermedi, migliorando la fluidità visiva e la frequenza fotogrammi.
Metriche delle prestazioni
Fornisce metriche sul rendimento di Android XR in fase di runtime del dispositivo XR, del compositore e dell'app XR attuali. Sono inclusi la durata frame della CPU, la durata frame della GPU, l'utilizzo della GPU, la frequenza della CPU, i frame al secondo e altro.

Consulta la panoramica delle funzionalità di OpenXR per un elenco completo delle funzionalità e delle estensioni supportate.

Motori supportati

I seguenti motori sono supportati per lo sviluppo OpenXR con Android XR.

Unità

Il supporto di Unity per Android XR, basato su OpenXR, consente agli sviluppatori di creare esperienze utilizzando Unity 6. Scopri di più sulla creazione di app XR con Unity nella panoramica di Unity.

Unreal Engine

Unreal Engine supporta Android XR tramite lo standard OpenXR, consentendoti di utilizzare gli strumenti e i flussi di lavoro standard in Unreal Engine 5. Scopri di più sulla creazione di app XR con Unreal Engine nella panoramica di Unreal Engine.

Godot

Godot supporta Android XR tramite l'integrazione di OpenXR, consentendoti di creare ed esportare app XR per Android utilizzando il flusso di lavoro standard di Godot. Scopri di più sulla creazione di app XR con Godot nella panoramica di Godot.


OpenXR™ e il logo OpenXR sono marchi di proprietà di The Khronos Group Inc. e sono registrati come marchi in Cina, nell'Unione Europea, in Giappone e nel Regno Unito.