XR_EXT_spatial_mesh_tracking

Name String

XR_EXT_spatial_mesh_tracking

نوع الإضافة

إضافة مثيل

رقم الإضافة المسجَّل

784

المراجعة

1

حالة التصديق

لم تتم المصادقة عليها

الاعتماد على الإضافات والإصدارات

XR_EXT_spatial_entity

المساهمون

"نيهاف جاين"، Google
"ناتالي فلوري"، Meta
"يويتشي تاغوتشي"، Meta
"رون بيسمز"، Meta
"يين لي"، Microsoft
"جيمي ألامبارامبيل"، ByteDance
"تشيبينغ ليو"، ByteDance
"جون يان"، ByteDance

نظرة عامة

تستند هذه الإضافة إلى XR_EXT_spatial_entity وتحدّد الإمكانات المكانية لتتبُّع الشبكة المثلثية للبيئة. إنّ شبكة المثلثات التي توفّرها الإمكانية المحدّدة في هذه الإضافة مخصّصة للاستخدام من قِبل التطبيقات لتحديد حالات تصادم المحتوى الافتراضي مع البيئة.

إمكانية تتبُّع الشبكة المكانية

تحدّد هذه الإضافة XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT كإمكانية مكانية لتتبُّع الشبكة المثلثية للبيئة. لا تشمل هذه الإمكانية تتبُّع شبكة الكيانات، مثل الطائرات والعناصر، ويجب بدلاً من ذلك الإشارة إليها من خلال تعداد مكوّن XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT للإمكانات ذات الصلة التي تتتبّع هذه الكيانات.

يُستخدَم XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT لتوفير شبكة محكمة وغير محكمة للتطبيق، وذلك استنادًا إلى إمكانات وقت التشغيل والإعدادات التي يختارها التطبيق.

الشبكة المحكمة هي شبكة تم فيها ملء الفجوات والمناطق غير الممسوحة ضوئيًا من جميع الأحجام، وتشكّل شبكة محكمة ضمن كتلة حجمية معيّنة. كما يشير الاسم، إذا ملأ أحد التطبيقات الماء داخل شبكة مانعة لتسرّب الماء، يجب ألا يتسرّب الماء من الحجم المانع لتسرّب الماء. يتطلّب جعل الشبكة الممسوحة ضوئيًا محكمة الإغلاق عادةً قدرات حوسبة عالية جدًا، على الرغم من أنّ بعض بيئات التشغيل تعوّض هذه التكلفة من خلال معالجة الشبكة مسبقًا.

دعم بيئة التشغيل

إذا كان وقت التشغيل يتيح تتبُّع الشبكة المثلثية للبيئة، يجب أن يشير إلى ذلك من خلال تعداد XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT في xrEnumerateSpatialCapabilitiesEXT .

هناك 3 إمكانات محتملة لبيئة التشغيل التي تتيح استخدام XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT:

  • تتيح بيئة التشغيل تتبُّع الشبكات غير المحكمة فقط. في هذه الحالة، يعدد وقت التشغيل XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT في xrEnumerateSpatialCapabilitiesEXT ولكن يجب ألا يعدد XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT في xrEnumerateSpatialCapabilityFeaturesEXT (يُرجى الاطّلاع على تتبُّع شبكة محكمة الإغلاق).
  • تتيح بيئة التشغيل تتبُّع الشبكات المغلقة وغير المغلقة. في هذه الحالة، يحدّد وقت التشغيل XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT في xrEnumerateSpatialCapabilitiesEXT ويجب أيضًا تحديد XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT في xrEnumerateSpatialCapabilityFeaturesEXT (يُرجى الاطّلاع على تتبُّع شبكة مغلقة) لتفعيل طلبات تتبُّع الشبكة المغلقة من التطبيق.
  • لا تتيح بيئة التشغيل سوى تتبُّع الشبكات المغلقة. في هذه الحالة، يحدّد وقت التشغيل XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT في xrEnumerateSpatialCapabilitiesEXT ويجب أيضًا تحديد XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT في xrEnumerateSpatialCapabilityFeaturesEXT (يُرجى الاطّلاع على تتبُّع شبكة مغلقة) للإشارة إلى التطبيق بأنّه يتوافق مع تتبُّع الشبكة المغلقة. في هذه الحالة تحديدًا، يعرض وقت التشغيل دائمًا شبكة محكمة الإغلاق للتطبيق بغض النظر عن إعدادات XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT .

