XR_EXT_spatial_mesh_tracking

Name String

XR_EXT_spatial_mesh_tracking

Tipo di estensione

Estensione dell'istanza

Numero di interno registrato

784

Revisione

1

Stato della ratifica

Non ratificato

Dipendenze di estensioni e versioni

XR_EXT_spatial_entity

Collaboratori

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

Panoramica

Questa estensione si basa su XR_EXT_spatial_entity e definisce le funzionalità spaziali per il monitoraggio della mesh triangolare dell'ambiente. La mesh triangolare fornita dalla funzionalità definita in questa estensione è destinata a essere utilizzata dalle applicazioni per determinare le collisioni dei contenuti virtuali con l'ambiente.

Funzionalità di tracciamento della mesh spaziale

Questa estensione definisce XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT come funzionalità spaziale per il monitoraggio della mesh triangolare dell'ambiente. Il monitoraggio della mesh di entità come piani e oggetti non è coperto da questa funzionalità e deve essere indicato dall'enumerazione del componente XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT per le rispettive funzionalità che monitorano queste entità.

XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT viene utilizzato per fornire all'applicazione una mesh impermeabile e una non impermeabile, a seconda delle funzionalità del runtime e della configurazione selezionata dall'applicazione.

Una mesh impermeabile è una mesh in cui gli spazi vuoti e le regioni non scansionate di tutte le dimensioni sono stati riempiti e formano una mesh stretta all'interno di un determinato blocco volumetrico. Come suggerisce il nome, se un'applicazione riempie d'acqua una mesh impermeabile, l'acqua non dovrebbe fuoriuscire dal volume impermeabile. Rendere una mesh scansionata impermeabile spesso richiede un'elevata potenza di calcolo, anche se alcuni runtime compensano questo costo elaborando la mesh in anticipo.

Supporto di runtime

Se il runtime supporta il monitoraggio della mesh triangolare dell'ambiente, deve indicarlo enumerando XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT in xrEnumerateSpatialCapabilitiesEXT .

Esistono tre possibili funzionalità di un runtime che supporta XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT:

Configurazione

La struttura XrSpatialCapabilityConfigurationMeshTrackingEXT è definita come:

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

Descrizioni dei membri

  • type è l'XrStructureType di questa struttura.
  • next è NULL o un puntatore alla struttura successiva in una catena di strutture.
  • capability è un XrSpatialCapabilityEXT e deve essere XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT .
  • enabledComponentCount è un uint32_t che descrive il conteggio degli elementi nell'array enabledComponents.
  • enabledComponents è un puntatore a un array di XrSpatialComponentTypeEXT .

Le applicazioni possono attivare la funzionalità spaziale XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT includendo un puntatore a una struttura XrSpatialCapabilityConfigurationMeshTrackingEXT in XrSpatialContextCreateInfoEXT :: capabilityConfigs .

Il runtime deve restituire XR_ERROR_VALIDATION_FAILURE se capability non è XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT .

Utilizzo valido (implicito)

Tracciamento di una mesh impermeabile

La struttura XrSpatialFeatureTrackWatertightMeshEXT è definita come:

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

Descrizioni dei membri

  • type è l'XrStructureType di questa struttura.
  • next è NULL o un puntatore alla struttura successiva in una catena di strutture.
  • enableWatertightMeshTracking indica se il runtime deve calcolare una mesh chiusa per l'ambiente scansionato.

I runtime che supportano il monitoraggio della mesh watertight devono enumerare XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT in xrEnumerateSpatialCapabilityFeaturesEXT . La funzionalità XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT consente alle applicazioni di attivare facoltativamente il tracciamento della mesh watertight e di attivare esplicitamente qualsiasi calcolo aggiuntivo che la generazione della mesh watertight potrebbe comportare.

Se XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT viene enumerato da xrEnumerateSpatialCapabilityFeaturesEXT per una determinata funzionalità, l'applicazione può concatenare XrSpatialFeatureTrackWatertightMeshEXT alla struttura di configurazione corrispondente di quella funzionalità per indicare se vuole che la mesh monitorata sia impermeabile o meno. Se l'applicazione imposta enableWatertightMeshTracking su XR_TRUE , il runtime deve calcolare e fornire all'applicazione una mesh impermeabile dell'ambiente. Se l'applicazione imposta enableWatertightMeshTracking su XR_FALSE , la mesh monitorata potrebbe comunque essere impermeabile se il runtime supporta solo il monitoraggio della mesh impermeabile, ad esempio nei casi in cui il runtime fornisce una mesh elaborata da un ambiente pre-scansionato.

Utilizzo valido (implicito)

Flusso di richiesta

Il diagramma seguente mostra come un'applicazione può configurare il contesto spaziale se vuole monitorare una mesh impermeabile dell'ambiente.

