XR_EXT_spatial_mesh_tracking

Name String

XR_EXT_spatial_mesh_tracking

Uzantı Türü

Örnek uzantısı

Kayıtlı Dahili Numara

784

Düzeltme

1

Onay Durumu

Onaylanmadı

Uzantı ve Sürüm Bağımlılıkları

XR_EXT_spatial_entity

Katkıda bulunanlar

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

Genel Bakış

Bu uzantı, XR_EXT_spatial_entity üzerine kuruludur ve ortamın üçgen örgüsünü izlemek için uzamsal özellikleri tanımlar. Bu uzantıda tanımlanan özellik tarafından sağlanan üçgen ağ, uygulamalar tarafından sanal içeriğin çevreyle çarpışmalarını belirlemek için kullanılmak üzere tasarlanmıştır.

Uzamsal Mesh İzleme Özelliği

Bu uzantı, ortamın üçgen örgüsünü izlemek için uzamsal bir özellik olarak XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT tanımlar. Düzlemler ve nesneler gibi varlıkların ağını izleme bu özellik kapsamında değildir ve bunun yerine, bu varlıkları izleyen ilgili özellikler için XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT bileşeninin numaralandırılmasıyla belirtilmesi gerekir.

XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT, çalışma zamanının özelliklerine ve uygulama tarafından seçilen yapılandırmaya bağlı olarak uygulamaya hem su geçirmez hem de su geçirmez olmayan bir ağ sağlamak için kullanılır.

Su geçirmez ağ, her boyuttaki boşlukların ve taranmamış bölgelerin doldurulduğu ve belirli bir hacimsel blok içinde sıkı bir ağ oluşturduğu bir ağdır. Adından da anlaşılacağı üzere, bir uygulama su geçirmez bir ağın içine su doldurursa su geçirmez hacimden su sızmamalıdır. Taranmış bir ağı su geçirmez hale getirmek genellikle çok yüksek işlem gücü gerektirir ancak bazı çalışma zamanları, ağı önceden işleyerek bu maliyeti dengeler.

Çalışma Zamanı Desteği

Çalışma zamanı, ortamın üçgen örgüsünün izlenmesini destekliyorsa bunu xrEnumerateSpatialCapabilitiesEXT içinde XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT değerini numaralandırarak belirtmesi gerekir.

XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT destekleyen bir çalışma zamanının 3 olası özelliği vardır:

  • Çalışma zamanı yalnızca su geçirmez olmayan ağ izlemeyi destekler. Bu durumda çalışma zamanı, xrEnumerateSpatialCapabilitiesEXT içinde XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT değerini listeler ancak xrEnumerateSpatialCapabilityFeaturesEXT içinde XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT değerini listelememelidir (bkz. Su Geçirmez Mesh İzleme).
  • Çalışma zamanı, hem su geçirmez hem de su geçirmez olmayan ağ izlemeyi destekler. Bu durumda çalışma zamanı, xrEnumerateSpatialCapabilitiesEXT içinde XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT değerini listeler ve uygulamadan gelen su geçirmez ağ izleme isteklerini etkinleştirmek için xrEnumerateSpatialCapabilityFeaturesEXT içinde XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT değerini de listelemesi gerekir (Su Geçirmez Ağ İzleme bölümüne bakın).
  • Çalışma zamanı yalnızca su geçirmez ağ izlemeyi destekler. Bu durumda çalışma zamanı, xrEnumerateSpatialCapabilitiesEXT içinde XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT değerini listeler ve uygulamaya su geçirmez ağ takibini desteklediğini belirtmek için xrEnumerateSpatialCapabilityFeaturesEXT içinde XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT değerini de listelemesi gerekir (Su Geçirmez Ağ Takibi bölümüne bakın). Bu özel durumda, çalışma zamanı, XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT yapılandırmasından bağımsız olarak uygulamaya her zaman su geçirmez bir ağ döndürür.

Yapılandırma

