Ang xrdesktop nga proyekto para sa paggamit sa GNOME ug KDE sa virtual reality headsets

Mga developer gikan sa Collabora gipresentar ang proyekto xrdesktop, diin, uban sa suporta sa Valve, ang usa ka librarya gipalambo uban sa mga elemento alang sa pagpakig-uban sa tradisyonal nga mga desktop sulod sa tulo-ka-dimensional nga palibot nga gihimo gamit ang 3D nga baso ug virtual reality helmet. Ang code sa librarya gisulat sa C ug giapod-apod sa ubos sa lisensya sa MIT. Andam nga mga asembliya giandam alang sa Arch Linux ΠΈ Ubuntu 19.04 / 18.04.

Sa pagkakaron, ang Linux aduna nay mga himan alang sa direktang output ngadto sa virtual reality headsets (Vulkan extensions VK_EXT_acquire_xlib_display para sa X11 ug VK_EXT_acquire_wl_display para sa Wayland), apan walay suporta sa lebel sa hustong paghubad sa mga bintana sa 3D space ug pag-synchronize sa screen refresh rate. Ang tumong sa xrdesktop nga proyekto mao ang paghimo og mga pamaagi nga magtugot sa paggamit sa mga classic interface nga naka-focus sa XNUMXD screen display ug keyboard ug mouse control sa virtual environment.

Ang xrdesktop nga proyekto para sa paggamit sa GNOME ug KDE sa virtual reality headsets

Ang xrdesktop nga mga component nagpalapad sa kasamtangan nga window ug composite managers aron magamit ang virtual reality runtime system aron ma-render ang mga bintana ug desktop sa 3D virtual environment. Gipasiugda sa xrdesktop ang ideya sa pag-integrate sa mga naa na nga desktop environment nga dili kinahanglan nga magpadagan sa usa ka bulag nga espesyalista nga composite manager ug gitugotan ang mga naa na nga kostumbre nga gigamit sa usa ka regular nga monitor nga magamit sa XNUMXD helmet.

Ang arkitektura sa proyekto nagpasabot sa abilidad sa pag-integrate sa bisan unsang desktop, apan sa kasamtangan nga yugto sa pag-uswag, ang mga component nga mosuporta sa virtual reality headset kay gipatuman para sa KDE ug GNOME. Para sa KDE, ang suporta sa 3D helmet kay gipatuman pinaagi sa Compiz-like plugin, ug para sa GNOME pinaagi sa usa ka set sa mga patch para sa GNOME Shell. Kini nga mga sangkap nagsalamin sa kasamtangan nga mga bintana ngadto sa virtual nga palibot sa 3D helmet sa porma sa usa ka bulag nga talan-awon o sa overlay mode, diin ang mga desktop windows mahimong ipatong sa ubang nagdagan nga virtual reality nga mga aplikasyon.

Gawas pa sa mga makina sa pag-render, ang xrdesktop naghatag og mga sangkap aron mahatagan ang nabigasyon ug input gamit ang mga espesyal nga spatial controller sama sa Valve Index ug VIVE Wand. Ang Xrdesktop naggamit sa impormasyon gikan sa VR controllers aron makamugna og regular nga input event, nga nagsundog sa paggamit sa keyboard ug mouse.

Ang xrdesktop naglakip sa daghang mga librarya nga nagmugna sa mga texture sa bintana alang sa VR runtime gamit ang OpenVR, ingon man usa ka sistema nga nakabase sa API alang sa paghubad sa usa ka tibuuk nga desktop sa usa ka 3D nga palibot. Tungod kay ang xrdesktop wala maghatag ug kaugalingong window manager, gikinahanglan ang integration work sa kasamtangan nga window managers (ang xrdesktop mahimong ma-port sa bisan unsang X11 o Wayland window manager). Sa bahin sa drayber sa graphic, ang operasyon nanginahanglan usa ka drayber nga nagsuporta sa Vulkan API ug ang extension sa VK_KHR_external_memory.

Ang xrdesktop nga proyekto para sa paggamit sa GNOME ug KDE sa virtual reality headsets

Ang mga nag-unang sangkap sa xrdesktop:

  • gulkan - glib binding para sa Vulkan, paghatag og mga klase para sa pagproseso sa mga himan, shaders ug pag-initialize sa mga texture gikan sa memorya o DMA buffers;
  • gxr - API alang sa abstracting mga interface sa programa alang sa pagpalambo sa virtual reality nga mga aplikasyon. Sa pagkakaron ang OpenVR lang ang gisuportahan, apan ang suporta sa OpenXR standard idugang sa umaabot;
  • libinputsynth - usa ka librarya alang sa pag-synthesize sa mga panghitabo sa pag-input, sama sa paglihok sa mouse, mga pag-klik ug mga keystroke, nga gipatuman sa porma sa mga backend alang sa xdo, xi2 ug Clutter;
  • xrdesktop - usa ka librarya alang sa pagdumala sa mga bintana sa usa ka 3D nga palibot, usa ka set sa kauban nga mga widget ug mga backend alang sa paghubad sa talan-awon;
  • kwin-effect-xrdesktop ΠΈ kdeplasma-applets-xrdesktop - usa ka plugin alang sa KWin alang sa paghiusa sa KDE ug usa ka Plasma applet alang sa pagbalhin sa KWin sa output mode sa usa ka 3D helmet;
  • gnome-shell patchset ΠΈ gnome-shell-extension-xrdesktop - usa ka hugpong sa mga patch alang sa GNOME Shell aron i-integrate ang suporta sa xrdesktop ug usa ka add-on alang sa pagbalhin sa output ngadto sa usa ka 3D nga helmet sa GNOME Shell.

Gisuportahan sa proyekto ang daghang mga pamaagi alang sa pag-organisar sa interaksyon sa desktop ug windows sa usa ka virtual nga palibot, nga magamit aron makuha ang mga bintana, sukdanan, paglihok, pag-rotate, pag-overlay sa usa ka sphere, pagdunggo ug pagtago sa mga bintana, gamita ang control menu ug dungan nga makontrol sa duha ka kamot gamit ang daghang controller.

Source: opennet.ru

Idugang sa usa ka comment