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. } }