โครงการ xrdesktop สำหรับการใช้ GNOME และ KDE ในชุดหูฟังความเป็นจริงเสมือน

นักพัฒนาจาก Collabora นำเสนอ โครงการ xrเดสก์ท็อปซึ่งด้วยการสนับสนุนของ Valve ไลบรารีกำลังได้รับการพัฒนาพร้อมองค์ประกอบสำหรับการโต้ตอบกับเดสก์ท็อปแบบดั้งเดิมภายในสภาพแวดล้อมสามมิติที่สร้างขึ้นโดยใช้แว่นตา 3 มิติและหมวกกันน็อคเสมือนจริง รหัสห้องสมุดเขียนด้วยภาษา C และ จัดจำหน่ายโดย ภายใต้ใบอนุญาต MIT ชุดประกอบสำเร็จรูป เตรียมไว้ สำหรับ Arch ลินุกซ์ и Ubuntu 19.04 / 18.04.

ปัจจุบัน Linux มีเครื่องมือสำหรับเอาต์พุตโดยตรงไปยังชุดหูฟังความเป็นจริงเสมือน (ส่วนขยาย Vulkan VK_EXT_acquire_xlib_display สำหรับ X11 และ VK_EXT_acquire_wl_display สำหรับ Wayland) แต่ไม่มีการรองรับในระดับการเรนเดอร์หน้าต่างที่ถูกต้องในพื้นที่ 3 มิติและการซิงโครไนซ์อัตราการรีเฟรชหน้าจอ เป้าหมายของโครงการ xrdesktop คือการพัฒนาวิธีการที่จะอนุญาตให้ใช้อินเทอร์เฟซแบบคลาสสิกที่เน้นการแสดงผลหน้าจอ XNUMXD และการควบคุมแป้นพิมพ์และเมาส์ในสภาพแวดล้อมเสมือนจริง

โครงการ xrdesktop สำหรับการใช้ GNOME และ KDE ในชุดหูฟังความเป็นจริงเสมือน

ส่วนประกอบ 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 สำหรับการใช้ GNOME และ KDE ในชุดหูฟังความเป็นจริงเสมือน

ส่วนประกอบหลักของ 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

เพิ่มความคิดเห็น