الإعداد

يتم تحديد بنية XrSpatialCapabilityConfigurationMeshTrackingEXT على النحو التالي:

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

أوصاف الأعضاء

  • ‫type هو XrStructureType لهذه البنية.
  • ‫next هو NULL أو مؤشر إلى البنية التالية في سلسلة البنى.
  • capability هو XrSpatialCapabilityEXT ويجب أن يكون XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT .
  • ‫enabledComponentCount هو uint32_t يصف عدد العناصر في مصفوفة enabledComponents.
  • ‫enabledComponents هو مؤشر إلى مصفوفة من XrSpatialComponentTypeEXT .

يمكن للتطبيقات تفعيل ميزة XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT المكانية من خلال تضمين مؤشر إلى بنية XrSpatialCapabilityConfigurationMeshTrackingEXT في XrSpatialContextCreateInfoEXT :: capabilityConfigs .

يجب أن يعرض وقت التشغيل XR_ERROR_VALIDATION_FAILURE إذا لم يكن capability هو XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT .

الاستخدام الصالح (ضمني)

تتبُّع شبكة محكمة الإغلاق

يتم تحديد بنية XrSpatialFeatureTrackWatertightMeshEXT على النحو التالي:

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

أوصاف الأعضاء

  • ‫type هو XrStructureType لهذه البنية.
  • ‫next هو NULL أو مؤشر إلى البنية التالية في سلسلة البنى.
  • يشير enableWatertightMeshTracking إلى ما إذا كان وقت التشغيل يجب أن يحسب شبكة محكمة للبيئة التي تم مسحها ضوئيًا.

يجب أن تدرج بيئات التشغيل التي تتيح تتبُّع الشبكة المحكمة الإغلاق XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT في xrEnumerateSpatialCapabilityFeaturesEXT . تتيح ميزة XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT للتطبيقات تفعيل تتبُّع الشبكة المغلقة اختياريًا والموافقة صراحةً على أي عملية حوسبة إضافية قد يتطلبها إنشاء الشبكة المغلقة.

إذا تم تعداد XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT بواسطة xrEnumerateSpatialCapabilityFeaturesEXT لإمكانية معيّنة، يمكن للتطبيق ربط XrSpatialFeatureTrackWatertightMeshEXT ببنية الإعدادات المقابلة لتلك الإمكانية للإشارة إلى ما إذا كان يريد أن تكون الشبكة التي يتم تتبُّعها محكمة الإغلاق أم لا. إذا ضبط التطبيق enableWatertightMeshTracking على XR_TRUE، يجب أن يحتسب وقت التشغيل شبكة محكمة للبيئة ويوفّرها للتطبيق. إذا ضبط التطبيق enableWatertightMeshTracking على XR_FALSE، قد يظلّ الشبكة التي يتم تتبّعها محكمة الإغلاق إذا كان وقت التشغيل يتيح فقط تتبُّع الشبكة المحكمة الإغلاق، على سبيل المثال في الحالات التي يوفّر فيها وقت التشغيل شبكة تمت معالجتها من بيئة تم فحصها مسبقًا.

الاستخدام الصالح (ضمني)

مسار التطبيق

يوضّح المخطّط البياني أدناه كيف يمكن لأحد التطبيقات ضبط السياق المكاني إذا أراد تتبُّع شبكة محكمة الإغلاق للبيئة.

نعم

نعم

يتطلّب التطبيق
شبكة ثلاثية الأبعاد محكمة الإغلاق

يحتاج التطبيق إلى...

نعم

نعم

لا

لا

يتيح وقت التشغيل
إمكانية "تتبُّع الشبكة"

وقت التشغيل...

نعم

نعم

لا

لا

يتيح وقت التشغيل
ميزة "تتبُّع الشبكة المحكمة"

وقت التشغيل...

ينشئ التطبيق سياقًا مكانيًا باستخدام "إمكانية تتبُّع الشبكة" وميزة "تتبُّع الشبكة المغلقة"

