Как изменить внешний вид контента в зависимости от типа экрана

Поддерживаемые XR-устройства
Это руководство поможет вам создавать продукты для таких XR-устройств.
XR-шлемы
Проводные XR-очки
Аудио- и
видеоочки

У разных типов устройств разные характеристики дисплея. Приложение может проверять характеристики экрана устройства, на котором оно запущено, и адаптировать контент так, чтобы он отображался наилучшим образом.

Типы режимов смешивания

Значение DisplayBlendMode описывает, как изображения накладываются на реальный мир. Технология дисплея в корне меняет то, как цифровой контент смешивается с физическим миром.

Аддитивное смешивание

Если в качестве режима смешивания выбран вариант ADDITIVE, черные пиксели будут прозрачными. Часто используется в устройствах с прозрачными линзами, которые позволяют пользователю видеть окружающую среду. Устройство может только добавлять свет на поверхность.

Это означает, что виртуальный контент добавляется в реальный мир путем добавления значений пикселей для каждого из красного, зеленого и синего компонентов. Альфа-канал игнорируется, а черные пиксели становятся прозрачными.

Альфа-смешивание

Если текущий режим смешивания дисплея – ALPHA_BLEND, виртуальный контент добавляется в реальный мир путем альфа-смешивания значений пикселей на основе альфа-компонента. Это относится к XR-шлемам, которые используют непрозрачный дисплей для отображения контента. Яркость каждого пикселя можно регулировать, а также можно настроить пиксели так, чтобы они выглядели черными. В зависимости от активной пространственной среды эти пиксели могут представлять реальный мир через трансляцию с камеры или цифровую среду.

Нет дисплея

Если текущий режим смешивания – NO_DISPLAY, устройство не может отображать пиксели.

Получите текущий DisplayBlendMode.

Чтобы проверить активный DisplayBlendMode, используйте 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.
    }
}

Подробнее…