Sì

Sì

L'app richiede una mesh
watertight

L'app richiede…

Sì

Sì

No

No

Il runtime
supporta la funzionalità
"mesh tracking"

Runtime…

Sì

Sì

No

No

Il runtime
supporta la funzionalità
"traccia mesh impermeabile"

Runtime…

L'app crea un contesto spaziale con la funzionalità "mesh tracking capability" (funzionalità di monitoraggio della mesh) E la funzionalità "track watertight mesh" (monitoraggio della mesh impermeabile)

L'app crea audio spaziale…

L'app gestisce la mancanza di supporto delle funzionalità nel runtime corrente

L'app gestisce la mancanza di…

L'app elabora la mesh tracciata per creare una mesh impermeabile, magari con l'aiuto dell'utente per tappare i fori nella mesh.

L'app elabora la tr… Il testo non è SVG, impossibile visualizzarlo

Figura 29. Flusso dell'app per la richiesta di mesh impermeabile

Componenti garantiti

Un runtime che supporta XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT deve fornire i seguenti componenti spaziali come componenti garantiti di tutte le entità rilevate da questa funzionalità e deve enumerarli in xrEnumerateSpatialCapabilityComponentTypesEXT :

  • XR_SPATIAL_COMPONENT_TYPE_BOUNDED_3D_EXT
  • XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT
Componente 3D delimitato

Il componente 3D delimitato fornisce il centro e le estensioni dell'entità su cui si trova. I dati forniti da questo componente semplificano l'eliminazione da parte delle applicazioni delle entità che si trovano al di fuori del frustum di visualizzazione.

Per ulteriori dettagli, consulta 3D delimitato.

Componente Mesh 3D

Il componente mesh 3D fornisce la mesh 3D dell'entità su cui si trova. Per ulteriori dettagli, consulta Mesh 3D.

Segmentazione volumetrica (chunking)

Il runtime può segmentare la mesh in blocchi volumetrici (chunk) per semplificare l'eliminazione dei blocchi della mesh al di fuori del frustum di visualizzazione da parte delle applicazioni. In questo caso, il runtime deve trattare ogni blocco volumetrico come un'entità separata e avere l'insieme di Componenti garantiti su ogni entità (blocco volumetrico). Se il runtime fornisce una mesh impermeabile in questo modo, ogni blocco volumetrico non è impermeabile singolarmente, ma un gruppo di blocchi forma una mesh impermeabile. In questo scenario, il runtime deve aggiungere il componente XR_SPATIAL_COMPONENT_TYPE_PARENT_EXT su ogni entità (blocco volumetrico) e il valore dell'entità principale nei blocchi che insieme formano una mesh impermeabile deve essere lo stesso. In questo modo, l'applicazione può identificare quali blocchi formano insieme una mesh impermeabile.

Le mesh di blocchi volumetrici adiacenti possono condividere i vertici, ma i triangoli di un blocco volumetrico non devono sovrapporsi ai triangoli del volume adiacente.

Componenti facoltativi

Normali mesh

Dati dei componenti

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT utilizza XrSpatialBufferEXT per i suoi dati. XrSpatialBufferEXT :: bufferId rappresenta il buffer contenente le normali dei vertici della mesh dell'entità su cui si trova questo componente. XrSpatialBufferEXT :: bufferType deve essere XR_SPATIAL_BUFFER_TYPE_VECTOR3F_EXT . Un'entità che ha XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT deve avere anche XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Le normali fornite da questo componente devono corrispondere ai vertici forniti in XrSpatialMeshDataEXT :: vertexBuffer del componente XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT.

Struttura dell'elenco dei componenti per eseguire query sui dati

La struttura XrSpatialComponentMesh3DNormalsListEXT è definita come:

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

Descrizioni dei membri

  • type è l'XrStructureType di questa struttura.
  • next è NULL o un puntatore alla struttura successiva in una catena di strutture. Nessuna struttura di questo tipo è definita in OpenXR di base o in questa estensione.
  • meshNormalsCount è un uint32_t che descrive il conteggio degli elementi nell'array meshNormals.
  • meshNormals è un array di XrVector3f .

Il runtime deve restituire XR_ERROR_VALIDATION_FAILURE da xrQuerySpatialComponentDataEXT se XrSpatialComponentMesh3DNormalsListEXT si trova nella catena successiva di XrSpatialComponentDataQueryResultEXT :: next, ma XrSpatialComponentDataQueryConditionEXT :: componentTypeCount non è zero e XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT non è incluso in XrSpatialComponentDataQueryConditionEXT :: componentTypes .

Il runtime deve restituire XR_ERROR_SIZE_INSUFFICIENT da xrQuerySpatialComponentDataEXT se meshNormalsCount è inferiore a XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput .

Utilizzo valido (implicito)

Configurazione

