XR_EXT_spatial_mesh_tracking

String Nama

XR_EXT_spatial_mesh_tracking

Jenis Ekstensi

Ekstensi instance

Nomor Ekstensi Terdaftar

784

Revisi

1

Status Ratifikasi

Belum diratifikasi

Dependensi Ekstensi dan Versi

XR_EXT_spatial_entity

Kontributor

Nihav Jain, Google
Natalie Fleury, Meta
Yuichi Taguchi, Meta
Ron Bessems, Meta
Yin Li, Microsoft
Jimmy Alamparambil, ByteDance
Zhipeng Liu, ByteDance
Jun Yan, ByteDance

Ringkasan

Ekstensi ini dibuat berdasarkan XR_EXT_spatial_entity dan menentukan kemampuan spasial untuk melacak mesh segitiga lingkungan. Mesh segitiga yang disediakan oleh kemampuan yang ditentukan dalam ekstensi ini dimaksudkan untuk digunakan oleh aplikasi guna menentukan tabrakan konten virtual dengan lingkungan.

Kemampuan Pelacakan Mesh Spasial

Ekstensi ini menentukan XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT sebagai kemampuan spasial untuk melacak mesh segitiga lingkungan. Pelacakan mesh entity seperti bidang dan objek tidak tercakup dalam kemampuan ini dan harus ditunjukkan oleh enumerasi komponen XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT untuk kemampuan masing-masing yang melacak entity tersebut.

XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT digunakan untuk menyediakan mesh kedap air dan tidak kedap air ke aplikasi, bergantung pada kemampuan runtime dan konfigurasi yang dipilih oleh aplikasi.

Mesh kedap air adalah mesh yang celah dan area yang tidak dipindainya dalam semua ukuran telah diisi dan membentuk mesh yang rapat dalam blok volumetrik tertentu. Seperti namanya, jika aplikasi mengisi air di dalam mesh kedap air, seharusnya tidak ada air yang bocor dari volume kedap air. Membuat mesh yang dipindai menjadi kedap air sering kali memerlukan komputasi yang sangat tinggi, meskipun beberapa runtime mengimbangi biaya tersebut dengan memproses mesh terlebih dahulu.

Dukungan Runtime

Jika runtime mendukung pelacakan untuk mesh segitiga lingkungan, runtime harus menunjukkan hal ini dengan menghitung XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT di xrEnumerateSpatialCapabilitiesEXT .

Ada 3 kemungkinan kemampuan runtime yang mendukung XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT -

Konfigurasi

Struktur XrSpatialCapabilityConfigurationMeshTrackingEXT didefinisikan sebagai:

typedef struct XrSpatialCapabilityConfigurationMeshTrackingEXT {
    XrStructureType                     type;
    const void*                         next;
    XrSpatialCapabilityEXT              capability;
    uint32_t                            enabledComponentCount;
    const XrSpatialComponentTypeEXT*    enabledComponents;
} XrSpatialCapabilityConfigurationMeshTrackingEXT;

Deskripsi Anggota

  • type adalah XrStructureType dari struktur ini.
  • next adalah NULL atau pointer ke struktur berikutnya dalam rantai struktur.
  • capability adalah XrSpatialCapabilityEXT dan harus berupa XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT .
  • enabledComponentCount adalah uint32_t yang menjelaskan jumlah elemen dalam array enabledComponents.
  • enabledComponents adalah pointer ke array XrSpatialComponentTypeEXT .

Aplikasi dapat mengaktifkan kemampuan spasial XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT dengan menyertakan pointer ke struktur XrSpatialCapabilityConfigurationMeshTrackingEXT di XrSpatialContextCreateInfoEXT :: capabilityConfigs .

Runtime harus menampilkan XR_ERROR_VALIDATION_FAILURE jika capability bukan XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT .

Penggunaan yang Valid (Implisit)

Melacak Watertight Mesh

Struktur XrSpatialFeatureTrackWatertightMeshEXT didefinisikan sebagai:

typedef struct XrSpatialFeatureTrackWatertightMeshEXT {
    XrStructureType    type;
    const void*        next;
    XrBool32           enableWatertightMeshTracking;
} XrSpatialFeatureTrackWatertightMeshEXT;

Deskripsi Anggota

  • type adalah XrStructureType dari struktur ini.
  • next adalah NULL atau pointer ke struktur berikutnya dalam rantai struktur.
  • enableWatertightMeshTracking menunjukkan apakah runtime harus menghitung mesh kedap air untuk lingkungan yang dipindai.

