นักพัฒนาจาก Collabora
ปัจจุบัน Linux มีเครื่องมือสำหรับเอาต์พุตโดยตรงไปยังชุดหูฟังความเป็นจริงเสมือน (ส่วนขยาย Vulkan VK_EXT_acquire_xlib_display สำหรับ X11 และ VK_EXT_acquire_wl_display สำหรับ Wayland) แต่ไม่มีการรองรับในระดับการเรนเดอร์หน้าต่างที่ถูกต้องในพื้นที่ 3 มิติและการซิงโครไนซ์อัตราการรีเฟรชหน้าจอ เป้าหมายของโครงการ xrdesktop คือการพัฒนาวิธีการที่จะอนุญาตให้ใช้อินเทอร์เฟซแบบคลาสสิกที่เน้นการแสดงผลหน้าจอ XNUMXD และการควบคุมแป้นพิมพ์และเมาส์ในสภาพแวดล้อมเสมือนจริง
ส่วนประกอบ xrdesktop ขยายหน้าต่างที่มีอยู่และตัวจัดการคอมโพสิตเพื่อใช้ระบบรันไทม์เสมือนจริงเพื่อเรนเดอร์หน้าต่างและเดสก์ท็อปในสภาพแวดล้อมเสมือนจริง 3 มิติ xrdesktop ส่งเสริมแนวคิดในการบูรณาการเข้ากับสภาพแวดล้อมเดสก์ท็อปที่มีอยู่โดยไม่จำเป็นต้องเรียกใช้ตัวจัดการคอมโพสิตพิเศษแยกต่างหาก และอนุญาตให้ใช้การกำหนดค่าแบบกำหนดเองที่มีอยู่กับจอภาพปกติเพื่อใช้กับหมวกกันน็อค XNUMX มิติ
สถาปัตยกรรมของโครงการแสดงถึงความสามารถในการรวมเข้ากับเดสก์ท็อปใดๆ แต่ในขั้นตอนการพัฒนาปัจจุบัน ส่วนประกอบเพื่อรองรับชุดหูฟังความเป็นจริงเสมือนได้ถูกนำไปใช้กับ KDE และ GNOME สำหรับ KDE การสนับสนุนหมวกกันน็อค 3 มิติจะดำเนินการผ่านปลั๊กอินที่คล้ายกับ Compiz และสำหรับ GNOME ผ่านชุดแพตช์สำหรับ GNOME Shell ส่วนประกอบเหล่านี้สะท้อนหน้าต่างที่มีอยู่ในสภาพแวดล้อมเสมือนจริงของหมวกกันน็อค 3 มิติในรูปแบบของฉากแยกหรือในโหมดโอเวอร์เลย์ ซึ่งหน้าต่างเดสก์ท็อปสามารถซ้อนทับบนแอปพลิเคชันความเป็นจริงเสมือนอื่น ๆ ที่ทำงานอยู่ได้
นอกเหนือจากเอ็นจิ้นการเรนเดอร์แล้ว xrdesktop ยังมีส่วนประกอบเพื่อการนำทางและการป้อนข้อมูลโดยใช้ตัวควบคุมเชิงพื้นที่พิเศษ เช่น Valve Index และ VIVE Wand Xrdesktop สร้างเหตุการณ์อินพุตปกติตามข้อมูลจากตัวควบคุม VR โดยจำลองการใช้แป้นพิมพ์และเมาส์
xrdesktop มีไลบรารีจำนวนมากที่สร้างพื้นผิวหน้าต่างสำหรับรันไทม์ VR โดยใช้ OpenVR รวมถึงระบบที่ใช้ API สำหรับเรนเดอร์เดสก์ท็อปเต็มรูปแบบในสภาพแวดล้อม 3 มิติ เนื่องจาก xrdesktop ไม่มีตัวจัดการหน้าต่างของตัวเอง จึงจำเป็นต้องมีการทำงานร่วมกับตัวจัดการหน้าต่างที่มีอยู่ (xrdesktop สามารถย้ายไปยังตัวจัดการหน้าต่าง X11 หรือ Wayland ได้) ในด้านไดรเวอร์กราฟิก การดำเนินการต้องใช้ไดรเวอร์ที่รองรับ Vulkan API และส่วนขยาย VK_KHR_external_memory
ส่วนประกอบหลักของ xrdesktop:
-
กุลข่าน - การเชื่อมโยง glib สำหรับ Vulkan โดยจัดให้มีคลาสสำหรับอุปกรณ์การประมวลผล เชเดอร์ และการเตรียมใช้งานพื้นผิวจากหน่วยความจำหรือบัฟเฟอร์ DMA -
จีเอ็กซ์อาร์ — API สำหรับการสร้างอินเทอร์เฟซโปรแกรมสำหรับการพัฒนาแอปพลิเคชันความเป็นจริงเสมือน ปัจจุบันรองรับเฉพาะ OpenVR แต่จะมีการเพิ่มการรองรับมาตรฐาน OpenXR ในอนาคตอันใกล้นี้ -
ลิบินพุตซินธ์ - ไลบรารีสำหรับการสังเคราะห์เหตุการณ์อินพุต เช่น การเคลื่อนไหวของเมาส์ การคลิก และการกดแป้นพิมพ์ ใช้งานในรูปแบบของแบ็กเอนด์สำหรับ xdo, xi2 และ Clutter -
xrเดสก์ท็อป - ไลบรารีสำหรับจัดการหน้าต่างในสภาพแวดล้อม 3 มิติ ชุดวิดเจ็ตและแบ็กเอนด์ที่มาพร้อมกับการเรนเดอร์ฉาก -
kwin-เอฟเฟกต์-xrdesktop иkdeplasma-แอปเพล็ต-xrdesktop - ปลั๊กอินสำหรับ KWin สำหรับการทำงานร่วมกับ KDE และแอปเพล็ตพลาสม่าสำหรับเปลี่ยน KWin เป็นโหมดเอาท์พุตบนหมวกกันน็อค 3 มิติ -
ชุดแพทช์ gnome-shell иgnome-shell-extension-xrdesktop.php? — ชุดแพตช์สำหรับ GNOME Shell เพื่อรวมการรองรับ xrdesktop และส่วนเสริมสำหรับการสลับเอาต์พุตเป็นหมวกกันน็อค 3 มิติใน GNOME Shell
โครงการสนับสนุนวิธีการต่างๆ มากมายในการจัดระเบียบการโต้ตอบกับเดสก์ท็อปและหน้าต่างในสภาพแวดล้อมเสมือนจริง ซึ่งสามารถใช้เพื่อจับภาพหน้าต่าง ปรับขนาด ย้าย หมุน ซ้อนทับบนทรงกลม เชื่อมต่อและซ่อนหน้าต่าง ใช้เมนูควบคุมและควบคุมพร้อมกันด้วย สองมือโดยใช้ตัวควบคุมหลายตัว
ที่มา: opennet.ru