Zmienianie wyglądu treści w zależności od rodzaju wyświetlacza

Odpowiednie urządzenia z XR
Te wskazówki pomogą Ci tworzyć treści na te typy urządzeń z XR.
Gogle XR
Przewodowe okulary XR
Okulary audio i z wyświetlaczem

Różne typy urządzeń mają różne typy charakterystyk wyświetlania. Aplikacja może sprawdzać charakterystykę wyświetlacza urządzenia, na którym działa, aby dostosować treści i wyświetlać je w najlepszy możliwy sposób.

Typy trybów mieszania wyświetlania

Wartość DisplayBlendMode opisuje, jak zdjęcia są nakładane na rzeczywisty świat. Technologia wyświetlania zasadniczo zmienia sposób, w jaki treści cyfrowe łączą się ze światem fizycznym.

Mieszanie addytywne

Gdy bieżący tryb mieszania wyświetlacza to ADDITIVE, czarne piksele są przezroczyste. Jest to często używane przez urządzenia z przezroczystymi soczewkami, które bezpośrednio przepuszczają obraz otoczenia do oczu użytkownika. Urządzenie może tylko dodać więcej światła do powierzchni.

W praktyce oznacza to, że treści wirtualne są dodawane do świata rzeczywistego przez dodanie wartości pikseli dla każdego z komponentów czerwonego, zielonego i niebieskiego. Kanał alfa jest ignorowany, a czarne piksele są przezroczyste.

Mieszanie alfa

Gdy bieżący tryb mieszania wyświetlacza to ALPHA_BLEND, treści wirtualne są dodawane do świata rzeczywistego przez mieszanie alfa wartości pikseli na podstawie komponentu alfa. Tak jest w przypadku gogli XR, które używają nieprzezroczystego wyświetlacza do renderowania treści. Jasność każdego piksela można kontrolować, a piksele można ustawić tak, aby były czarne. W zależności od aktywnego środowiska przestrzennego te piksele mogą reprezentować świat rzeczywisty przez strumień z kamery lub środowisko cyfrowe.

Brak wyświetlacza

Gdy bieżący tryb mieszania wyświetlacza to NO_DISPLAY, urządzenie nie może wyświetlać żadnych pikseli.

Uzyskaj bieżący DisplayBlendMode

Aby sprawdzić aktywną DisplayBlendMode, użyj 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.
    }
}

Więcej informacji