ينشئ التطبيق...

يتعامل التطبيق مع عدم توفّر الميزة في بيئة التشغيل الحالية

يتعامل التطبيق مع عدم توفّر...

يعالج التطبيق الشبكة التي تم تتبُّعها لإنشاء شبكة محكمة الإغلاق، ربما بمساعدة المستخدم في سد الثقوب في الشبكة

يعالج التطبيق المعاملات... النص ليس بتنسيق SVG، لذا لا يمكن عرضه

الشكل 29: مسار التطبيق لطلب شبكة ثلاثية الأبعاد مغلقة

المكوّنات المضمونة

يجب أن توفّر بيئة التشغيل التي تتيح استخدام XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT المكوّنات المكانية التالية كمكوّنات مضمونة لجميع الكيانات التي تكتشفها هذه الميزة، ويجب تعدادها في xrEnumerateSpatialCapabilityComponentTypesEXT :

  • XR_SPATIAL_COMPONENT_TYPE_BOUNDED_3D_EXT
  • XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT
مكوّن ثلاثي الأبعاد محدود

يوفّر المكوّن الثلاثي الأبعاد المحدود مركز الكيان الذي يقع عليه ونطاقه. تسهّل البيانات التي يوفّرها هذا المكوّن على التطبيقات استبعاد الكيانات التي تقع خارج نطاق الرؤية.

لمزيد من التفاصيل، يُرجى الاطّلاع على الصور الثلاثية الأبعاد المحدودة.

مكوّن Mesh 3D

يوفّر مكوّن الشبكة الثلاثية الأبعاد شبكة ثلاثية الأبعاد للكيان الذي يتضمّنها. لمزيد من التفاصيل، يُرجى الاطّلاع على Mesh 3D.

التقسيم الحجمي (التقسيم إلى أجزاء)

قد تقسّم بيئة التشغيل الشبكة إلى كتل حجمية (أجزاء) لتسهيل عملية استبعاد كتل الشبكة خارج حجم الرؤية على التطبيقات. في هذه الحالة، يجب أن يتعامل وقت التشغيل مع كل وحدة حجمية على أنّها كيان منفصل وأن يتضمّن مجموعة المكوّنات المضمونة في كل كيان من هذا النوع (وحدة حجمية). إذا كان وقت التشغيل يوفّر شبكة محكمة الإغلاق بهذه الطريقة، فإنّ كل كتلة حجمية على حدة لا تكون محكمة الإغلاق، ولكن مجموعة من الكتل معًا تشكّل شبكة محكمة الإغلاق. في هذه الحالة، يجب أن يضيف وقت التشغيل المكوّن XR_SPATIAL_COMPONENT_TYPE_PARENT_EXT إلى كل كيان (كتلة حجمية)، ويجب أن تكون قيمة الكيان الأصلي في جميع الكتل التي تشكّل معًا شبكة محكمة الإغلاق متطابقة. يتيح ذلك للتطبيق تحديد الأجزاء التي تشكّل معًا شبكة متكاملة.

يمكن أن تتشارك شبكات الكتل الحجمية المتجاورة في الرؤوس، ولكن يجب ألا تتداخل مثلثات كتلة حجمية واحدة مع مثلثات الحجم المجاور لها.

المكوِّنات الاختيارية

متجهات الشبكة

بيانات المكوّنات

يستخدم "XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT" XrSpatialBufferEXT لبياناته. ‫XrSpatialBufferEXT :: bufferId يمثّل المخزن المؤقت الذي يحتوي على الخطوط العمودية على الرؤوس لشبكة الكيان الذي يتضمّن هذا المكوّن. يجب أن تكون قيمة XrSpatialBufferEXT :: bufferType هي XR_SPATIAL_BUFFER_TYPE_VECTOR3F_EXT . يجب أن يتضمّن الكيان الذي يحتوي على XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT السمة XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT أيضًا. يجب أن تتطابق المتجهات العمودية التي يوفّرها هذا المكوّن مع الرؤوس المتوفّرة في XrSpatialMeshDataEXT :: vertexBuffer من المكوّن XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT.

بنية قائمة المكوّنات لطلب البيانات

