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