Se XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT è enumerato in XrSpatialCapabilityComponentTypesEXT :: componentTypes per una funzionalità, l'applicazione può attivarla includendo l'enum nell'elenco XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents. Questo componente non richiede alcuna configurazione speciale per essere incluso nella catena successiva di XrSpatialCapabilityConfigurationBaseHeaderEXT . Tuttavia, le applicazioni sono incoraggiate a utilizzare questo componente e i relativi dati insieme al componente XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT.

Etichette semantiche della 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;

L'enumerazione XrSpatialMeshSemanticLabelEXT descrive un insieme di etichette semantiche per una mesh. Questo viene utilizzato da diversi componenti spaziali per dare significato ai valori uint8_t di un XrSpatialBufferEXT per le etichette semantiche per vertice o per triangolo. Consulta Etichette semantiche dei vertici della mesh ed Etichette semantiche dei triangoli della mesh

Le estensioni che vogliono estendere questo set di etichette semantiche o aggiungere un nuovo set per le mesh devono seguire le linee guida fornite in Linee guida per la progettazione e l'estensione delle etichette semantiche .

Descrizione enum

XR_SPATIAL_MESH_SEMANTIC_LABEL_UNCATEGORIZED_EXT

Il runtime non è riuscito a classificare il vertice o il triangolo.

XR_SPATIAL_MESH_SEMANTIC_LABEL_FLOOR_EXT

Il vertice o il triangolo viene mappato a un piano.

XR_SPATIAL_MESH_SEMANTIC_LABEL_WALL_EXT

Il vertice o il triangolo viene mappato su una parete.

XR_SPATIAL_MESH_SEMANTIC_LABEL_CEILING_EXT

Il vertice o il triangolo viene mappato a un soffitto.

XR_SPATIAL_MESH_SEMANTIC_LABEL_TABLE_EXT

Il vertice o il triangolo viene mappato a una tabella.

XR_SPATIAL_MESH_SEMANTIC_LABEL_CHAIR_EXT

Il vertice o il triangolo viene mappato a una sedia.

XR_SPATIAL_MESH_SEMANTIC_LABEL_SOFA_EXT

Il vertice o il triangolo viene mappato a un divano.

XR_SPATIAL_MESH_SEMANTIC_LABEL_BED_EXT

Il vertice o il triangolo viene mappato a un letto.

Etichette semantiche dei vertici della mesh

Panoramica dei componenti

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT fornisce una singola etichetta semantica per ogni vertice della mesh di un'entità spaziale.

Dati dei componenti

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT utilizza XrSpatialBufferEXT per i suoi dati. XrSpatialBufferEXT :: bufferId rappresenta il buffer contenente le etichette semantiche dei vertici della mesh dell'entità su cui si trova questo componente. XrSpatialBufferEXT :: bufferType deve essere XR_SPATIAL_BUFFER_TYPE_UINT8_EXT . I valori nel buffer corrispondono ai valori dell'enumerazione XrSpatialMeshSemanticLabelEXT. Un'entità che ha XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT deve avere anche il componente XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Le etichette semantiche fornite da questo componente devono corrispondere ai vertici forniti in XrSpatialMeshDataEXT :: vertexBuffer del componente XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Ciò implica che l'etichetta semantica in un determinato indice dei dati del buffer spaziale forniti da questo componente corrisponde al vertice nello stesso indice fornito da XrSpatialMeshDataEXT :: vertexBuffer . Ciò implica anche che xrGetSpatialBufferUint8EXT :: bufferCountOutput deve essere lo stesso valore per il buffer dell'etichetta semantica del vertice e XrSpatialMeshDataEXT :: vertexBuffer .

Struttura dell'elenco dei componenti per eseguire query sui dati

La struttura XrSpatialComponentMesh3DVertexSemanticLabelsListEXT è definita come:

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

Descrizioni dei membri

  • type è l'XrStructureType di questa struttura.
  • next è NULL o un puntatore alla struttura successiva in una catena di strutture. Nessuna struttura di questo tipo è definita in OpenXR di base o in questa estensione.
  • meshSemanticLabelsCount è un uint32_t che descrive il conteggio degli elementi nell'array meshSemanticLabels.
  • meshSemanticLabels è un array di XrSpatialBufferEXT .

Il runtime deve restituire XR_ERROR_VALIDATION_FAILURE da xrQuerySpatialComponentDataEXT se XrSpatialComponentMesh3DVertexSemanticLabelsListEXT si trova nella catena successiva di XrSpatialComponentDataQueryResultEXT :: next, ma XrSpatialComponentDataQueryConditionEXT :: componentTypeCount non è zero e XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT non è incluso in XrSpatialComponentDataQueryConditionEXT :: componentTypes .