يتم تحديد بنية XrSpatialComponentMesh3DNormalsListEXT على النحو التالي:

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

أوصاف الأعضاء

  • ‫type هو XrStructureType لهذه البنية.
  • ‫next هو NULL أو مؤشر إلى البنية التالية في سلسلة البنى. لا يتم تحديد مثل هذه البُنى في OpenXR الأساسية أو هذه الإضافة.
  • ‫meshNormalsCount هو uint32_t يصف عدد العناصر في مصفوفة meshNormals.
  • ‫meshNormals هي مصفوفة من XrVector3f .

يجب أن يعرض وقت التشغيل XR_ERROR_VALIDATION_FAILURE من xrQuerySpatialComponentDataEXT إذا كان XrSpatialComponentMesh3DNormalsListEXT في السلسلة التالية من XrSpatialComponentDataQueryResultEXT :: next ولكن XrSpatialComponentDataQueryConditionEXT :: componentTypeCount ليس صفرًا وXR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT غير مضمّن في XrSpatialComponentDataQueryConditionEXT :: componentTypes .

يجب أن يعرض وقت التشغيل XR_ERROR_SIZE_INSUFFICIENT من xrQuerySpatialComponentDataEXT إذا كان meshNormalsCount أقل من XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput .

الاستخدام الصالح (ضمني)

الإعداد

إذا تم تعداد XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT في XrSpatialCapabilityComponentTypesEXT :: componentTypes لبعض الإمكانات، يمكن للتطبيق تفعيلها من خلال تضمين التعداد في قائمة XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents. لا يتطلّب هذا المكوّن أي إعدادات خاصة ليتم تضمينه في السلسلة التالية من XrSpatialCapabilityConfigurationBaseHeaderEXT . ومع ذلك، ننصح التطبيقات باستخدام هذا المكوّن وبياناته مع مكوّن XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT.

التصنيفات الدلالية للشبكة المتداخلة

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 مجموعة من التصنيفات الدلالية لشبكة. يتم استخدام هذه السمة من قِبل مكوّنات مكانية مختلفة لإعطاء معنى لقيم uint8_t من XrSpatialBufferEXT للتصنيفات الدلالية لكل رأس أو لكل مثلث. يُرجى الاطّلاع على التصنيفات الدلالية لرؤوس الشبكة والتصنيفات الدلالية لمثلثات الشبكة

بالنسبة إلى الإضافات التي تهدف إلى توسيع مجموعة التصنيفات الدلالية هذه أو إضافة مجموعة جديدة خاصة بها للشبكات، يجب اتّباع الإرشادات الواردة في إرشادات تصميم التصنيفات الدلالية والإضافات .

وصف التعداد

XR_SPATIAL_MESH_SEMANTIC_LABEL_UNCATEGORIZED_EXT

تعذّر على وقت التشغيل تصنيف الرأس أو المثلث.

XR_SPATIAL_MESH_SEMANTIC_LABEL_FLOOR_EXT

يتم ربط الرأس أو المثلث بطابق.

XR_SPATIAL_MESH_SEMANTIC_LABEL_WALL_EXT

يتم ربط الرأس أو المثلث بجدار.

XR_SPATIAL_MESH_SEMANTIC_LABEL_CEILING_EXT

يتم ربط الرأس أو المثلث بسقف.

XR_SPATIAL_MESH_SEMANTIC_LABEL_TABLE_EXT

يتم ربط الرأس أو المثلث بجدول.

XR_SPATIAL_MESH_SEMANTIC_LABEL_CHAIR_EXT

يتم ربط الرأس أو المثلث بكرسي.

XR_SPATIAL_MESH_SEMANTIC_LABEL_SOFA_EXT

يتم ربط الرأس أو المثلث بأريكة.

XR_SPATIAL_MESH_SEMANTIC_LABEL_BED_EXT

يتم ربط الرأس أو المثلث بسرير.

التصنيفات الدلالية لرؤوس الشبكة

نظرة عامة على المكوّن

يوفّر XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT تصنيفًا دلاليًا واحدًا لكل رأس من رؤوس شبكة الكيان المكاني.

بيانات المكوّنات

