สตริงชื่อ
XR_ANDROID_unbounded_reference_space
ประเภทชิ้นงาน
การขยายเวลาอินสแตนซ์
หมายเลขต่อที่จดทะเบียน
468
การแก้ไข
1
การพึ่งพาส่วนขยายและเวอร์ชัน
วันที่แก้ไขล่าสุด
2024-09-12
สถานะ IP
ไม่มีการอ้างสิทธิ์ IP ที่รู้จัก
ผู้เขียน
Spencer Quin จาก Google
Jared Finder จาก Google
Fengtao Fan จาก Google
Lachlan Ford จาก Google
Nihav Jain จาก Google
Levana Chen จาก Google
ภาพรวม
ส่วนขยายนี้ช่วยให้แอปพลิเคชันสร้างUNBOUNDED_ANDROID
พื้นที่ทำงานอ้างอิงได้ พื้นที่อ้างอิงนี้ช่วยให้ผู้ชมเคลื่อนไหวได้อย่างอิสระผ่านสภาพแวดล้อมที่ซับซ้อน ซึ่งมักจะอยู่ห่างจากจุดเริ่มต้นหลายเมตร ในขณะเดียวกันก็เพิ่มประสิทธิภาพของระบบพิกัดที่อยู่ใกล้ผู้ชมอยู่เสมอ เมื่ออุปกรณ์ตรวจจับสภาพแวดล้อมมากขึ้นเพื่อสร้างความเข้าใจฉากได้ดียิ่งขึ้น จุดเริ่มต้นของพื้นที่อ้างอิงอาจเปลี่ยนไปพร้อมกับการปรับขนาดใหญ่ตามที่จำเป็นเพื่อรักษาการติดตามอุปกรณ์
หากต้องการสร้างUNBOUNDED_ANDROID
พื้นที่อ้างอิง แอปพลิเคชันสามารถตั้งค่า XrReferenceSpaceCreateInfo::referenceSpaceType
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
และส่งไปยัง xrCreateReferenceSpace
XrInstance instance; // previously initialized
XrSession session; // previously initialized
XrPosef pose; // previously initialized
// Use the new reference space type in the create info struct
XrReferenceSpaceCreateInfo createInfo = {
.type = XR_REFERENCE_SPACE_CREATE_INFO;
.next = nullptr;
.referenceSpaceType = XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID;
.poseInReferenceSpace = pose;
}
XrSpace referenceSpace;
CHK_XR(xrCreateReferenceSpace(session, &createInfo, &referenceSpace));
// After usage
CHK_XR(xrDestroySpace(referenceSpace));
UNBOUNDED_ANDROID
พื้นที่อ้างอิงจะกำหนดจุดเริ่มต้นที่ล็อกกับโลกของตำแหน่งหูฟังเมื่อการติดตามอุปกรณ์เริ่มต้นขึ้น โดยอิงตามแรงโน้มถ่วงเพื่อยกเว้นการเอียงขึ้นและลง โดย +X หมายถึงไปทางขวา +Y หมายถึงขึ้น และ -Z หมายถึงไปข้างหน้า
พื้นที่ UNBOUNDED_ANDROID
มีประโยชน์เมื่อแอปพลิเคชันต้องแสดงผลเนื้อหาระดับโลกที่ขยายเกินขอบเขตของ STAGE
รายการเดียว เช่น ทั้งชั้นหรือหลายชั้นของอาคาร
พื้นที่ UNBOUNDED_ANDROID
จะคงความเสถียรใกล้กับผู้ชมโดยปรับจุดเริ่มต้นเมื่อเวลาผ่านไป สามารถทําการปรับเล็กน้อยและมากได้ตามที่จําเป็นเพื่อรักษาการติดตามอุปกรณ์
- รันไทม์ไม่ควรจัดคิวเหตุการณ์ XrEventDataReferenceSpaceChangePending เพื่อตอบสนองการปรับเล็กน้อย
- รันไทม์ควรจัดคิวเหตุการณ์ XrEventDataReferenceSpaceChangePending เพื่อตอบสนองการปรับขนาดใหญ่ เช่น ระบบจะรีเซ็ตท่าทางในพื้นที่
UNBOUNDED_ANDROID
เนื่องจากสูญเสียการติดตาม และสร้างการติดตามขึ้นมาใหม่โดยประมาณจากโลกที่ตัดการเชื่อมต่อ ("แผนที่ใหม่") - ระบบจะอัปเดตความเข้าใจเกี่ยวกับโลกและปรับการติดตามอุปกรณ์อยู่เสมอ หากแอปพลิเคชันต้องใช้ตำแหน่งที่ถาวรไม่ว่าจะมีการรีเซ็ตการติดตามหรือไม่ก็ตาม ในกรณีนี้สามารถใช้หมุดได้
เหตุการณ์การเปลี่ยนแปลงพื้นที่อ้างอิง
สําหรับพารามิเตอร์ที่กําหนดโดยโครงสร้าง XrEventDataReferenceSpaceChangePending ที่แสดงผลเมื่อมีการทําการเปลี่ยนแปลงทั่วโลกหรือเพิ่มประสิทธิภาพเหตุการณ์การเปลี่ยนภาษา
typedef struct XrEventDataReferenceSpaceChangePending {
XrStructureType type;
const void* next;
XrSession session;
XrReferenceSpaceType referenceSpaceType;
XrTime changeTime;
XrBool32 poseValid;
XrPosef poseInPreviousSpace;
} XrEventDataReferenceSpaceChangePending;
คำอธิบายสมาชิก
referenceSpaceType
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
อยู่changeTime
จะแสดงXrTime
ที่แปลใหม่เสร็จสมบูรณ์แล้วposeValid
จะเท่ากับfalse
เนื่องจากค่าประมาณที่ตัดการเชื่อมต่อหรือtrue
หลังจากเชื่อมต่ออีกครั้งposeInPreviousSpace
จะใช้ไม่ได้เมื่อposeValid
เป็นfalse
เมื่อมุมมอง ตัวควบคุม หรือพื้นที่อื่นๆ สูญเสียการติดตามเมื่อเทียบกับUNBOUNDED_ANDROID
พื้นที่ แอปพลิเคชันสามารถรับค่า position
และ orientation
ที่คาดคะเนหรือค่าที่ทราบล่าสุดต่อไป ท่าทางที่อิงตามข้อมูลเหล่านี้อาจอิงตามการอัปเดตโมเดลคอ การหาตำแหน่งโดยประมาณจากค่าเฉื่อย หรือตำแหน่งที่ทราบล่าสุด แอปพลิเคชันจะถือว่ายังมีการตั้งค่า XR_SPACE_LOCATION_POSITION_VALID_BIT
และ XR_VIEW_STATE_POSITION_VALID_BIT
ต่อไปได้ แต่รันไทม์อาจล้าง XR_SPACE_LOCATION_POSITION_TRACKED_BIT
และ XR_VIEW_STATE_POSITION_TRACKED_BIT
เพื่อระบุว่าตำแหน่งดังกล่าวเป็นตำแหน่งที่อิงตามข้อมูลที่มีอยู่หรือเป็นตำแหน่งที่ทราบล่าสุด
เมื่อการติดตามกลับมาทำงานได้ รันไทม์อาจจัดศูนย์กลางจุดเริ่มต้นใหม่โดยพลการ เช่น ย้ายจุดเริ่มต้นให้สอดคล้องกับผู้ชม แอปพลิเคชันสามารถตรวจสอบค่า poseValid
ที่แสดงผลจากเหตุการณ์ XrEventDataReferenceSpaceChangePending เพื่อดูว่าพร้อมใช้งานหรือไม่
ประเภทออบเจ็กต์ใหม่
ประเภทการแจ้งว่าไม่เหมาะสมใหม่
ค่าคงที่ Enum ใหม่
เพิ่มรายการต่อไปนี้ในคําจํากัดความของ XrReferenceSpaceType
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
Enum ใหม่
โครงสร้างใหม่
ฟังก์ชันใหม่
ปัญหา
ประวัติเวอร์ชัน
- การแก้ไข 1, 12-09-2024 (Levana Chen)
- คำอธิบายส่วนขยายเริ่มต้น