Mudar a aparência do conteúdo com base no tipo de tela

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

Cada tipo de dispositivo tem características de exibição diferentes. O app pode verificar as características de exibição do dispositivo em que está sendo executado para adaptar o conteúdo e garantir que ele seja mostrado da melhor maneira possível.

Os tipos de modos de mesclagem de exibição

Um valor DisplayBlendMode descreve como as imagens são sobrepostas ao mundo real. A tecnologia de tela muda fundamentalmente como o conteúdo digital se mistura com o mundo físico.

Combinação aditiva

Quando o modo de mesclagem de exibição atual é ADDITIVE, os pixels pretos aparecem transparentes. Isso geralmente é usado por dispositivos com lentes transparentes que permitem que o ambiente do usuário passe diretamente para os olhos dele. O dispositivo só pode adicionar mais luz à superfície.

Isso significa que o conteúdo virtual é adicionado ao mundo real adicionando os valores de pixel para cada um dos componentes vermelho, verde e azul. O alfa é ignorado, e os pixels pretos aparecem transparentes.

Combinação Alfa

Quando o modo de mesclagem de exibição atual é ALPHA_BLEND, o conteúdo virtual é adicionado ao mundo real por meio da mesclagem Alfa dos valores de pixel com base no componente Alfa. Esse é o caso dos headsets XR, que usam uma tela opaca para renderizar o conteúdo. O brilho de cada pixel pode ser controlado, e os pixels podem ser definidos para aparecer em preto. Dependendo do ambiente espacial ativo, esses pixels podem representar o mundo real por um stream da câmera ou um ambiente digital.

Nenhuma tela

Quando o modo de mesclagem de exibição atual é NO_DISPLAY, o dispositivo não pode mostrar pixels.

Obtenha o DisplayBlendMode atual

Para verificar o DisplayBlendMode ativo, use 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.
    }
}

Saiba mais