يستخدم "XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT" XrSpatialBufferEXT لبياناته. ‫XrSpatialBufferEXT :: bufferId يمثّل المخزن المؤقت الذي يحتوي على تصنيفات دلالية للرؤوس في شبكة الكيان الذي يتضمّن هذا المكوّن. يجب أن تكون قيمة XrSpatialBufferEXT :: bufferType هي XR_SPATIAL_BUFFER_TYPE_UINT8_EXT . تتوافق القيم في المخزن المؤقت مع قيم تعداد XrSpatialMeshSemanticLabelEXT. يجب أن يتضمّن الكيان الذي يحتوي على XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT أيضًا المكوّن XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. يجب أن تتطابق التصنيفات الدلالية التي يوفّرها هذا المكوّن مع الرؤوس المقدَّمة في XrSpatialMeshDataEXT :: vertexBuffer من المكوّن XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. يعني ذلك أنّ التصنيف الدلالي في فهرس معيّن لبيانات المخزن المؤقت المكاني التي يوفّرها هذا المكوّن يتوافق مع الرأس في الفهرس نفسه الذي يوفّره XrSpatialMeshDataEXT :: vertexBuffer . يعني هذا أيضًا أنّ xrGetSpatialBufferUint8EXT :: bufferCountOutput يجب أن تكون القيمة نفسها لمخزن التصنيفات الدلالية للرؤوس وXrSpatialMeshDataEXT :: vertexBuffer .

بنية قائمة المكوّنات لطلب البيانات

يتم تحديد بنية XrSpatialComponentMesh3DVertexSemanticLabelsListEXT على النحو التالي:

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

أوصاف الأعضاء

  • ‫type هو XrStructureType لهذه البنية.
  • ‫next هو NULL أو مؤشر إلى البنية التالية في سلسلة البنى. لا يتم تحديد مثل هذه البُنى في OpenXR الأساسية أو هذه الإضافة.
  • ‫meshSemanticLabelsCount هو uint32_t يصف عدد العناصر في مصفوفة meshSemanticLabels.
  • ‫meshSemanticLabels هي مصفوفة من XrSpatialBufferEXT .

يجب أن يعرض وقت التشغيل XR_ERROR_VALIDATION_FAILURE من xrQuerySpatialComponentDataEXT إذا كان XrSpatialComponentMesh3DVertexSemanticLabelsListEXT في السلسلة التالية من XrSpatialComponentDataQueryResultEXT :: next ولكن XrSpatialComponentDataQueryConditionEXT :: componentTypeCount ليس صفرًا وXR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT غير مضمّن في XrSpatialComponentDataQueryConditionEXT :: componentTypes .

يجب أن يعرض وقت التشغيل XR_ERROR_SIZE_INSUFFICIENT من xrQuerySpatialComponentDataEXT إذا كان meshSemanticLabelsCount أقل من XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput .

الاستخدام الصالح (ضمني)

الإعداد

إذا تم تعداد XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT في XrSpatialCapabilityComponentTypesEXT :: componentTypes لبعض الإمكانات، يمكن للتطبيق تفعيلها من خلال تضمين التعداد في قائمة XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents. لا يتطلّب هذا المكوّن أي إعدادات خاصة ليتم تضمينه في السلسلة التالية من XrSpatialCapabilityConfigurationBaseHeaderEXT . ومع ذلك، ننصح التطبيقات باستخدام هذا المكوّن وبياناته مع مكوّن XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. لا يمكن تفعيل هذا المكوّن مع XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT . إذا أضاف أحد التطبيقات كلاً من XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT وXR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT إلى XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents ، يجب أن يعرض وقت التشغيل XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT . يجب أيضًا أن يعرض وقت التشغيل القيمة XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT إذا حاول التطبيق تفعيل كلا المكوّنَين في XrSpatialContextEXT منفصلَين.

التصنيفات الدلالية للمثلثات الشبكية

نظرة عامة على المكوّن

يوفّر XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT تصنيفًا دلاليًا واحدًا لكل مثلّث من شبكة الكيان المكاني.

بيانات المكوّنات