XrSpatialCapabilityConfigurationMeshTrackingEXT yapısı şu şekilde tanımlanır:

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

Üye Açıklamaları

  • type, bu yapının XrStructureType değeridir.
  • next, NULL veya bir yapı zincirindeki sonraki yapıya işaret eden bir göstergedir.
  • capability, bir XrSpatialCapabilityEXT'tir ve XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT olmalıdır.
  • enabledComponentCount, enabledComponents dizisindeki öğe sayısını açıklayan bir uint32_t değeridir.
  • enabledComponents, XrSpatialComponentTypeEXT dizisine işaret eden bir göstergedir.

Uygulamalar, XrSpatialContextCreateInfoEXT :: capabilityConfigs içinde bir XrSpatialCapabilityConfigurationMeshTrackingEXT yapısına işaretçi ekleyerek XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT uzamsal özelliğini etkinleştirebilir.

capability, XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT değilse çalışma zamanı XR_ERROR_VALIDATION_FAILURE değerini döndürmelidir.

Geçerli Kullanım (Dolaylı)

Su Geçirmez Mesh'i İzleme

XrSpatialFeatureTrackWatertightMeshEXT yapısı şu şekilde tanımlanır:

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

Üye Açıklamaları

  • type, bu yapının XrStructureType değeridir.
  • next, NULL veya bir yapı zincirindeki sonraki yapıya işaret eden bir göstergedir.
  • enableWatertightMeshTracking, çalışma zamanının taranan ortam için su geçirmez bir ağ hesaplaması gerekip gerekmediğini gösterir.

Su geçirmez ağ izlemeyi destekleyen çalışma zamanları, xrEnumerateSpatialCapabilityFeaturesEXT içinde XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT'yi listelemelidir . XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT özelliği, uygulamaların isteğe bağlı olarak su geçirmez ağ izlemeyi etkinleştirmesine ve su geçirmez ağ oluşturmanın neden olabileceği ek hesaplamaları açıkça etkinleştirmesine olanak tanır.

XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT, belirli bir özellik için xrEnumerateSpatialCapabilityFeaturesEXT tarafından listeleniyorsa uygulama, izlenen mesh'in su geçirmez olmasını isteyip istemediğini belirtmek için XrSpatialFeatureTrackWatertightMeshEXT'i ilgili özelliğin yapılandırma yapısına zincirleyebilir (can). Uygulama, enableWatertightMeshTracking değerini XR_TRUE olarak ayarlarsa çalışma zamanı, ortamın su geçirmez bir ağını hesaplamalı ve uygulamaya sağlamalıdır. Uygulama, enableWatertightMeshTracking değerini XR_FALSE olarak ayarlarsa çalışma zamanı yalnızca su geçirmez mesh izlemeyi destekliyorsa (ör. çalışma zamanının önceden taranmış bir ortamdan işlenmiş bir mesh sağladığı durumlarda) izlenen mesh yine de su geçirmez olabilir.

Geçerli Kullanım (Dolaylı)

Uygulama Akışı

Aşağıdaki şemada, bir uygulamanın ortamın su geçirmez bir ağını izlemek istemesi durumunda uzamsal bağlamı nasıl yapılandırabileceği gösterilmektedir.

Evet

Evet

Uygulamanın
su geçirmez ağa ihtiyacı var

Uygulamanın şunlara ihtiyacı var:

Evet

Evet

Hayır

Hayır

Çalışma zamanı
"mesh izleme"
özelliğini destekler

Çalışma zamanı...

Evet

Evet

Hayır

Hayır

Çalışma zamanı
"su geçirmez ağı izleme"
özelliğini destekler

Çalışma zamanı...

Uygulama, "mesh izleme özelliği" VE "su geçirmez mesh izleme" özelliğiyle uzamsal bağlam oluşturuyor

Uygulama, uzamsal... oluşturuyor.

Uygulama, mevcut çalışma zamanında özellik desteğinin eksikliğini gideriyor

Uygulama, ... eksikliğini gideriyor

