Proyek xrdesktop untuk menggunakan GNOME dan KDE dalam headset realitas virtual

Pengembang dari Collabora disajikan proyek xrddesktop, di mana, dengan dukungan Valve, sebuah perpustakaan sedang dikembangkan dengan elemen untuk berinteraksi dengan desktop tradisional dalam lingkungan tiga dimensi yang dibuat menggunakan kacamata 3D dan helm realitas virtual. Kode perpustakaan ditulis dalam C dan didistribusikan oleh di bawah lisensi MIT. Rakitan yang sudah jadi siap untuk Arch Linux ΠΈ Ubuntu 19.04 / 18.04.

Saat ini, Linux sudah memiliki alat untuk keluaran langsung ke headset realitas virtual (ekstensi Vulkan VK_EXT_acquire_xlib_display untuk X11 dan VK_EXT_acquire_wl_display untuk Wayland), tetapi tidak ada dukungan pada tingkat rendering jendela yang benar dalam ruang 3D dan sinkronisasi kecepatan refresh layar. Tujuan dari proyek xrdesktop adalah untuk mengembangkan metode yang memungkinkan penggunaan antarmuka klasik yang berfokus pada tampilan layar XNUMXD serta kontrol keyboard dan mouse di lingkungan virtual.

Proyek xrdesktop untuk menggunakan GNOME dan KDE dalam headset realitas virtual

Komponen xrdesktop memperluas manajer jendela dan komposit yang ada untuk menggunakan sistem runtime realitas virtual untuk merender jendela dan desktop dalam lingkungan virtual 3D. xrdesktop mempromosikan gagasan untuk berintegrasi ke dalam lingkungan desktop yang ada tanpa perlu menjalankan manajer komposit khusus yang terpisah dan memungkinkan konfigurasi khusus yang ada digunakan dengan monitor biasa untuk digunakan dengan helm XNUMXD.

Arsitektur proyek menyiratkan kemampuan untuk berintegrasi dengan desktop apa pun, namun pada tahap pengembangan saat ini, komponen untuk mendukung headset realitas virtual diimplementasikan untuk KDE dan GNOME. Untuk KDE, dukungan untuk helm 3D diimplementasikan melalui plugin mirip Compiz, dan untuk GNOME melalui serangkaian patch untuk GNOME Shell. Komponen ini mencerminkan jendela yang ada ke dalam lingkungan virtual helm 3D dalam bentuk adegan terpisah atau dalam mode overlay, di mana jendela desktop dapat ditumpangkan pada aplikasi realitas virtual lain yang sedang berjalan.

Selain mesin rendering, xrdesktop menyediakan komponen untuk menyediakan navigasi dan input menggunakan pengontrol spasial khusus seperti Valve Index dan VIVE Wand. Xrdesktop menggunakan informasi dari pengontrol VR untuk menghasilkan peristiwa masukan reguler, mensimulasikan penggunaan keyboard dan mouse.

xrdesktop menyertakan beberapa perpustakaan yang menghasilkan tekstur jendela untuk runtime VR menggunakan OpenVR, serta sistem berbasis API untuk merender desktop lengkap dalam lingkungan 3D. Karena xrdesktop tidak menyediakan window managernya sendiri, diperlukan integrasi dengan window manager yang ada (xrdesktop dapat di-porting ke window manager X11 atau Wayland mana pun). Di sisi driver grafis, pengoperasian memerlukan driver yang mendukung Vulkan API dan ekstensi VK_KHR_external_memory.

Proyek xrdesktop untuk menggunakan GNOME dan KDE dalam headset realitas virtual

Komponen utama xrdesktop:

  • gulkan - pengikatan fasih untuk Vulkan, menyediakan kelas untuk perangkat pemrosesan, shader, dan inisialisasi tekstur dari memori atau buffer DMA;
  • gxr β€” API untuk mengabstraksi antarmuka program untuk mengembangkan aplikasi realitas virtual. Saat ini hanya OpenVR yang didukung, namun dukungan untuk standar OpenXR akan ditambahkan dalam waktu dekat;
  • libinputsynth β€” perpustakaan untuk mensintesis peristiwa masukan, seperti gerakan mouse, klik, dan penekanan tombol, diimplementasikan dalam bentuk backend untuk xdo, xi2, dan Clutter;
  • xrddesktop β€” perpustakaan untuk mengelola jendela dalam lingkungan 3D, sekumpulan widget dan backend yang menyertainya untuk merender adegan;
  • kwin-effect-xrdesktop ΠΈ kdeplasma-applet-xrdesktop β€” sebuah plugin untuk KWin untuk integrasi dengan KDE dan applet Plasma untuk mengalihkan KWin ke mode keluaran pada helm 3D;
  • set tambalan gnome-shell ΠΈ gnome-shell-ekstensi-xrdesktop β€” satu set patch untuk GNOME Shell untuk mengintegrasikan dukungan xrdesktop dan add-on untuk mengalihkan output ke helm 3D di GNOME Shell.

Proyek ini mendukung beberapa metode untuk mengatur interaksi dengan desktop dan jendela dalam lingkungan virtual, yang dapat digunakan untuk menangkap jendela, menskalakan, memindahkan, memutar, melapisi bola, memasang dan menyembunyikan jendela, menggunakan menu kontrol dan secara bersamaan mengontrol dengan dua tangan menggunakan banyak pengontrol.

Sumber: opennet.ru

Tambah komentar