يستخدم "XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT" XrSpatialBufferEXT لبياناته. ‫XrSpatialBufferEXT :: bufferId يمثّل المخزن المؤقت الذي يحتوي على التصنيفات الدلالية المثلثة لشبكة الكيان الذي يتضمّن هذا المكوّن. يجب أن تكون قيمة XrSpatialBufferEXT :: bufferType هي XR_SPATIAL_BUFFER_TYPE_UINT8_EXT . تتوافق القيم في المخزن المؤقت مع قيم تعداد XrSpatialMeshSemanticLabelEXT. يجب أن يتضمّن الكيان الذي يحتوي على XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT أيضًا المكوّن XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. يجب أن تتطابق التصنيفات الدلالية التي يوفّرها هذا المكوّن مع المثلثات المتوفّرة في XrSpatialMeshDataEXT لمكوّن XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. عدد عناصر المخزن المؤقت المكاني الذي يحتوي على التصنيفات الدلالية للمثلث هو عدد عناصر XrSpatialMeshDataEXT :: indexBuffer مقسومًا على 3. يعني ذلك أنّ التصنيف الدلالي في فهرس معيّن لبيانات المخزن المؤقت المكاني التي يوفّرها هذا المكوّن يتوافق مع المثلث الذي يمثّله [index * 3] و[index * 3 + 1] و[index * 3 + 2] في XrSpatialMeshDataEXT :: indexBuffer .

بنية قائمة المكوّنات لطلب البيانات

يتم تحديد بنية XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT على النحو التالي:

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

أوصاف الأعضاء

  • ‫type هو XrStructureType لهذه البنية.
  • ‫next هو NULL أو مؤشر إلى البنية التالية في سلسلة البنى. لا يتم تحديد مثل هذه البُنى في OpenXR الأساسية أو هذه الإضافة.
  • ‫meshSemanticLabelsCount هو uint32_t يصف عدد العناصر في مصفوفة meshSemanticLabels.
  • ‫meshSemanticLabels هي مصفوفة من XrSpatialBufferEXT .

يجب أن يعرض وقت التشغيل XR_ERROR_VALIDATION_FAILURE من xrQuerySpatialComponentDataEXT إذا كان XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT في السلسلة التالية من XrSpatialComponentDataQueryResultEXT :: next ولكن XrSpatialComponentDataQueryConditionEXT :: componentTypeCount ليس صفرًا وXR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT غير مضمّن في XrSpatialComponentDataQueryConditionEXT :: componentTypes .

يجب أن يعرض وقت التشغيل XR_ERROR_SIZE_INSUFFICIENT من xrQuerySpatialComponentDataEXT إذا كان meshSemanticLabelsCount أقل من XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput .

الاستخدام الصالح (ضمني)

الإعداد

إذا تم تعداد XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT في XrSpatialCapabilityComponentTypesEXT :: componentTypes لبعض الإمكانات، يمكن للتطبيق تفعيلها من خلال تضمين التعداد في قائمة XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents. لا يتطلّب هذا المكوّن أي إعدادات خاصة ليتم تضمينه في السلسلة التالية من XrSpatialCapabilityConfigurationBaseHeaderEXT . ومع ذلك، ننصح التطبيقات باستخدام هذا المكوّن وبياناته مع مكوّن XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. لا يمكن تفعيل هذا المكوّن مع XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT . إذا أضاف أحد التطبيقات كلاً من XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT وXR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT إلى XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents ، يجب أن يعرض وقت التشغيل XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT . يجب أيضًا أن يعرض وقت التشغيل القيمة XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT إذا حاول التطبيق تفعيل كلا المكوّنَين في XrSpatialContextEXT منفصلَين.

منشآت جديدة

عمليات تعداد جديدة

ثوابت تعداد جديدة

  • XR_EXT_SPATIAL_MESH_TRACKING_EXTENSION_NAME
  • XR_EXT_spatial_mesh_tracking_SPEC_VERSION
  • توسيع XrSpatialCapabilityEXT :

    • XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT
  • توسيع XrSpatialCapabilityFeatureEXT :

    • XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT
  • توسيع 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
  • توسيع 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

المشاكل

سجلّ الإصدارات

  • المراجعة 1، ‏02-11-2025 (نيهف جين، Google)

    • الوصف الأولي للإضافة