Uygulama, izlenen ağı işleyerek su geçirmez bir ağ oluşturur. Bu işlem sırasında, ağdaki delikleri yamamak için kullanıcıdan yardım alabilir.

Uygulama, işlemi işler... Metin SVG değil, görüntülenemiyor

29. şekil. Su geçirmez ağ istemek için uygulama akışı

Garantili Bileşenler

XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT özelliğini destekleyen bir çalışma zamanı, bu özellik tarafından keşfedilen tüm varlıkların garantili bileşenleri olarak aşağıdaki uzamsal bileşenleri sağlamalı ve bunları xrEnumerateSpatialCapabilityComponentTypesEXT içinde listelemelidir:

  • XR_SPATIAL_COMPONENT_TYPE_BOUNDED_3D_EXT
  • XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT
Sınırlı 3D Bileşen

Sınırlı 3D bileşeni, üzerinde bulunduğu öğenin merkezini ve kapsamını sağlar. Bu bileşen tarafından sağlanan veriler, uygulamaların görüş alanının dışındaki varlıkları ayıklamasını kolaylaştırır.

Daha fazla bilgi için Sınırlı 3D bölümüne bakın.

Mesh 3D Bileşeni

3D mesh bileşeni, üzerinde bulunduğu varlığın 3D mesh'ini sağlar. Daha fazla bilgi için Mesh 3D sayfasına bakın.

Hacimsel Segmentasyon (Parçalara Ayırma)

Çalışma zamanı, uygulamaların görüntü kesik konisinin dışındaki ağ bloklarını ayıklamasını kolaylaştırmak için ağı hacimsel bloklara (parçalara) ayırabilir. Böyle bir durumda çalışma zamanı, bu tür her hacimsel bloğu ayrı bir varlık olarak ele almalı ve bu tür her varlıkta (hacimsel blok) Garantili Bileşenler kümesine sahip olmalıdır. Çalışma zamanı bu şekilde su geçirmez bir ağ sağlıyorsa her bir hacimsel blok ayrı ayrı su geçirmez değildir ancak bir grup blok birlikte su geçirmez bir ağ oluşturur. Böyle bir senaryoda, çalışma zamanı her bir varlığa (hacimsel blok) XR_SPATIAL_COMPONENT_TYPE_PARENT_EXT bileşenini eklemelidir ve birlikte su geçirmez bir ağ oluşturan bloklar genelinde ana varlığın değeri aynı olmalıdır. Bu sayede uygulama, hangi parçaların bir araya gelerek boşluksuz bir ağ oluşturduğunu belirleyebilir.

Bitişik hacimsel blokların ağları, köşeleri paylaşabilir ancak bir hacimsel bloğun üçgenleri, bitişik hacminin üçgenleriyle çakışmamalıdır.

İsteğe Bağlı Bileşenler

Örgü Normalleri

Bileşen verileri

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT, verileri için XrSpatialBufferEXT kullanır. XrSpatialBufferEXT :: bufferId, bu bileşenin bulunduğu varlığın ağının köşe normallerini içeren arabelleği temsil eder. XrSpatialBufferEXT :: bufferType, XR_SPATIAL_BUFFER_TYPE_VECTOR3F_EXT olmalıdır. XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT içeren bir varlıkta XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT de bulunmalıdır. Bu bileşen tarafından sağlanan normaller, XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT bileşeninin XrSpatialMeshDataEXT :: vertexBuffer öğesinde sağlanan köşelere karşılık gelmelidir.

Verileri sorgulamak için bileşen listesi yapısı

XrSpatialComponentMesh3DNormalsListEXT yapısı şu şekilde tanımlanır:

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

Üye Açıklamaları

  • type, bu yapının XrStructureType değeridir.
  • next, NULL veya bir yapı zincirindeki sonraki yapıya işaret eden bir göstergedir. Temel OpenXR'da veya bu uzantıda bu tür yapılar tanımlanmamıştır.
  • meshNormalsCount, meshNormals dizisindeki öğe sayısını açıklayan bir uint32_t değeridir.
  • meshNormals, XrVector3f dizisidir.

