Modificare l'aspetto dei contenuti in base al tipo di visualizzazione

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

Tipi di dispositivi diversi hanno tipi di caratteristiche di visualizzazione differenti. La tua app può controllare le caratteristiche del display del dispositivo su cui è in esecuzione per adattare i contenuti e assicurarsi che vengano visualizzati nel miglior modo possibile.

Tipi di modalità di fusione di visualizzazione

Un valore DisplayBlendMode descrive il modo in cui le immagini vengono sovrapposte al mondo reale. La tecnologia del display cambia radicalmente il modo in cui i contenuti digitali si fondono con il mondo fisico.

Fusione additiva

Quando la modalità di fusione di visualizzazione corrente è ADDITIVE, i pixel neri appaiono trasparenti. Questa modalità viene spesso utilizzata dai dispositivi con lenti trasparenti che consentono all'ambiente dell'utente di passare direttamente agli occhi dell'utente. Il dispositivo può solo aggiungere più luce alla superficie.

In pratica, ciò significa che i contenuti virtuali vengono aggiunti al mondo reale aggiungendo i valori dei pixel per ciascuno dei componenti rosso, verde e blu. Il canale alfa viene ignorato e i pixel neri appaiono trasparenti.

Alpha blending

Quando la modalità di fusione del display corrente è ALPHA_BLEND, i contenuti virtuali vengono aggiunti al mondo reale mediante la fusione alfa dei valori dei pixel in base al componente alfa. Questo è il caso dei visori XR, che utilizzano un display opaco per eseguire il rendering dei contenuti. La luminosità di ogni pixel può essere controllata e i pixel possono essere impostati in modo da apparire neri. A seconda dell'ambiente spaziale attivo, questi pixel potrebbero rappresentare il mondo reale tramite uno stream della videocamera o un ambiente digitale.

Nessun display

Quando la modalità di fusione del display corrente è NO_DISPLAY, il dispositivo non può visualizzare alcun pixel.

Ottieni l'DisplayBlendMode corrente

Per controllare l'DisplayBlendMode attivo, utilizza XrDevice.getPreferredDisplayBlendMode:

val preferredDisplayBlendMode =
    XrDevice.getCurrentDevice(session).getPreferredDisplayBlendMode()
when (preferredDisplayBlendMode) {
    ADDITIVE -> {
        // Virtual content is added to the real world by adding the pixel values for each of
        // Red, Green, and Blue components. Alpha is ignored. Black pixels will appear transparent.
    }

    ALPHA_BLEND -> {
        // Virtual content is added to the real world by alpha blending the pixel values based
        // on the Alpha component.
    }

    NO_DISPLAY -> {
        // Device doesn't have a display.
    }
}

Scopri di più