Runtime yang mendukung pelacakan mesh kedap air harus menghitung XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT di xrEnumerateSpatialCapabilityFeaturesEXT . Fitur XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT memungkinkan aplikasi mengaktifkan pelacakan mesh kedap air secara opsional dan secara eksplisit memilih komputasi tambahan yang mungkin dikenakan oleh pembuatan mesh kedap air.

Jika XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT dihitung oleh xrEnumerateSpatialCapabilityFeaturesEXT untuk kemampuan tertentu, aplikasi dapat merantai XrSpatialFeatureTrackWatertightMeshEXT ke struktur konfigurasi yang sesuai dari kemampuan tersebut untuk menunjukkan apakah aplikasi menginginkan mesh yang dilacak kedap air atau tidak. Jika aplikasi menetapkan enableWatertightMeshTracking ke XR_TRUE , runtime harus menghitung dan menyediakan mesh lingkungan yang kedap air untuk aplikasi. Jika aplikasi menetapkan enableWatertightMeshTracking ke XR_FALSE , mesh yang dilacak mungkin masih kedap air jika runtime hanya mendukung pelacakan mesh kedap air, misalnya dalam kasus saat runtime menyediakan mesh yang diproses dari lingkungan yang dipindai sebelumnya.

Penggunaan yang Valid (Implisit)

Alur Aplikasi

Diagram di bawah menunjukkan cara aplikasi dapat mengonfigurasi konteks spasial jika ingin melacak mesh kedap air dari lingkungan.

Ya

Ya

Aplikasi memerlukan
mesh kedap air

Aplikasi perlu...

Ya

Ya

Tidak

Tidak

Runtime
mendukung kemampuan "pelacakan mesh"

Runtime...

Ya

Ya

Tidak

Tidak

Runtime
mendukung fitur "lacak mesh kedap air"

Runtime...

Aplikasi membuat konteks spasial dengan "kemampuan pelacakan mesh" DAN fitur "melacak mesh kedap air"

Aplikasi membuat spasial...

Aplikasi menangani kurangnya dukungan fitur pada runtime saat ini

Aplikasi menangani tidak adanya...

Aplikasi memproses mesh yang dilacak untuk membuat mesh kedap air, mungkin dengan bantuan pengguna dalam menambal lubang pada mesh

Aplikasi memproses tr... Teks bukan SVG - tidak dapat ditampilkan

Gambar 29. Alur aplikasi untuk meminta mesh kedap air

Komponen Dijamin

Runtime yang mendukung XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT harus menyediakan komponen spasial berikut sebagai komponen yang dijamin dari semua entity yang ditemukan oleh kemampuan ini dan harus menghitungnya dalam xrEnumerateSpatialCapabilityComponentTypesEXT :

  • XR_SPATIAL_COMPONENT_TYPE_BOUNDED_3D_EXT
  • XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT
Komponen 3D Terbatas

Komponen 3D yang dibatasi memberikan pusat dan batas entity tempat komponen tersebut berada. Data yang disediakan oleh komponen ini memudahkan aplikasi untuk memangkas entity yang berada di luar frustum tampilannya.

Lihat 3D Terbatas untuk mengetahui detail selengkapnya.

Komponen 3D Mesh

Komponen mesh 3D menyediakan mesh 3D dari entity tempatnya berada. Lihat Mesh 3D untuk mengetahui detail selengkapnya.

Segmentasi Volumetrik (Chunking)

Runtime dapat menyegmentasikan mesh menjadi blok volumetrik (potongan) untuk memudahkan aplikasi memangkas blok mesh di luar frustum tampilannya. Dalam kasus seperti ini, runtime harus memperlakukan setiap blok volumetrik tersebut sebagai entitas terpisah dan memiliki kumpulan Komponen yang Dijamin pada setiap entitas tersebut (blok volumetrik). Jika runtime menyediakan mesh kedap air dengan cara ini, setiap blok volumetrik secara individual tidak kedap air, tetapi sekelompok blok bersama-sama membentuk mesh kedap air. Dalam skenario seperti ini, runtime harus menambahkan komponen XR_SPATIAL_COMPONENT_TYPE_PARENT_EXT pada setiap entity (blok volumetrik), dan nilai parent entity di seluruh blok yang bersama-sama membentuk mesh kedap air harus sama. Hal ini memungkinkan aplikasi mengidentifikasi potongan mana yang bersama-sama membentuk mesh kedap air.

Mesh blok volumetrik yang berdekatan dapat berbagi verteks, tetapi segitiga dari satu blok volumetrik tidak boleh tumpang-tindih dengan segitiga volume yang berdekatan.

Komponen Opsional

Mesh Normals