XrSpatialComponentMesh3DNormalsListEXT, XrSpatialComponentDataQueryResultEXT :: next öğesinin sonraki zincirindeyse ancak XrSpatialComponentDataQueryConditionEXT :: componentTypeCount sıfır değilse ve XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT, XrSpatialComponentDataQueryConditionEXT :: componentTypes öğesine dahil değilse çalışma zamanı, xrQuerySpatialComponentDataEXT öğesinden XR_ERROR_VALIDATION_FAILURE değerini döndürmelidir.

meshNormalsCount, XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput değerinden küçükse çalışma zamanı, xrQuerySpatialComponentDataEXT'ten XR_ERROR_SIZE_INSUFFICIENT değerini döndürmelidir.

Geçerli Kullanım (Dolaylı)

Yapılandırma

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT, bir özellik için XrSpatialCapabilityComponentTypesEXT :: componentTypes içinde listeleniyorsa uygulama, enum'u XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents listesine ekleyerek bu özelliği etkinleştirebilir . Bu bileşenin, sonraki XrSpatialCapabilityConfigurationBaseHeaderEXT zincirine dahil edilmesi için özel bir yapılandırma gerekmez. Ancak uygulamaların bu bileşeni ve verilerini XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT bileşeniyle birlikte kullanması önerilir.

Örgü Anlamsal Etiketleri

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;

XrSpatialMeshSemanticLabelEXT numaralandırması, bir mesh için anlamsal etiketler kümesini tanımlar. Bu, köşe başına veya üçgen başına semantik etiketler için XrSpatialBufferEXT'ten gelen uint8_t değerlerini anlamlandırmak amacıyla farklı uzamsal bileşenler tarafından kullanılır. Mesh Vertex Semantic Labels ve Mesh Triangle Semantic Labels sayfalarını inceleyin.

Bu semantik etiket grubunu genişletmek veya ağlar için kendi yeni grubunu eklemek isteyen uzantılar, Semantik Etiket Tasarımı ve Uzantı Kuralları'nda verilen kurallara uymalıdır.

Enum Açıklaması

XR_SPATIAL_MESH_SEMANTIC_LABEL_UNCATEGORIZED_EXT

Çalışma zamanı, tepe noktasını veya üçgeni sınıflandıramadı.

XR_SPATIAL_MESH_SEMANTIC_LABEL_FLOOR_EXT

Tepe noktası veya üçgen bir katla eşleşiyor.

XR_SPATIAL_MESH_SEMANTIC_LABEL_WALL_EXT

Tepe noktası veya üçgen bir duvara eşleniyor.

XR_SPATIAL_MESH_SEMANTIC_LABEL_CEILING_EXT

Tepe noktası veya üçgen bir tavana eşleniyor.

XR_SPATIAL_MESH_SEMANTIC_LABEL_TABLE_EXT

Köşe veya üçgen bir tabloyla eşlenir.

XR_SPATIAL_MESH_SEMANTIC_LABEL_CHAIR_EXT

Köşe veya üçgen bir sandalyeyle eşleşir.

XR_SPATIAL_MESH_SEMANTIC_LABEL_SOFA_EXT

Köşe veya üçgen bir koltukla eşleşir.

XR_SPATIAL_MESH_SEMANTIC_LABEL_BED_EXT

Tepe noktası veya üçgen, bir yatakla eşleşir.

Mesh Vertex Semantic Labels

Bileşene Genel Bakış

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT, uzamsal bir varlığın ağının her bir köşesi için tek bir semantik etiket sağlar.

