ส่วนขยาย XR_ANDROID_mouse_interaction ของ OpenXR

สตริงชื่อ

XR_ANDROID_mouse_interaction

ประเภทชิ้นงาน

การขยายเวลาอินสแตนซ์

หมายเลขต่อที่จดทะเบียน

705

การแก้ไข

1

การพึ่งพาส่วนขยายและเวอร์ชัน

OpenXR 1.0

วันที่แก้ไขล่าสุด

2024-09-06

สถานะ IP

ไม่มีการอ้างสิทธิ์ IP ที่รู้จัก

ผู้เขียน

Sharayu Shenoy จาก Google

Chiara Coetzee จาก Google

Levana Chen จาก Google

Spencer Quin จาก Google

ภาพรวม

ส่วนขยายนี้ให้ XrPath สำหรับการรับอินพุตเมาส์ และกำหนดท่าทางการดำเนินการที่ใช้กันโดยทั่วไป 1 ท่าสำหรับโปรไฟล์เมาส์ของผู้ใช้ ซึ่งรวมถึงทั้งอุปกรณ์เมาส์และอุปกรณ์แทร็กแพด

นอกจากนี้ ส่วนขยายนี้ยังเปิดตัวโปรไฟล์การโต้ตอบแบบใหม่ที่ออกแบบมาโดยเฉพาะสำหรับอุปกรณ์เมาส์เพื่อป้อนข้อมูลผ่านระบบการดำเนินการ OpenXR

ท่าทางการเคลื่อนไหวสำหรับการโต้ตอบของเมาส์

ท่าทางการทำงานต่อไปนี้ (เช่น "เล็ง") จะเปิดใช้ลำแสงเคอร์เซอร์ 3 มิติ ไม่ว่าอุปกรณ์เมาส์หรือแทร็กแพดจะเป็นผู้ป้อนข้อมูลการติดตามก็ตาม

ระบบจะรองรับเส้นทางย่อยของการดำเนินการ …/input/aim/pose ในโปรไฟล์การโต้ตอบทั้งหมดที่ใช้ได้กับเส้นทางผู้ใช้ /user/mouse รวมถึงโปรไฟล์การโต้ตอบที่เปิดใช้ผ่านส่วนขยาย

ท่าทางเล็ง

…/input/aim/pose ออกแบบมาเพื่อโต้ตอบกับวัตถุผ่านเคอร์เซอร์เมาส์ในพื้นที่ 3 มิติ เช่น การใช้เครื่องชี้เลเซอร์เสมือนเพื่อเล็งไปที่ปุ่มเสมือนบนผนังเป็นการโต้ตอบที่เหมาะกับท่าทาง "เล็ง"

ซึ่งเป็นท่า "เล็ง" เดียวกันกับที่ระบุไว้ในตัวระบุท่ามาตรฐาน โปรไฟล์ตัวควบคุมที่มีการติดตามทุกโปรไฟล์รองรับท่าทางนี้อยู่แล้ว

ตัวอย่างท่าทางเล็ง

ตำแหน่ง

ตำแหน่งของท่า "เล็ง" มักจะเป็นศีรษะของผู้ใช้ ซึ่งเป็นตำแหน่งเดียวกับศีรษะเมื่อตรวจพบการเคลื่อนไหวของเมาส์ ระบบจะคำนวณท่าทางเล็งสำหรับเมาส์เมื่อมีการเคลื่อนไหวเมาส์ ระบบจะเก็บตำแหน่งการเล็งล่าสุดที่ทราบไว้จนกว่าจะมีการเลื่อนเมาส์ครั้งถัดไป

การวางแนว

ระบบอาจใช้การวางแนวของท่าทาง "เล็ง" เพื่อแสดงผลเรย์พอยน์เตอร์ 3 มิติเพื่อโต้ตอบกับวัตถุเสมือน เช่น การคลิกปุ่มเมนูบนผนัง

ระบบจะคำนวณท่าทางเล็งสำหรับเมาส์เมื่อมีการเคลื่อนไหวของเมาส์ ระบบจะเก็บการวางแนวการเล็งล่าสุดที่ทราบไว้จนกว่าจะมีการขยับเมาส์ครั้งถัดไป