Data komponen

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT menggunakan XrSpatialBufferEXT untuk datanya. XrSpatialBufferEXT :: bufferId mewakili buffer yang berisi normal verteks mesh entity tempat komponen ini berada. XrSpatialBufferEXT :: bufferType harus berupa XR_SPATIAL_BUFFER_TYPE_VECTOR3F_EXT . Entitas yang memiliki XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT juga harus memiliki XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Normal yang disediakan oleh komponen ini harus sesuai dengan verteks yang disediakan di XrSpatialMeshDataEXT :: vertexBuffer dari komponen XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT.

Struktur daftar komponen untuk mengkueri data

Struktur XrSpatialComponentMesh3DNormalsListEXT didefinisikan sebagai:

typedef struct XrSpatialComponentMesh3DNormalsListEXT {
    XrStructureType        type;
    void*                  next;
    uint32_t               meshNormalsCount;
    XrSpatialBufferEXT*    meshNormals;
} XrSpatialComponentMesh3DNormalsListEXT;

Deskripsi Anggota

  • type adalah XrStructureType dari struktur ini.
  • next adalah NULL atau pointer ke struktur berikutnya dalam rantai struktur. Tidak ada struktur seperti itu yang ditentukan dalam OpenXR inti atau ekstensi ini.
  • meshNormalsCount adalah uint32_t yang menjelaskan jumlah elemen dalam array meshNormals.
  • meshNormals adalah array XrVector3f .

Runtime harus menampilkan XR_ERROR_VALIDATION_FAILURE dari xrQuerySpatialComponentDataEXT jika XrSpatialComponentMesh3DNormalsListEXT berada dalam rantai berikutnya dari XrSpatialComponentDataQueryResultEXT :: next, tetapi XrSpatialComponentDataQueryConditionEXT :: componentTypeCount bukan nol dan XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT tidak disertakan dalam XrSpatialComponentDataQueryConditionEXT :: componentTypes .

Runtime harus menampilkan XR_ERROR_SIZE_INSUFFICIENT dari xrQuerySpatialComponentDataEXT jika meshNormalsCount kurang dari XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput .

Penggunaan yang Valid (Implisit)

Konfigurasi

Jika XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT dihitung dalam XrSpatialCapabilityComponentTypesEXT :: componentTypes untuk beberapa kemampuan, aplikasi dapat mengaktifkannya dengan menyertakan enum dalam daftar XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents. Komponen ini tidak memerlukan konfigurasi khusus untuk disertakan dalam rantai XrSpatialCapabilityConfigurationBaseHeaderEXT berikutnya. Namun, aplikasi dianjurkan untuk menggunakan komponen ini dan datanya bersama dengan komponen XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT.

Label Semantik Mesh

typedef enum XrSpatialMeshSemanticLabelEXT {
    XR_SPATIAL_MESH_SEMANTIC_LABEL_UNCATEGORIZED_EXT = 1,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_FLOOR_EXT = 2,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_WALL_EXT = 3,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_CEILING_EXT = 4,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_TABLE_EXT = 5,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_CHAIR_EXT = 6,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_SOFA_EXT = 7,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_BED_EXT = 8,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_MAX_ENUM_EXT = 0x7FFFFFFF
} XrSpatialMeshSemanticLabelEXT;

Enumerasi XrSpatialMeshSemanticLabelEXT menjelaskan kumpulan label semantik untuk mesh. Hal ini digunakan oleh berbagai komponen spasial untuk memberikan makna pada nilai uint8_t dari XrSpatialBufferEXT untuk label semantik per verteks atau per segitiga. Lihat Label Semantik Vertex Mesh dan Label Semantik Segitiga Mesh

Ekstensi yang ingin memperluas set label semantik ini atau menambahkan set baru miliknya sendiri untuk mesh, harus mengikuti panduan yang diberikan dalam Panduan Desain & Ekstensi Label Semantik .

Deskripsi Enum

XR_SPATIAL_MESH_SEMANTIC_LABEL_UNCATEGORIZED_EXT

Runtime tidak dapat mengklasifikasikan verteks atau segitiga.

XR_SPATIAL_MESH_SEMANTIC_LABEL_FLOOR_EXT

Verteks atau segitiga dipetakan ke lantai.

XR_SPATIAL_MESH_SEMANTIC_LABEL_WALL_EXT

Vertex atau segitiga dipetakan ke dinding.

XR_SPATIAL_MESH_SEMANTIC_LABEL_CEILING_EXT

Verteks atau segitiga dipetakan ke langit-langit.

XR_SPATIAL_MESH_SEMANTIC_LABEL_TABLE_EXT