Bileşen verileri

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT, verileri için XrSpatialBufferEXT kullanır. XrSpatialBufferEXT :: bufferId, bu bileşenin bulunduğu varlığın ağının köşe semantik etiketlerini içeren arabelleği temsil eder. XrSpatialBufferEXT :: bufferType, XR_SPATIAL_BUFFER_TYPE_UINT8_EXT olmalıdır. Arabellekteki değerler, XrSpatialMeshSemanticLabelEXT sıralamasının değerlerine karşılık gelir. XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT içeren bir varlıkta XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT bileşeni de olmalıdır. Bu bileşen tarafından sağlanan semantik etiketler, XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT bileşeninin XrSpatialMeshDataEXT :: vertexBuffer öğesinde sağlanan köşelere karşılık gelmelidir. Bu, bu bileşen tarafından sağlanan uzamsal arabellek verilerinin belirli bir dizinindeki semantik etiketin, XrSpatialMeshDataEXT :: vertexBuffer tarafından sağlanan aynı dizindeki tepe noktasına karşılık geldiği anlamına gelir. Bu aynı zamanda xrGetSpatialBufferUint8EXT :: bufferCountOutput değerinin, köşe semantik etiket arabelleği ve XrSpatialMeshDataEXT :: vertexBuffer için aynı değerde olması gerektiği anlamına gelir.

Verileri sorgulamak için bileşen listesi yapısı

XrSpatialComponentMesh3DVertexSemanticLabelsListEXT yapısı şu şekilde tanımlanır:

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

Üye Açıklamaları

  • type, bu yapının XrStructureType değeridir.
  • next, NULL veya bir yapı zincirindeki sonraki yapıya işaret eden bir göstergedir. Temel OpenXR'da veya bu uzantıda bu tür yapılar tanımlanmamıştır.
  • meshSemanticLabelsCount, meshSemanticLabels dizisindeki öğe sayısını açıklayan bir uint32_t değeridir.
  • meshSemanticLabels, XrSpatialBufferEXT dizisidir.

XrSpatialComponentMesh3DVertexSemanticLabelsListEXT, XrSpatialComponentDataQueryResultEXT :: next öğesinin sonraki zincirindeyse ancak XrSpatialComponentDataQueryConditionEXT :: componentTypeCount sıfır değilse ve XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT, XrSpatialComponentDataQueryConditionEXT :: componentTypes öğesine dahil değilse çalışma zamanı, xrQuerySpatialComponentDataEXT öğesinden XR_ERROR_VALIDATION_FAILURE değerini döndürmelidir .

meshSemanticLabelsCount, XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput değerinden küçükse çalışma zamanı, xrQuerySpatialComponentDataEXT'ten XR_ERROR_SIZE_INSUFFICIENT değerini döndürmelidir.

Geçerli Kullanım (Dolaylı)

Yapılandırma

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT, bir özellik için XrSpatialCapabilityComponentTypesEXT :: componentTypes içinde listeleniyorsa uygulama, enum'u XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents listesine ekleyerek bu özelliği etkinleştirebilir . Bu bileşenin, sonraki XrSpatialCapabilityConfigurationBaseHeaderEXT zincirine dahil edilmesi için özel bir yapılandırma gerekmez. Ancak uygulamaların bu bileşeni ve verilerini XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT bileşeniyle birlikte kullanması önerilir. Bu bileşen, XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT ile birlikte etkinleştirilemez. Bir uygulama XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents öğesine hem XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT hem de XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT eklerse çalışma zamanı XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT değerini döndürmelidir. Uygulama her iki bileşeni de ayrı XrSpatialContextEXT içinde etkinleştirmeye çalışırsa çalışma zamanı XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT değerini de döndürmelidir.

Mesh Üçgeni Anlamsal Etiketleri

Bileşene Genel Bakış

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT, uzamsal bir varlığın ağındaki her üçgen için tek bir anlamsal etiket sağlar.

