Los diferentes tipos de dispositivos tienen distintos tipos de características de pantalla. Tu app puede verificar las características de la pantalla del dispositivo en el que se ejecuta para adaptar el contenido y asegurarse de que se muestre de la mejor manera posible.
Los tipos de modos de fusión de pantalla
Un valor DisplayBlendMode describe cómo se superponen las imágenes sobre el mundo real. La tecnología de visualización cambia radicalmente
la forma en que el contenido digital se combina con el mundo físico.
Combinación aditiva
Cuando el modo de fusión de pantalla actual es ADDITIVE, los píxeles negros aparecen transparentes. Suelen usarlo los dispositivos con lentes transparentes que permiten que el entorno del usuario pase directamente a sus ojos. El dispositivo solo puede agregar más luz a la superficie.
En concreto, esto significa que el contenido virtual se agrega al mundo real sumando los valores de píxeles de cada uno de los componentes rojo, verde y azul. Se ignora el canal alfa, y los píxeles negros aparecen transparentes.
Combinación alfa
Cuando el modo de combinación de pantalla actual es ALPHA_BLEND, el contenido virtual se agrega al mundo real mediante la combinación alfa de los valores de píxeles según el componente alfa. Este es el caso de los visores de RE, que usan una pantalla opaca para renderizar el contenido. Se puede controlar el brillo de cada píxel y
se puede configurar para que aparezcan negros. Según el entorno espacial activo, estos píxeles pueden representar el mundo real a través de una transmisión de la cámara o un entorno digital.
No se muestra
Cuando el modo de combinación de pantalla actual es NO_DISPLAY, el dispositivo no puede mostrar ningún píxel.
Obtén el DisplayBlendMode actual
Para verificar el DisplayBlendMode activo, usa
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. } }