Vertex atau segitiga dipetakan ke tabel.

XR_SPATIAL_MESH_SEMANTIC_LABEL_CHAIR_EXT

Vertex atau segitiga dipetakan ke kursi.

XR_SPATIAL_MESH_SEMANTIC_LABEL_SOFA_EXT

Vertex atau segitiga dipetakan ke sofa.

XR_SPATIAL_MESH_SEMANTIC_LABEL_BED_EXT

Vertex atau segitiga dipetakan ke tempat tidur.

Label Semantik Vertex Mesh

Ringkasan Komponen

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT memberikan satu label semantik untuk setiap verteks mesh entity spasial.

Data komponen

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT menggunakan XrSpatialBufferEXT untuk datanya. XrSpatialBufferEXT :: bufferId mewakili buffer yang berisi label semantik verteks mesh entity tempat komponen ini berada. XrSpatialBufferEXT :: bufferType harus berupa XR_SPATIAL_BUFFER_TYPE_UINT8_EXT . Nilai dalam buffer sesuai dengan nilai enumerasi XrSpatialMeshSemanticLabelEXT. Entitas yang memiliki XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT juga harus memiliki komponen XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Label semantik yang disediakan oleh komponen ini harus sesuai dengan verteks yang disediakan di XrSpatialMeshDataEXT :: vertexBuffer dari komponen XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Artinya, label semantik pada indeks tertentu dari data buffering spasial yang disediakan oleh komponen ini sesuai dengan verteks pada indeks yang sama yang disediakan oleh XrSpatialMeshDataEXT :: vertexBuffer . Hal ini juga berarti bahwa xrGetSpatialBufferUint8EXT :: bufferCountOutput harus memiliki nilai yang sama untuk buffer label semantik verteks dan XrSpatialMeshDataEXT :: vertexBuffer .

Struktur daftar komponen untuk mengkueri data

Struktur XrSpatialComponentMesh3DVertexSemanticLabelsListEXT didefinisikan sebagai:

typedef struct XrSpatialComponentMesh3DVertexSemanticLabelsListEXT {
    XrStructureType        type;
    void*                  next;
    uint32_t               meshSemanticLabelsCount;
    XrSpatialBufferEXT*    meshSemanticLabels;
} XrSpatialComponentMesh3DVertexSemanticLabelsListEXT;

Deskripsi Anggota

  • type adalah XrStructureType dari struktur ini.
  • next adalah NULL atau pointer ke struktur berikutnya dalam rantai struktur. Tidak ada struktur seperti itu yang ditentukan dalam OpenXR inti atau ekstensi ini.
  • meshSemanticLabelsCount adalah uint32_t yang menjelaskan jumlah elemen dalam array meshSemanticLabels.
  • meshSemanticLabels adalah array XrSpatialBufferEXT .

Runtime harus menampilkan XR_ERROR_VALIDATION_FAILURE dari xrQuerySpatialComponentDataEXT jika XrSpatialComponentMesh3DVertexSemanticLabelsListEXT berada dalam rantai berikutnya dari XrSpatialComponentDataQueryResultEXT :: next, tetapi XrSpatialComponentDataQueryConditionEXT :: componentTypeCount bukan nol dan XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT tidak disertakan dalam XrSpatialComponentDataQueryConditionEXT :: componentTypes .

Runtime harus menampilkan XR_ERROR_SIZE_INSUFFICIENT dari xrQuerySpatialComponentDataEXT jika meshSemanticLabelsCount kurang dari XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput .

Penggunaan yang Valid (Implisit)

Konfigurasi

Jika XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT dihitung dalam XrSpatialCapabilityComponentTypesEXT :: componentTypes untuk beberapa kemampuan, aplikasi dapat mengaktifkannya dengan menyertakan enum dalam daftar XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents. Komponen ini tidak memerlukan konfigurasi khusus untuk disertakan dalam rantai XrSpatialCapabilityConfigurationBaseHeaderEXT berikutnya. Namun, aplikasi dianjurkan untuk menggunakan komponen ini dan datanya bersama dengan komponen XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Komponen ini tidak dapat diaktifkan bersama dengan XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT . Jika aplikasi menambahkan XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT dan XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT ke XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents , runtime harus menampilkan XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT . Runtime juga harus menampilkan XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT jika aplikasi mencoba mengaktifkan kedua komponen dalam XrSpatialContextEXT terpisah.

Label Semantik Segitiga Mesh

Ringkasan Komponen

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT memberikan satu label semantik untuk setiap segitiga mesh entity spasial.