Bileşen verileri

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT, verileri için XrSpatialBufferEXT kullanır. XrSpatialBufferEXT :: bufferId, bu bileşenin bulunduğu varlığın ağının üçgen anlamsal etiketlerini içeren arabelleği temsil eder. XrSpatialBufferEXT :: bufferType, XR_SPATIAL_BUFFER_TYPE_UINT8_EXT olmalıdır. Arabellekteki değerler, XrSpatialMeshSemanticLabelEXT sıralamasının değerlerine karşılık gelir. XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT içeren bir varlıkta XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT bileşeni de olmalıdır. Bu bileşen tarafından sağlanan semantik etiketler, XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT bileşeninin XrSpatialMeshDataEXT öğesinde sağlanan üçgenlere karşılık gelmelidir. Üçgen semantik etiketlerini içeren uzamsal arabelleğin öğe sayısı, XrSpatialMeshDataEXT :: indexBuffer öğe sayısının 3'e bölünmesiyle elde edilir. Bu, bu bileşen tarafından sağlanan uzamsal arabellek verilerinin belirli bir dizinindeki semantik etiketin, XrSpatialMeshDataEXT :: indexBuffer içinde [index * 3], [index * 3 + 1], [index * 3 + 2] ile temsil edilen üçgene karşılık geldiği anlamına gelir.

Verileri sorgulamak için bileşen listesi yapısı

XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT yapısı şu şekilde tanımlanır:

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

Üye Açıklamaları

  • type, bu yapının XrStructureType değeridir.
  • next, NULL veya bir yapı zincirindeki sonraki yapıya işaret eden bir göstergedir. Temel OpenXR'da veya bu uzantıda bu tür yapılar tanımlanmamıştır.
  • meshSemanticLabelsCount, meshSemanticLabels dizisindeki öğe sayısını açıklayan bir uint32_t değeridir.
  • meshSemanticLabels, XrSpatialBufferEXT dizisidir.

XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT, XrSpatialComponentDataQueryResultEXT :: next öğesinin sonraki zincirindeyse ancak XrSpatialComponentDataQueryConditionEXT :: componentTypeCount sıfır değilse ve XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT, XrSpatialComponentDataQueryConditionEXT :: componentTypes öğesine dahil değilse çalışma zamanı, xrQuerySpatialComponentDataEXT öğesinden XR_ERROR_VALIDATION_FAILURE değerini döndürmelidir .

meshSemanticLabelsCount, XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput değerinden küçükse çalışma zamanı, xrQuerySpatialComponentDataEXT'ten XR_ERROR_SIZE_INSUFFICIENT değerini döndürmelidir.

Geçerli Kullanım (Dolaylı)

Yapılandırma

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT, bir özellik için XrSpatialCapabilityComponentTypesEXT :: componentTypes içinde listeleniyorsa uygulama, enum'u XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents listesine ekleyerek bu özelliği etkinleştirebilir . Bu bileşenin, sonraki XrSpatialCapabilityConfigurationBaseHeaderEXT zincirine dahil edilmesi için özel bir yapılandırma gerekmez. Ancak uygulamaların bu bileşeni ve verilerini XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT bileşeniyle birlikte kullanması önerilir. Bu bileşen, XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT ile birlikte etkinleştirilemez. Bir uygulama XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents öğesine hem XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT hem de XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT eklerse çalışma zamanı XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT değerini döndürmelidir. Uygulama her iki bileşeni de ayrı XrSpatialContextEXT içinde etkinleştirmeye çalışırsa çalışma zamanı XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT değerini de döndürmelidir.

Yeni Yapılar

Yeni Enum Veri Türleri

Yeni Enum Sabitleri

  • XR_EXT_SPATIAL_MESH_TRACKING_EXTENSION_NAME
  • XR_EXT_spatial_mesh_tracking_SPEC_VERSION
  • XrSpatialCapabilityEXT'yi genişletme:

    • XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT
  • XrSpatialCapabilityFeatureEXT'yi genişletme:

    • XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT
  • XrSpatialComponentTypeEXT'yi genişletme:

    • 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
  • XrStructureType'ı genişletme:

    • 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

Sayılar

Sürüm Geçmişi

  • Düzeltme 1, 02.11.2025 (Nihav Jain, Google)

    • İlk uzantı açıklaması