Name String
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
スペースは、建物の 1 つのフロア全体や複数のフロアなど、単一の 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
になります。poseValid
がfalse
の場合、poseInPreviousSpace
は無効になります。
ビュー、コントローラ、または他のスペースで 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
がランタイムによってクリアされる場合があります。
トラッキングが復元されると、ランタイムは任意で原点を再調整することがあります。たとえば、視聴者と一致するように原点を移動することがあります。アプリケーションは、XrEventDataReferenceSpaceChangePending イベントから返された poseValid
値をチェックして、使用できるかどうかを判断できます。
新しいオブジェクト タイプ
新しいフラグタイプ
新しい列挙型定数
XrReferenceSpaceType 列挙型が拡張され、次のように変更されました。
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
新しい列挙型
新しい構造
新機能
問題
変更履歴
- リビジョン 1、2024 年 9 月 12 日(Levana Chen)
- 最初の拡張機能の説明