GNOME ve KDE'nin sanal gerçeklik başlıklarında kullanılmasına yönelik xrdesktop projesi

Collabora'dan geliştiriciler sunulan proje xrdesktopValve'ın desteğiyle, 3D gözlükler ve sanal gerçeklik kaskları kullanılarak oluşturulan üç boyutlu ortamlar içinde geleneksel masaüstü bilgisayarlarla etkileşime girmeye yönelik öğeler içeren bir kütüphane geliştiriliyor. Kütüphane kodu C dilinde yazılmıştır ve tarafından dağıtıldı MIT lisansı altında. Hazır montajlar hazır için Arch Linux и Ubuntu 19.04 / 18.04.

Şu anda, Linux'ta sanal gerçeklik kulaklıklarına doğrudan çıkış için araçlar zaten bulunmaktadır (X11 için VK_EXT_acquire_xlib_display ve Wayland için VK_EXT_acquire_wl_display Vulkan uzantıları), ancak 3D alanda pencerelerin doğru şekilde oluşturulması ve ekran yenileme hızının senkronizasyonu düzeyinde destek yoktur. Xrdesktop projesinin amacı, XNUMX boyutlu ekran gösterimine odaklanan klasik arayüzlerin, sanal ortamlarda klavye ve fare kontrolüne olanak sağlayacak yöntemlerin geliştirilmesidir.

GNOME ve KDE'nin sanal gerçeklik başlıklarında kullanılmasına yönelik xrdesktop projesi

xrdesktop bileşenleri, mevcut pencere ve bileşik yöneticileri, pencereleri ve masaüstü bilgisayarları 3B sanal ortamlarda oluşturmak için sanal gerçeklik çalışma zamanı sistemlerini kullanacak şekilde genişletir. xrdesktop, ayrı bir özel bileşik yönetici çalıştırmaya gerek kalmadan mevcut masaüstü ortamlarına entegrasyon fikrini teşvik ediyor ve normal bir monitörle kullanılan mevcut özel konfigürasyonların XNUMXD kasklarla kullanılmasına izin veriyor.

Projenin mimarisi, herhangi bir masaüstüyle entegrasyon yeteneğini ima ediyor, ancak mevcut geliştirme aşamasında, KDE ve GNOME için sanal gerçeklik başlıklarını destekleyen bileşenler uygulanıyor. KDE için, 3D kask desteği Compiz benzeri bir eklenti aracılığıyla, GNOME için ise GNOME Kabuğu için bir dizi yama aracılığıyla gerçekleştirilir. Bu bileşenler, mevcut pencereleri ayrı bir sahne biçiminde veya masaüstü pencerelerinin çalışan diğer sanal gerçeklik uygulamalarının üzerine yerleştirilebildiği üst üste bindirme modunda 3D kaskların sanal ortamına yansıtır.

Render motorlarının yanı sıra, xrdesktop, Valve Index ve VIVE Wand gibi özel uzamsal denetleyicileri kullanarak gezinme ve girdi sağlamaya yönelik bileşenler sağlar. Xrdesktop, VR denetleyicilerinden gelen bilgilere dayanarak klavye ve fare kullanımını simüle ederek düzenli giriş olayları oluşturur.

xrdesktop, OpenVR'yi kullanarak VR çalışma zamanı için pencere dokuları oluşturan çeşitli kitaplıkların yanı sıra 3B ortamda tam bir masaüstü oluşturmak için API tabanlı bir sistem içerir. xrdesktop kendi pencere yöneticisini sağlamadığından mevcut pencere yöneticileriyle entegrasyon çalışması gereklidir (xrdesktop herhangi bir X11 veya Wayland pencere yöneticisine taşınabilir). Grafik sürücüsü tarafında işlem, Vulkan API'sini ve VK_KHR_external_memory uzantısını destekleyen bir sürücü gerektirir.

GNOME ve KDE'nin sanal gerçeklik başlıklarında kullanılmasına yönelik xrdesktop projesi

Xrdesktop'un ana bileşenleri:

  • gülkan - Vulkan için glib bağlama; aygıtların, gölgelendiricilerin işlenmesi ve dokuların bellekten veya DMA arabelleklerinden başlatılması için sınıflar sağlar;
  • GXR — Sanal gerçeklik uygulamaları geliştirmeye yönelik program arayüzlerini soyutlamaya yönelik API. Şu anda yalnızca OpenVR desteklenmektedir ancak yakın gelecekte OpenXR standardı desteği de eklenecektir;
  • libinputsynth — xdo, xi2 ve Clutter için arka uçlar biçiminde uygulanan, fare hareketi, tıklamalar ve tuş vuruşları gibi giriş olaylarını sentezlemeye yönelik bir kitaplık;
  • xrdesktop — 3 boyutlu bir ortamda pencereleri yönetmek için bir kitaplık, sahnenin oluşturulmasına yönelik bir takım yardımcı araçlar ve arka uçlar;
  • kwin-etkisi-xrdesktop и kdeplasma-applets-xrdesktop — KDE ile entegrasyon için bir KWin eklentisi ve KWin'i 3D kask üzerinde çıkış moduna geçirmek için bir Plazma uygulaması;
  • gnome kabuğu yama seti и gnome-kabuk-uzantısı-xrdesktop — xrdesktop desteğini entegre etmek için GNOME Shell'e yönelik bir yama seti ve çıktıyı GNOME Shell'deki bir 3D kaskına değiştirmek için bir eklenti.

Proje, pencereleri yakalamak, ölçeklendirmek, taşımak, döndürmek, bir küre üzerine yerleştirmek, pencereleri sabitlemek ve gizlemek, kontrol menüsünü kullanmak ve aynı anda kontrol etmek için kullanılabilen sanal bir ortamda masaüstü ve pencerelerle etkileşimi düzenlemek için çeşitli yöntemleri destekler. birden fazla denetleyiciyi kullanan iki el.

Kaynak: opennet.ru

Yorum ekle