Chuỗi tên
XR_ANDROID_unbounded_reference_space
Loại phần mở rộng
Tiện ích thực thể
Số điện thoại mở rộng đã đăng ký
468
Bản sửa đổi
1
Phần mở rộng và phần phụ thuộc phiên bản
Ngày sửa đổi gần đây nhất
2024-09-12
Trạng thái IP
Không có thông báo xác nhận quyền sở hữu đối với tài sản trí tuệ nào.
Cộng tác viên
Spencer Quin, Google
Jared Finder, Google
Fengtao Fan, Google
Lachlan Ford, Google
Nihav Jain, Google
Levana Chen, Google
Tổng quan
Tiện ích này cho phép các ứng dụng tạo không gian tham chiếu UNBOUNDED_ANDROID. Không gian tham chiếu này cho phép người xem tự do di chuyển qua một môi trường phức tạp, thường cách vị trí bắt đầu nhiều mét, đồng thời luôn tối ưu hoá để hệ thống toạ độ ổn định gần người xem. Khi thiết bị cảm nhận được nhiều môi trường hơn để hiểu rõ hơn về cảnh, nguồn gốc của không gian tham chiếu có thể trôi dạt với các điều chỉnh lớn nếu cần để duy trì tính năng theo dõi thiết bị.
Để tạo không gian tham chiếu UNBOUNDED_ANDROID, ứng dụng có thể đặt
XrReferenceSpaceCreateInfo::referenceSpaceType
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID và chuyển đến
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));
Không gian tham chiếu UNBOUNDED_ANDROID thiết lập một gốc khoá toàn cầu của vị trí của tai nghe khi quá trình theo dõi thiết bị bắt đầu. Trục này được căn chỉnh theo trọng lực để loại trừ độ dốc và độ nghiêng, với +X ở bên phải, +Y ở trên và -Z ở phía trước.
Không gian UNBOUNDED_ANDROID rất hữu ích khi một ứng dụng cần hiển thị nội dung quy mô thế giới vượt quá giới hạn của một STAGE, chẳng hạn như toàn bộ tầng hoặc nhiều tầng của một tòa nhà.
Không gian UNBOUNDED_ANDROID duy trì độ ổn định gần người xem bằng cách điều chỉnh nguồn gốc theo thời gian. Phương pháp này có thể thực hiện các điều chỉnh nhỏ và lớn nếu cần để duy trì tính năng theo dõi thiết bị.
- Thời gian chạy không được đưa sự kiện XrEventDataReferenceSpaceChangePending vào hàng đợi để phản hồi các điều chỉnh nhỏ.
- Thời gian chạy nên đưa sự kiện XrEventDataReferenceSpaceChangePending vào hàng đợi để phản hồi các điều chỉnh lớn. Ví dụ: tư thế trong không gian UNBOUNDED_ANDROIDđược đặt lại do mất khả năng theo dõi và tính năng theo dõi được thiết lập lại trên một bản ước tính bị ngắt kết nối của thế giới ("bản đồ mới").
- Hệ thống liên tục cập nhật thông tin về thế giới và điều chỉnh tính năng theo dõi thiết bị. Nếu một ứng dụng yêu cầu vị trí ổn định bất kể việc đặt lại tính năng theo dõi, thì bạn có thể sử dụng một neo trong trường hợp này.
Sự kiện thay đổi không gian tham chiếu
Đối với các tham số do cấu trúc XrEventDataReferenceSpaceChangePending xác định, được trả về khi thay đổi thế giới hoặc tối ưu hoá các sự kiện bản địa hoá lại:
typedef struct XrEventDataReferenceSpaceChangePending {
    XrStructureType         type;
    const void*             next;
    XrSession               session;
    XrReferenceSpaceType    referenceSpaceType;
    XrTime                  changeTime;
    XrBool32                poseValid;
    XrPosef                 poseInPreviousSpace;
} XrEventDataReferenceSpaceChangePending;
Nội dung mô tả thành viên
- referenceSpaceTypeở trạng thái- XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID.
- changeTimesẽ đại diện cho- XrTimetại thời điểm hoàn tất quá trình bản địa hoá lại.
- poseValidsẽ là- falsedo ước tính bị ngắt kết nối hoặc- truesau khi kết nối lại.
- poseInPreviousSpacesẽ không hợp lệ khi- poseValidlà- false.
Khi chế độ xem, bộ điều khiển hoặc các không gian khác bị mất khả năng theo dõi so với không gian UNBOUNDED_ANDROID, các ứng dụng có thể tiếp tục nhận được các giá trị position và orientation được suy luận hoặc giá trị position và orientation được biết gần đây nhất. Ví dụ: các tư thế suy luận này có thể dựa trên nội dung cập nhật mô hình cổ, tính toán vị trí bằng quán tính hoặc vị trí được biết gần đây nhất. Ứng dụng có thể giả định rằng ứng dụng sẽ tiếp tục đặt XR_SPACE_LOCATION_POSITION_VALID_BIT và XR_VIEW_STATE_POSITION_VALID_BIT, nhưng XR_SPACE_LOCATION_POSITION_TRACKED_BIT và XR_VIEW_STATE_POSITION_TRACKED_BIT có thể bị môi trường thời gian chạy xoá để cho biết vị trí được suy luận hoặc được biết gần đây nhất theo cách này.
Khi khôi phục tính năng theo dõi, thời gian chạy có thể căn giữa lại nguồn gốc một cách tuỳ ý, ví dụ: di chuyển nguồn gốc trùng với người xem. Ứng dụng có thể kiểm tra giá trị poseValid được trả về từ sự kiện XrEventDataReferenceSpaceChangePending để xác định xem ứng dụng đã sẵn sàng sử dụng hay chưa.
Các loại đối tượng mới
Các loại cờ mới
Hằng số enum mới
Bổ sung enum XrReferenceSpaceType bằng:
- XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
Enum mới
Cấu trúc mới
Hàm mới
Vấn đề
Nhật ký phiên bản
- Bản sửa đổi 1, ngày 12 tháng 9 năm 2024 (Levana Chen)
- Nội dung mô tả ban đầu của tiện ích
 
OpenXR™ và biểu trưng OpenXR là các nhãn hiệu thuộc sở hữu của The Khronos Group Inc. và được đăng ký dưới dạng nhãn hiệu ở Trung Quốc, Liên minh Châu Âu, Nhật Bản và Vương quốc Anh.
