Il progetto xrdesktop per l'utilizzo di GNOME e KDE nei visori per realtà virtuale

Sviluppatori di Collabora purché progetto xrddesktop, in cui, con il supporto di Valve, è in fase di sviluppo una libreria con elementi per interagire con i desktop tradizionali all'interno di ambienti tridimensionali realizzati utilizzando occhiali 3D e caschi per realtà virtuale. Il codice della libreria è scritto in C e distribuito da sotto licenza MIT. Assemblaggi già pronti preparato per Arch Linux и Ubuntu 19.04 / 18.04.

Attualmente, Linux dispone già di strumenti per l'output diretto su visori per realtà virtuale (estensioni Vulkan VK_EXT_acquire_xlib_display per X11 e VK_EXT_acquire_wl_display per Wayland), ma non esiste supporto a livello del corretto rendering delle finestre nello spazio 3D e della sincronizzazione della frequenza di aggiornamento dello schermo. L'obiettivo del progetto xrdesktop è quello di sviluppare metodi che consentano l'uso di interfacce classiche focalizzate sulla visualizzazione di schermi XNUMXD e sul controllo di tastiera e mouse in ambienti virtuali.

Il progetto xrdesktop per l'utilizzo di GNOME e KDE nei visori per realtà virtuale

I componenti xrdesktop estendono i gestori di finestre e compositi esistenti per utilizzare sistemi runtime di realtà virtuale per eseguire il rendering di finestre e desktop in ambienti virtuali 3D. xrdesktop promuove l'idea di integrarsi in ambienti desktop esistenti senza la necessità di eseguire un gestore composito specializzato separato e consentendo l'utilizzo di configurazioni personalizzate esistenti utilizzate con un monitor normale con caschi XNUMXD.

L'architettura del progetto implica la capacità di integrazione con qualsiasi desktop, ma nell'attuale fase di sviluppo sono implementati componenti per supportare i visori di realtà virtuale per KDE e GNOME. Per KDE, il supporto per i caschi 3D è implementato tramite un plugin simile a Compiz e per GNOME tramite una serie di patch per GNOME Shell. Questi componenti rispecchiano le finestre esistenti nell'ambiente virtuale dei caschi 3D sotto forma di scena separata o in modalità sovrapposizione, in cui le finestre del desktop possono essere sovrapposte ad altre applicazioni di realtà virtuale in esecuzione.

Oltre ai motori di rendering, xrdesktop fornisce componenti per fornire navigazione e input utilizzando controller spaziali specializzati come Valve Index e VIVE Wand. Xrdesktop genera eventi di input regolari basati sulle informazioni provenienti dai controller VR, simulando l'uso di tastiera e mouse.

xrdesktop include diverse librerie che generano texture di finestre per il runtime VR utilizzando OpenVR, nonché un sistema basato su API per il rendering di un desktop completo in un ambiente 3D. Poiché xrdesktop non fornisce un proprio window manager, è necessario il lavoro di integrazione con i window manager esistenti (xrdesktop può essere portato su qualsiasi window manager X11 o Wayland). Dal lato del driver grafico, il funzionamento richiede un driver che supporti l'API Vulkan e l'estensione VK_KHR_external_memory.

Il progetto xrdesktop per l'utilizzo di GNOME e KDE nei visori per realtà virtuale

I componenti principali di xrdesktop:

  • Gulkan - associazione glib per Vulkan, che fornisce classi per dispositivi di elaborazione, shader e inizializzazione di trame dalla memoria o dai buffer DMA;
  • GXR — API per l'astrazione delle interfacce dei programmi per lo sviluppo di applicazioni di realtà virtuale. Attualmente è supportato solo OpenVR, ma nel prossimo futuro verrà aggiunto il supporto allo standard OpenXR;
  • libinputsynth — una libreria per sintetizzare eventi di input, come movimento del mouse, clic e sequenze di tasti, implementata sotto forma di backend per xdo, xi2 e Clutter;
  • xrddesktop — una libreria per la gestione delle finestre in un ambiente 3D, una serie di widget e backend di accompagnamento per il rendering della scena;
  • kwin-effect-xrdesktop и kdeplasma-applet-xrdesktop — un plugin per KWin per l'integrazione con KDE e un'applet Plasma per passare KWin alla modalità output su un casco 3D;
  • set di patch della shell gnome и estensione-gnome-shell-xrdesktop — una serie di patch per GNOME Shell per integrare il supporto xrdesktop e un componente aggiuntivo per commutare l'output su un casco 3D in GNOME Shell.

Il progetto supporta diversi metodi per organizzare l'interazione con il desktop e le finestre in un ambiente virtuale, che possono essere utilizzati per catturare finestre, ridimensionare, spostare, ruotare, sovrapporre su una sfera, ancorare e nascondere finestre, utilizzare il menu di controllo e controllare simultaneamente con due mani che utilizzano più controller.

Fonte: opennet.ru

Aggiungi un commento