ทิศทาง -Z คือทิศทางไปข้างหน้าของท่าทางสัมผัสการเล็ง ซึ่งก็คือจุดที่ลำแสงเล็งอยู่

ระบบจะใช้การเคลื่อนไหว X,Y สัมพัทธ์ของเมาส์เพื่อคํานวณการเคลื่อนไหวสัมพัทธ์ของเมาส์ตามทรงกลมรอบศีรษะของผู้ใช้

ตัวอย่างท่าทางเล็ง

ระบบจะรองรับการเคลื่อนไหวของระดับโดยใช้การคลิกและการเลื่อนหลัก เมื่อการดําเนินการเพื่อย้ายในเชิงลึกอยู่ระหว่างดำเนินการ ตำแหน่งจะเลื่อนออกจากตำแหน่งหัวในทิศทาง Z บวกหรือลบตามรังสี ทั้งนี้ขึ้นอยู่กับค่าการเลื่อนที่เป็นบวกหรือลบ ระบบจะคงการเคลื่อนไหวของภาพระดับความลึกภายในทรงกลมรอบศีรษะของผู้ใช้

โปรไฟล์การโต้ตอบสําหรับอุปกรณ์เมาส์

โปรไฟล์การโต้ตอบของเมาส์ออกแบบมาสำหรับรันไทม์ที่ให้อินพุตของเมาส์โดยใช้อุปกรณ์เมาส์หรืออุปกรณ์แทร็กแพดที่มีปุ่มและปุ่มเลื่อน ซึ่งจะช่วยให้อุปกรณ์เมาส์และอุปกรณ์แทร็กแพดสามารถคลิก เลื่อน และโพสท่าการทํางานที่มักใช้กับระบบการทํางานของ OpenXR

เส้นทางโปรไฟล์การโต้ตอบ

  • /interaction_profiles/android/mouse_interaction

ใช้ได้กับเส้นทางผู้ใช้ระดับบนสุด

  • /user/mouse

เส้นทางคอมโพเนนต์ที่รองรับ

  • …/input/aim/pose
  • …/input/select/click
  • …/input/secondary/click
  • …/input/tertiary/click
  • …/input/scroll/value

โปรไฟล์การโต้ตอบนี้รองรับท่าทางการกระทำที่อธิบายในส่วนนี้ รวมถึงอินพุตการดําเนินการ 2 กลุ่มต่อไปนี้

การคลิกการดำเนินการ

โปรไฟล์การโต้ตอบนี้รองรับการดําเนินการ …/input/select/click, …/input/secondary/click และ /input/tertiary/click

…/input/select/click เป็นอินพุตบูลีน โดยค่า XR_TRUEบ่งบอกว่ามีการกดปุ่มหลักบนเมาส์หรือแทร็กแพด

…/input/secondary/click เป็นอินพุตบูลีน โดยค่า XR_TRUEบ่งบอกว่ามีการกดปุ่มรองบนเมาส์หรือแทร็กแพด

…/input/tertiary/click เป็นอินพุตบูลีน โดยค่า XR_TRUE จะระบุว่ามีการกดปุ่มเลื่อนของเมาส์หรือปุ่มรอง

การเลื่อน

โปรไฟล์การโต้ตอบนี้รองรับการดําเนินการ …/input/scroll/value

…/input/scroll/value เป็นคอมโพเนนต์อินพุต 2 มิติที่อยู่ระหว่าง -1 ถึง 1 เพื่อแมปกับการเลื่อนลงและเลื่อนขึ้น

ประเภทออบเจ็กต์ใหม่

ประเภทการแจ้งว่าไม่เหมาะสมใหม่

ค่าคงที่ Enum ใหม่

Enum ใหม่

โครงสร้างใหม่

ฟังก์ชันใหม่

ปัญหา

ประวัติเวอร์ชัน

  • การแก้ไข 1, 29-08-2024 (Levana Chen)
    • คำอธิบายส่วนขยายเริ่มต้น