Il runtime deve restituire XR_ERROR_SIZE_INSUFFICIENT da xrQuerySpatialComponentDataEXT se meshSemanticLabelsCount è inferiore a XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput .

Utilizzo valido (implicito)

Configurazione

Se XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT è enumerato in XrSpatialCapabilityComponentTypesEXT :: componentTypes per una funzionalità, l'applicazione può attivarla includendo l'enum nell'elenco XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents. Questo componente non richiede alcuna configurazione speciale per essere incluso nella catena successiva di XrSpatialCapabilityConfigurationBaseHeaderEXT . Tuttavia, le applicazioni sono incoraggiate a utilizzare questo componente e i relativi dati insieme al componente XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Questo componente non può essere attivato insieme a XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT . Se un'applicazione aggiunge sia XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT sia XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT a XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents , il runtime deve restituire XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT . Il runtime deve anche restituire XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT se l'applicazione tenta di attivare entrambi i componenti in XrSpatialContextEXT separati.

Etichette semantiche dei triangoli della mesh

Panoramica dei componenti

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT fornisce un'unica etichetta semantica per ogni triangolo della mesh di un'entità spaziale.

Dati dei componenti

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT utilizza XrSpatialBufferEXT per i suoi dati. XrSpatialBufferEXT :: bufferId rappresenta il buffer contenente le etichette semantiche dei triangoli della mesh dell'entità su cui si trova questo componente. XrSpatialBufferEXT :: bufferType deve essere XR_SPATIAL_BUFFER_TYPE_UINT8_EXT . I valori nel buffer corrispondono ai valori dell'enumerazione XrSpatialMeshSemanticLabelEXT. Un'entità che ha XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT deve avere anche il componente XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Le etichette semantiche fornite da questo componente devono corrispondere ai triangoli forniti in XrSpatialMeshDataEXT del componente XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Il conteggio degli elementi del buffer spaziale contenente le etichette semantiche dei triangoli è il conteggio degli elementi di XrSpatialMeshDataEXT :: indexBuffer diviso per 3. Ciò implica che l'etichetta semantica in un determinato indice dei dati del buffer spaziale forniti da questo componente corrisponde al triangolo rappresentato da [index * 3], [index * 3 + 1], [index * 3 + 2] in XrSpatialMeshDataEXT :: indexBuffer .

Struttura dell'elenco dei componenti per eseguire query sui dati

La struttura XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT è definita come:

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

Descrizioni dei membri

  • type è l'XrStructureType di questa struttura.
  • next è NULL o un puntatore alla struttura successiva in una catena di strutture. Nessuna struttura di questo tipo è definita in OpenXR di base o in questa estensione.
  • meshSemanticLabelsCount è un uint32_t che descrive il conteggio degli elementi nell'array meshSemanticLabels.
  • meshSemanticLabels è un array di XrSpatialBufferEXT .

Il runtime deve restituire XR_ERROR_VALIDATION_FAILURE da xrQuerySpatialComponentDataEXT se XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT si trova nella catena successiva di XrSpatialComponentDataQueryResultEXT :: next, ma XrSpatialComponentDataQueryConditionEXT :: componentTypeCount non è zero e XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT non è incluso in XrSpatialComponentDataQueryConditionEXT :: componentTypes .

Il runtime deve restituire XR_ERROR_SIZE_INSUFFICIENT da xrQuerySpatialComponentDataEXT se meshSemanticLabelsCount è inferiore a XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput .

Utilizzo valido (implicito)

Configurazione

Se XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT è enumerato in XrSpatialCapabilityComponentTypesEXT :: componentTypes per una funzionalità, l'applicazione può attivarla includendo l'enum nell'elenco XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents. Questo componente non richiede alcuna configurazione speciale per essere incluso nella catena successiva di XrSpatialCapabilityConfigurationBaseHeaderEXT . Tuttavia, le applicazioni sono incoraggiate a utilizzare questo componente e i relativi dati insieme al componente XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Questo componente non può essere attivato insieme a XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT . Se un'applicazione aggiunge sia XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT sia XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT a XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents , il runtime deve restituire XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT . Il runtime deve anche restituire XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT se l'applicazione tenta di attivare entrambi i componenti in XrSpatialContextEXT separati.

Nuove strutture

Nuovi enum

Nuove costanti enum

  • XR_EXT_SPATIAL_MESH_TRACKING_EXTENSION_NAME
  • XR_EXT_spatial_mesh_tracking_SPEC_VERSION
  • Estensione di XrSpatialCapabilityEXT :

    • XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT
  • Estensione di XrSpatialCapabilityFeatureEXT :

    • XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT
  • Estensione di 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
  • Estensione di 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

Problemi

Cronologia delle versioni

  • Revisione 1, 02/11/2025 (Nihav Jain, Google)

    • Descrizione iniziale dell'estensione