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 toà 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ể điều chỉnh một chút và rất nhiều 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áiXR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
.changeTime
sẽ đại diện choXrTime
tại thời điểm hoàn tất quá trình bản địa hoá lại.poseValid
sẽ làfalse
do ước tính bị ngắt kết nối hoặctrue
sau khi kết nối lại.poseInPreviousSpace
sẽ không hợp lệ khiposeValid
làfalse
.
Khi thành phần hiển thị, 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
, ứng dụng có thể tiếp tục nhận được giá trị position
và orientation
được suy luận hoặc giá trị 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