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 .
الاستخدام الصالح (ضمني)
- يجب تفعيل إضافة
XR_EXT_spatial_mesh_trackingقبل استخدام XrSpatialCapabilityConfigurationMeshTrackingEXT - يجب أن يكون
typeXR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_MESH_TRACKING_EXT -
nextيجب أن تكونNULLأو مؤشرًا صالحًا إلى البنية التالية في سلسلة البنية . يُرجى الاطّلاع أيضًا على: XrSpatialFeatureTrackWatertightMeshEXT -
capabilityيجب أن تكون قيمة XrSpatialCapabilityEXT صالحة -
enabledComponentsيجب أن يكون مؤشرًا إلى مصفوفة من قيمenabledComponentCountصالحة من النوع XrSpatialComponentTypeEXT - يجب أن تكون المَعلمة
enabledComponentCountأكبر من0
تتبُّع شبكة محكمة الإغلاق
يتم تحديد بنية 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، قد يظلّ الشبكة التي يتم تتبّعها محكمة الإغلاق إذا كان وقت التشغيل يتيح فقط تتبُّع الشبكة المحكمة الإغلاق، على سبيل المثال في الحالات التي يوفّر فيها وقت التشغيل شبكة تمت معالجتها من بيئة تم فحصها مسبقًا.
الاستخدام الصالح (ضمني)
- يجب تفعيل إضافة
XR_EXT_spatial_mesh_trackingقبل استخدام XrSpatialFeatureTrackWatertightMeshEXT - يجب أن يكون
typeXR_TYPE_SPATIAL_FEATURE_TRACK_WATERTIGHT_MESH_EXT -
nextيجب أن تكونNULLأو مؤشرًا صالحًا إلى البنية التالية في سلسلة البنية
مسار التطبيق
يوضّح المخطّط البياني أدناه كيف يمكن لأحد التطبيقات ضبط السياق المكاني إذا أراد تتبُّع شبكة محكمة الإغلاق للبيئة.
نعم
نعم
يتطلّب التطبيق
شبكة ثلاثية الأبعاد محكمة الإغلاق
يحتاج التطبيق إلى...
نعم
نعم
لا
لا
يتيح وقت التشغيل
إمكانية "تتبُّع الشبكة"
وقت التشغيل...
نعم
نعم
لا
لا
يتيح وقت التشغيل
ميزة "تتبُّع الشبكة المحكمة"
وقت التشغيل...
ينشئ التطبيق سياقًا مكانيًا باستخدام "إمكانية تتبُّع الشبكة" وميزة "تتبُّع الشبكة المغلقة"
ينشئ التطبيق...
يتعامل التطبيق مع عدم توفّر الميزة في بيئة التشغيل الحالية
يتعامل التطبيق مع عدم توفّر...
يعالج التطبيق الشبكة التي تم تتبُّعها لإنشاء شبكة محكمة الإغلاق، ربما بمساعدة المستخدم في سد الثقوب في الشبكة
يعالج التطبيق المعاملات... النص ليس بتنسيق SVG، لذا لا يمكن عرضه
الشكل 29: مسار التطبيق لطلب شبكة ثلاثية الأبعاد مغلقة
المكوّنات المضمونة
يجب أن توفّر بيئة التشغيل التي تتيح استخدام XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT المكوّنات المكانية التالية كمكوّنات مضمونة لجميع الكيانات التي تكتشفها هذه الميزة، ويجب تعدادها في xrEnumerateSpatialCapabilityComponentTypesEXT :
XR_SPATIAL_COMPONENT_TYPE_BOUNDED_3D_EXTXR_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_EXT_spatial_mesh_trackingقبل استخدام XrSpatialComponentMesh3DNormalsListEXT - يجب أن يكون
typeXR_TYPE_SPATIAL_COMPONENT_MESH_3D_NORMALS_LIST_EXT -
nextيجب أن تكونNULLأو مؤشرًا صالحًا إلى البنية التالية في سلسلة البنية - يجب أن يكون
meshNormalsمؤشرًا إلى مصفوفة من هياكلmeshNormalsCountXrSpatialBufferEXT - يجب أن تكون المَعلمة
meshNormalsCountأكبر من0
الإعداد
إذا تم تعداد 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_EXT_spatial_mesh_trackingقبل استخدام XrSpatialComponentMesh3DVertexSemanticLabelsListEXT - يجب أن يكون
typeXR_TYPE_SPATIAL_COMPONENT_MESH_3D_VERTEX_SEMANTIC_LABELS_LIST_EXT -
nextيجب أن تكونNULLأو مؤشرًا صالحًا إلى البنية التالية في سلسلة البنية - يجب أن يكون
meshSemanticLabelsمؤشرًا إلى مصفوفة من هياكلmeshSemanticLabelsCountXrSpatialBufferEXT - يجب أن تكون المَعلمة
meshSemanticLabelsCountأكبر من0
الإعداد
إذا تم تعداد 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_EXT_spatial_mesh_trackingقبل استخدام XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT - يجب أن يكون
typeXR_TYPE_SPATIAL_COMPONENT_MESH_3D_TRIANGLE_SEMANTIC_LABELS_LIST_EXT -
nextيجب أن تكونNULLأو مؤشرًا صالحًا إلى البنية التالية في سلسلة البنية - يجب أن يكون
meshSemanticLabelsمؤشرًا إلى مصفوفة من هياكلmeshSemanticLabelsCountXrSpatialBufferEXT - يجب أن تكون المَعلمة
meshSemanticLabelsCountأكبر من0
الإعداد
إذا تم تعداد 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 منفصلَين.
منشآت جديدة
- XrSpatialCapabilityConfigurationMeshTrackingEXT
توسيع نطاق XrSpatialCapabilityConfigurationMeshTrackingEXT :
عمليات تعداد جديدة
ثوابت تعداد جديدة
XR_EXT_SPATIAL_MESH_TRACKING_EXTENSION_NAMEXR_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_EXTXR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXTXR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT
توسيع XrStructureType :
XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_MESH_TRACKING_EXTXR_TYPE_SPATIAL_COMPONENT_MESH_3D_NORMALS_LIST_EXTXR_TYPE_SPATIAL_COMPONENT_MESH_3D_TRIANGLE_SEMANTIC_LABELS_LIST_EXTXR_TYPE_SPATIAL_COMPONENT_MESH_3D_VERTEX_SEMANTIC_LABELS_LIST_EXTXR_TYPE_SPATIAL_FEATURE_TRACK_WATERTIGHT_MESH_EXT
المشاكل
سجلّ الإصدارات
المراجعة 1، 02-11-2025 (نيهف جين، Google)
- الوصف الأولي للإضافة