ディスプレイ タイプに基づいてコンテンツの表示方法を変更する

対象となる 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.
    }
}

詳細