Data komponen

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT menggunakan XrSpatialBufferEXT untuk datanya. XrSpatialBufferEXT :: bufferId mewakili buffer yang berisi label semantik segitiga mesh entity tempat komponen ini berada. XrSpatialBufferEXT :: bufferType harus berupa XR_SPATIAL_BUFFER_TYPE_UINT8_EXT . Nilai dalam buffer sesuai dengan nilai enumerasi XrSpatialMeshSemanticLabelEXT. Entitas yang memiliki XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT juga harus memiliki komponen XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Label semantik yang disediakan oleh komponen ini harus sesuai dengan segitiga yang disediakan di XrSpatialMeshDataEXT komponen XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Jumlah elemen buffer spasial yang berisi label semantik segitiga adalah jumlah elemen XrSpatialMeshDataEXT :: indexBuffer dibagi 3. Artinya, label semantik pada indeks tertentu dari data buffering spasial yang disediakan oleh komponen ini sesuai dengan segitiga yang diwakili oleh [index * 3], [index * 3 + 1], [index * 3 + 2] di XrSpatialMeshDataEXT :: indexBuffer .

Struktur daftar komponen untuk mengkueri data

Struktur XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT didefinisikan sebagai:

typedef struct XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT {
    XrStructureType        type;
    void*                  next;
    uint32_t               meshSemanticLabelsCount;
    XrSpatialBufferEXT*    meshSemanticLabels;
} XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT;

Deskripsi Anggota

  • type adalah XrStructureType dari struktur ini.
  • next adalah NULL atau pointer ke struktur berikutnya dalam rantai struktur. Tidak ada struktur seperti itu yang ditentukan dalam OpenXR inti atau ekstensi ini.
  • meshSemanticLabelsCount adalah uint32_t yang menjelaskan jumlah elemen dalam array meshSemanticLabels.
  • meshSemanticLabels adalah array XrSpatialBufferEXT .

Runtime harus menampilkan XR_ERROR_VALIDATION_FAILURE dari xrQuerySpatialComponentDataEXT jika XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT berada dalam rantai berikutnya dari XrSpatialComponentDataQueryResultEXT :: next, tetapi XrSpatialComponentDataQueryConditionEXT :: componentTypeCount bukan nol dan XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT tidak disertakan dalam XrSpatialComponentDataQueryConditionEXT :: componentTypes .

Runtime harus menampilkan XR_ERROR_SIZE_INSUFFICIENT dari xrQuerySpatialComponentDataEXT jika meshSemanticLabelsCount kurang dari XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput .

Penggunaan yang Valid (Implisit)

Konfigurasi

Jika XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT dihitung dalam XrSpatialCapabilityComponentTypesEXT :: componentTypes untuk beberapa kemampuan, aplikasi dapat mengaktifkannya dengan menyertakan enum dalam daftar XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents. Komponen ini tidak memerlukan konfigurasi khusus untuk disertakan dalam rantai XrSpatialCapabilityConfigurationBaseHeaderEXT berikutnya. Namun, aplikasi dianjurkan untuk menggunakan komponen ini dan datanya bersama dengan komponen XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Komponen ini tidak dapat diaktifkan bersama dengan XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT . Jika aplikasi menambahkan XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT dan XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT ke XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents , runtime harus menampilkan XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT . Runtime juga harus menampilkan XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT jika aplikasi mencoba mengaktifkan kedua komponen dalam XrSpatialContextEXT terpisah.

Struktur Baru

Enum Baru

Konstanta Enum Baru

  • XR_EXT_SPATIAL_MESH_TRACKING_EXTENSION_NAME
  • XR_EXT_spatial_mesh_tracking_SPEC_VERSION
  • Memperluas XrSpatialCapabilityEXT :

    • XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT
  • Memperluas XrSpatialCapabilityFeatureEXT :

    • XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT
  • Memperluas XrSpatialComponentTypeEXT :

    • XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT
    • XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT
    • XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT
  • Memperluas XrStructureType :

    • XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_MESH_TRACKING_EXT
    • XR_TYPE_SPATIAL_COMPONENT_MESH_3D_NORMALS_LIST_EXT
    • XR_TYPE_SPATIAL_COMPONENT_MESH_3D_TRIANGLE_SEMANTIC_LABELS_LIST_EXT
    • XR_TYPE_SPATIAL_COMPONENT_MESH_3D_VERTEX_SEMANTIC_LABELS_LIST_EXT
    • XR_TYPE_SPATIAL_FEATURE_TRACK_WATERTIGHT_MESH_EXT

Masalah

Riwayat Versi

  • Revisi 1, 02-11-2025 (Nihav Jain, Google)

    • Deskripsi ekstensi awal