Projekt xrdesktop dotyczący wykorzystania GNOME i KDE w goglach rzeczywistości wirtualnej

Programiści z Collabora przedstawione projekt xrdesktop, w ramach której przy wsparciu Valve rozwijana jest biblioteka zawierająca elementy umożliwiające interakcję z tradycyjnymi komputerami stacjonarnymi w trójwymiarowych środowiskach tworzonych przy użyciu okularów 3D i hełmów wirtualnej rzeczywistości. Kod biblioteki jest napisany w języku C i dystrybuowane przez na licencji MIT. Gotowe zespoły przygotowany dla Arch Linux и Ubuntu 19.04 / 18.04.

Obecnie Linux ma już narzędzia do bezpośredniego wyjścia do gogli rzeczywistości wirtualnej (rozszerzenia Vulkan VK_EXT_acquire_xlib_display dla X11 i VK_EXT_acquire_wl_display dla Wayland), ale nie ma wsparcia na poziomie prawidłowego renderowania okien w przestrzeni 3D i synchronizacji częstotliwości odświeżania ekranu. Celem projektu xrdesktop jest opracowanie metod, które pozwolą na wykorzystanie klasycznych interfejsów skupionych na wyświetlaniu ekranu XNUMXD oraz sterowaniu klawiaturą i myszą w środowiskach wirtualnych.

Projekt xrdesktop dotyczący wykorzystania GNOME i KDE w goglach rzeczywistości wirtualnej

Komponenty xrdesktop rozszerzają istniejące menedżery okien i kompozytów o wykorzystanie systemów wykonawczych rzeczywistości wirtualnej do renderowania okien i pulpitów w wirtualnych środowiskach 3D. xrdesktop promuje ideę integracji z istniejącymi środowiskami stacjonarnymi bez konieczności uruchamiania osobnego wyspecjalizowanego menedżera kompozytów i umożliwienia wykorzystania istniejących niestandardowych konfiguracji używanych ze zwykłym monitorem z hełmami XNUMXD.

Architektura projektu zakłada możliwość integracji z dowolnym komputerem stacjonarnym, jednak na obecnym etapie rozwoju zaimplementowano komponenty obsługujące gogle wirtualnej rzeczywistości dla KDE i GNOME. W przypadku KDE obsługa hełmów 3D jest realizowana poprzez wtyczkę podobną do Compiz, a w przypadku GNOME poprzez zestaw poprawek do powłoki GNOME. Komponenty te odzwierciedlają istniejące okna w wirtualnym środowisku kasków 3D w formie osobnej sceny lub w trybie nakładki, w którym okna pulpitu można nakładać na inne działające aplikacje wirtualnej rzeczywistości.

Oprócz silników renderujących, xrdesktop udostępnia komponenty umożliwiające nawigację i wprowadzanie danych przy użyciu wyspecjalizowanych kontrolerów przestrzennych, takich jak Valve Index i VIVE Wand. Xrdesktop wykorzystuje informacje z kontrolerów VR do generowania regularnych zdarzeń wejściowych, symulując użycie klawiatury i myszy.

xrdesktop zawiera kilka bibliotek generujących tekstury okien dla środowiska wykonawczego VR przy użyciu OpenVR, a także oparty na API system renderowania pełnego pulpitu w środowisku 3D. Ponieważ xrdesktop nie zapewnia własnego menedżera okien, wymagana jest integracja z istniejącymi menedżerami okien (xrdesktop można przenieść do dowolnego menedżera okien X11 lub Wayland). Po stronie sterownika graficznego działanie wymaga sterownika obsługującego API Vulkan i rozszerzenie VK_KHR_external_memory.

Projekt xrdesktop dotyczący wykorzystania GNOME i KDE w goglach rzeczywistości wirtualnej

Główne komponenty xrdesktop:

  • gulkan - glib bind dla Vulkan, udostępniający klasy dla urządzeń przetwarzających, shaderów i inicjujących tekstury z pamięci lub buforów DMA;
  • gxr — API do wyodrębniania interfejsów programów do tworzenia aplikacji rzeczywistości wirtualnej. Obecnie obsługiwany jest tylko OpenVR, ale obsługa standardu OpenXR zostanie dodana w najbliższej przyszłości;
  • libinputsynth — biblioteka do syntezy zdarzeń wejściowych, takich jak ruchy myszą, kliknięcia i naciśnięcia klawiszy, zaimplementowana w formie backendów dla xdo, xi2 i Clutter;
  • xrdesktop — biblioteka do zarządzania oknami w środowisku 3D, zestaw towarzyszących widżetów i backendów do renderowania sceny;
  • kwin-efekt-xrdesktop и kdeplasma-applets-xrdesktop — wtyczka do KWin do integracji z KDE oraz aplet Plasma do przełączania KWin w tryb wyjściowy na hełmie 3D;
  • zestaw poprawek powłoki gnome и gnome-shell-extension-xrdesktop — zestaw poprawek do powłoki GNOME Shell integrujących obsługę xrdesktop oraz dodatek do przełączania wyjścia na hełm 3D w powłoce GNOME.

Projekt obsługuje kilka metod organizacji interakcji z pulpitem i oknami w środowisku wirtualnym, które można wykorzystać do przechwytywania okien, skalowania, przesuwania, obracania, nakładania na kulę, dokowania i ukrywania okien, korzystania z menu sterowania i jednoczesnego sterowania za pomocą dwie ręce przy użyciu wielu kontrolerów.

Źródło: opennet.ru

Dodaj komentarz