XR_ANDROID_scene_meshing
Name String
XR_ANDROID_scene_meshing
Uzantı Türü
Örnek uzantısı
Kayıtlı Uzantı Numarası
719
Düzeltme
3
Onay durumu
Onaylanmadı
Uzantı ve Sürüm Bağımlılıkları
Son Değiştirilme Tarihi
2025-05-15
IP Durumu
Bilinen IP hak talebi yok.
Katkıda bulunanlar
Spencer Quin, Google
Jared Finder, Google
Antonio Fontan, Google
Cairn Overturf, Google
Nihav Jain, Google
Salar Khan, Google
Sebastian Klose, Google
Jürgen Sturm, Google
Vinny DaSilva, Google
Ricardo Campbell, Google
Genel Bakış
Bu uzantı, kullanıcının ortamındaki fiziksel nesneleri yaklaşık olarak temsil eden ağlar sağlamayı amaçlar.
Uygulamalar, sahneyi görselleştirmek ve sanal nesnelerin çarpışma gibi fiziksel nesnelerle etkileşime girmesine izin vermek için bu uzantıyı kullanabilir.
Sahne ağı verileri, çalışma zamanı tarafından oluşturulur ve XrSceneMeshingTrackerANDROID ile XrSceneMeshSnapshotANDROID kullanılarak uygulama ile paylaşılır . Uygulamalar, xrGetAllSubmeshStatesANDROID işlevinden döndürülen XrSceneSubmeshStateANDROID aracılığıyla sahne alt ağ bilgileri içindeki değerlere erişebilir . Uygulamalar, xrGetSubmeshDataANDROID işlevinden döndürülen XrSceneSubmeshDataANDROID aracılığıyla sahne alt ağ verilerindeki değerlere erişebilir .
Sahne ağı verileri, hassas kişisel bilgilerdir ve kişisel gizlilik ile bütünlükle yakından bağlantılıdır. Sahne ağı verilerini depolayan veya aktaran uygulamaların, bunu yapabilmek için her zaman kullanıcıdan etkin ve belirli bir kabul istemesi önemle tavsiye edilir.
İzinler
Android uygulamalarının manifest dosyalarında android.permission.SCENE_UNDERSTANDING_FINE izni listelenmelidir. android.permission.SCENE_UNDERSTANDING_FINE izni, çalışma zamanının kullanıcı ortamını incelemesine olanak tanıdığı için hassas bilgilere erişim izni olarak kabul edilir.
Uygulama, bu işlevleri kullanmak için çalışma zamanında izni istemelidir:
- xrCreateSceneMeshingTrackerANDROID
- xrDestroySceneMeshingTrackerANDROID
- xrCreateSceneMeshSnapshotANDROID
- xrDestroySceneMeshSnapshotANDROID
- xrGetAllSubmeshStatesANDROID
- xrGetSubmeshDataANDROID
(koruma düzeyi: tehlikeli)
Sistem kapasitesini inceleme
XrSystemSceneMeshingPropertiesANDROID yapısı şu şekilde tanımlanır:
typedef struct XrSystemSceneMeshingPropertiesANDROID {
XrStructureType type;
void* next;
XrBool32 supportsSceneMeshing;
} XrSystemSceneMeshingPropertiesANDROID;
Üye Açıklamaları
type, bu yapının XrStructureType'ıdır.next,NULLveya bir yapı zincirindeki sonraki yapının işaretçisidir. Temel OpenXR'de veya bu uzantıda bu tür yapılar tanımlanmamıştır.supportsSceneMeshing, sistemin sahne birleştirmeyi destekleyip desteklemediğini gösteren birXrBool32.
Bir uygulama, xrGetSystemProperties çağrılırken XrSystemSceneMeshingPropertiesANDROID yapısını XrSystemProperties'e zincirleyerek sistemin sahne ağ oluşturma özelliğine sahip olup olmadığını inceleyebilir .
Bir çalışma zamanı supportsSceneMeshing için XR_FALSE döndürürse sistem sahne birleştirme özelliğini desteklemez ve bu nedenle xrCreateSceneMeshingTrackerANDROID işlevinden XR_ERROR_FEATURE_UNSUPPORTED döndürmesi gerekir . Uygulama, supportsSceneMeshing değeri XR_FALSE olduğunda sahne birleştirme işlevini kullanmaktan kaçınmalıdır .
Bir çalışma zamanı, supportsSceneMeshing için XR_TRUE döndürürse sistem, sahne ağını destekler.
Geçerli Kullanım (Dolaylı)
-
XR_ANDROID_scene_meshinguzantısı, XrSystemSceneMeshingPropertiesANDROID kullanılmadan önce etkinleştirilmelidir. -
typeXR_TYPE_SYSTEM_SCENE_MESHING_PROPERTIES_ANDROIDolmalıdır. -
nextzorunlu olarakNULLveya bir yapı zincirindeki sonraki yapıya yönelik geçerli bir işaretçi olmalıdır.
XrSceneMeshSemanticLabelSetANDROID numaralandırması, sahne ağı oluşturma için anlamsal etiket kümelerini açıklar. Bu enum'daki her değer, anlamsal etiketleri içeren başka bir enum'u temsil eder. Örneğin, XR_SCENE_MESH_SEMANTIC_LABEL_SET_DEFAULT_ANDROID değeri XrSceneMeshSemanticLabelANDROID kümesini temsil eder .
typedef enum XrSceneMeshSemanticLabelSetANDROID {
XR_SCENE_MESH_SEMANTIC_LABEL_SET_NONE_ANDROID = 0,
XR_SCENE_MESH_SEMANTIC_LABEL_SET_DEFAULT_ANDROID = 1,
XR_SCENE_MESH_SEMANTIC_LABEL_SET_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrSceneMeshSemanticLabelSetANDROID;
Numaralandırma değerleri aşağıdaki anlamlara sahiptir:
Enum Açıklaması
XR_SCENE_MESH_SEMANTIC_LABEL_SET_NONE_ANDROID
Bu anlamsal etiket grubu, anlamsal etiketlerin olmadığını gösterir.
XR_SCENE_MESH_SEMANTIC_LABEL_SET_DEFAULT_ANDROID
Bu anlamsal etiket kümesi, XrSceneMeshSemanticLabelANDROID'i temsil eder.
xrEnumerateSupportedSemanticLabelSetsANDROID işlevi şu şekilde tanımlanır:
XrResult xrEnumerateSupportedSemanticLabelSetsANDROID(
XrInstance instance,
XrSystemId systemId,
uint32_t supportedSemanticLabelSetsInputCapacity,
uint32_t* supportedSemanticLabelSetsOutputCount,
XrSceneMeshSemanticLabelSetANDROID* supportedSemanticLabelSets);
Parametre Açıklamaları
instance, uygulama tarafından oluşturulan bir XrInstance'tır.systemId,XrSystemIdxrGetSystem işlevinden yeniden deneniyor .supportedSemanticLabelSetsInputCapacity,supportedSemanticLabelSetskapasitesidir veya gerekli kapasiteyi almak için 0'dır.supportedSemanticLabelSetsOutputCount, yazılansupportedSemanticLabelSetssayısının işaretçisidir veyasupportedSemanticLabelSetsInputCapacityyetersizse gerekli kapasitenin işaretçisidir.supportedSemanticLabelSets, XrSceneMeshSemanticLabelSetANDROID dizisinin işaretçisidir .supportedSemanticLabelSetsInputCapacity0 ise sonuçNULLolabilir.- Gerekli
supportedSemanticLabelSetsboyutunun alınmasıyla ilgili ayrıntılı açıklama için Arabellek Boyutu Parametreleri bölümüne bakın.
Uygulama, xrEnumerateSupportedSemanticLabelSetsANDROID işlevini kullanarak sistem tarafından desteklenen anlamsal etiket kümelerini numaralandırabilir.
Bu enum değeri, anlamsal etiket kümesi olmadığını temsil ettiğinden ve uygulamanın köşe anlambilimine ihtiyacı olmadığı durumlarda kullanılabildiğinden her sistem en azından XR_SCENE_MESH_SEMANTIC_LABEL_SET_NONE_ANDROID'ı desteklemelidir.
Geçerli Kullanım (Dolaylı)
- xrEnumerateSupportedSemanticLabelSetsANDROID çağrılmadan önce
XR_ANDROID_scene_meshinguzantısı etkinleştirilmelidir. -
instancegeçerli bir XrInstance işleyeni olmalıdır. -
supportedSemanticLabelSetsOutputCount,uint32_tdeğerine yönelik bir işaretçi olmalıdır. -
supportedSemanticLabelSetsInputCapacity,0değilsesupportedSemanticLabelSets,supportedSemanticLabelSetsInputCapacityXrSceneMeshSemanticLabelSetANDROID değerleri dizisine yönelik bir işaretçi olmalıdır.
Dönüş Kodları
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SIZE_INSUFFICIENTXR_ERROR_SYSTEM_INVALIDXR_ERROR_VALIDATION_FAILURE
Sahne birleştirme takip aracı oluşturma
XR_DEFINE_HANDLE(XrSceneMeshingTrackerANDROID)
XrSceneMeshingTrackerANDROID işleyici, sahne meshing için bir sahne meshing izleyiciyi ve ilgili kaynakları yönetmeyi temsil eder.
Bu tutma yeri, bu uzantıda xrCreateSceneMeshSnapshotANDROID kullanılarak sahne ağı anlık görüntüsü oluşturmak için kullanılabilir.
xrCreateSceneMeshingTrackerANDROID işlevi şu şekilde tanımlanır:
XrResult xrCreateSceneMeshingTrackerANDROID(
XrSession session,
const XrSceneMeshingTrackerCreateInfoANDROID* createInfo,
XrSceneMeshingTrackerANDROID* tracker);
Parametre Açıklamaları
session, sahne ağı izleyicinin etkin olacağı bir XrSession'dır.createInfo, oluşturulacak sahne örgü izleyiciyi tanımlamak için kullanılan bir XrSceneMeshingTrackerCreateInfoANDROID yapısının işaretçisidir.tracker, döndürülen XrSceneMeshingTrackerANDROID tutma yeridir.
Bir uygulama, xrCreateSceneMeshingTrackerANDROID işlevini kullanarak XrSceneMeshingTrackerANDROID tutacağı oluşturabilir.
Sistem, sahne birleştirme özelliğini desteklemiyorsa çalışma zamanı, xrCreateSceneMeshingTrackerANDROID işlevinden XR_ERROR_FEATURE_UNSUPPORTED değerini döndürmelidir . Bu durumda, uygulamanın sahne ağı izleyici oluşturmasını önlemek için xrGetSystemProperties işlevi çağrıldığında çalışma zamanı XrSystemSceneMeshingPropertiesANDROID :: supportsSceneMeshing için XR_FALSE değerini döndürmelidir.
Uygulama, sahne ağı izleyici oluştururken XrSceneMeshingTrackerCreateInfoANDROID :: semanticLabelSet içinde yalnızca sistem tarafından desteklenen semantik etiket kümelerini kullanmalıdır. Uygulama, desteklenmeyen bir sahne ağı köşe noktası anlamsal etiket kümesi kullanıyorsa çalışma zamanı, xrCreateSceneMeshingTrackerANDROID işlevinden XR_ERROR_FEATURE_UNSUPPORTED değerini döndürmelidir.
Uygulama, xrEnumerateSupportedSemanticLabelSetsANDROID işleviyle desteklenen anlamsal etiket kümelerinin listesini numaralandırabilir.
xrCreateSceneMeshingTrackerANDROID işleyici, sahne ağ oluşturmayla ilgili tüm kaynaklara sahiptir. Sahne ağı oluşturma deneyimi tamamlandıktan sonra uygulama, xrDestroySceneMeshingTrackerANDROID işlevi aracılığıyla tanıtıcıyı kaldırmalıdır.
Geçerli Kullanım (Dolaylı)
-
XR_ANDROID_scene_meshinguzantısı, xrCreateSceneMeshingTrackerANDROID çağrılmadan önce etkinleştirilmelidir. -
sessiongeçerli bir XrSession işleyeni olmalıdır. -
createInfogeçerli bir XrSceneMeshingTrackerCreateInfoANDROID yapısına yönelik bir işaretçi olmalıdır. -
trackerXrSceneMeshingTrackerANDROID tanıtıcısına işaretçi olmalıdır.
Dönüş Kodları
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FEATURE_UNSUPPORTEDXR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_VALIDATION_FAILURE
XrSceneMeshingTrackerCreateInfoANDROID yapısı şu şekilde tanımlanır:
typedef struct XrSceneMeshingTrackerCreateInfoANDROID {
XrStructureType type;
const void* next;
XrSceneMeshSemanticLabelSetANDROID semanticLabelSet;
XrBool32 enableNormals;
} XrSceneMeshingTrackerCreateInfoANDROID;
Üye Açıklamaları
type, bu yapının XrStructureType'ıdır.next,NULLveya bir yapı zincirindeki sonraki yapının işaretçisidir. Temel OpenXR'de veya bu uzantıda bu tür yapılar tanımlanmamıştır.semanticLabelSet, sahne ağ oluşturma için kullanılacak semantik etiket grubunu belirtmek üzere kullanılan bir XrSceneMeshSemanticLabelSetANDROID'dir. Bu değerXR_SCENE_MESH_SEMANTIC_LABEL_SET_NONE_ANDROIDolarak ayarlanırsa çalışma zamanı , XrSceneSubmeshDataANDROID ::vertexSemanticsarabellek alanını yoksayar.enableNormals, sahne ağı verileri alınırken sahne ağı arabelleğindeki ağ köşeleri için köşe normallerinin dahil edilip edilmeyeceğini belirtmek üzere kullanılan birXrBool32'dir.
XrSceneMeshingTrackerCreateInfoANDROID yapısı, XrSceneMeshingTrackerANDROID tutacını oluşturmak için gereken bilgileri açıklar.
Geçerli Kullanım (Dolaylı)
- XrSceneMeshingTrackerCreateInfoANDROID kullanılmadan önce
XR_ANDROID_scene_meshinguzantısı etkinleştirilmelidir. -
typeXR_TYPE_SCENE_MESHING_TRACKER_CREATE_INFO_ANDROIDolmalıdır. -
nextzorunlu olarakNULLveya bir yapı zincirindeki sonraki yapıya yönelik geçerli bir işaretçi olmalıdır. -
semanticLabelSetgeçerli bir XrSceneMeshSemanticLabelSetANDROID değeri olmalıdır.
xrDestroySceneMeshingTrackerANDROID işlevi şu şekilde tanımlanır:
XrResult xrDestroySceneMeshingTrackerANDROID(
XrSceneMeshingTrackerANDROID tracker);
Parametre Açıklamaları
tracker, daha önce xrCreateSceneMeshingTrackerANDROID tarafından oluşturulan bir XrSceneMeshingTrackerANDROID'dir .
xrDestroySceneMeshingTrackerANDROID işlevi, sahne ağı deneyimleri tamamlandığında tracker ve temel kaynakları serbest bırakır.
Geçerli Kullanım (Dolaylı)
-
XR_ANDROID_scene_meshinguzantısı, xrDestroySceneMeshingTrackerANDROID çağrılmadan önce etkinleştirilmelidir. -
trackergeçerli bir XrSceneMeshingTrackerANDROID tutma yeri olmalıdır.
İş Parçacığı Güvenliği (Thread Safety)
trackerve tüm alt tutma yerlerine erişim, harici olarak senkronize edilmelidir.
Dönüş Kodları
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_RUNTIME_FAILURE
Sahne ağı anlık görüntü tutma yeri oluşturma
XR_DEFINE_HANDLE(XrSceneMeshSnapshotANDROID)
XrSceneMeshSnapshotANDROID işleyici, sahne ağı anlık görüntüsünü temsil eder. Bu anlık görüntü, işlev çağrısı sırasında sahne ağı verilerinin anlık görüntüsünü alan xrCreateSceneMeshSnapshotANDROID kullanılarak oluşturulur.
Bu işleyici, xrGetAllSubmeshStatesANDROID ve xrGetSubmeshDataANDROID kullanılarak alt ağ bilgileri ve verilerini almak için kullanılabilir .
xrCreateSceneMeshSnapshotANDROID işlevi şu şekilde tanımlanır:
XrResult xrCreateSceneMeshSnapshotANDROID(
XrSceneMeshingTrackerANDROID tracker,
const XrSceneMeshSnapshotCreateInfoANDROID* createInfo,
XrSceneMeshSnapshotCreationResultANDROID* outSnapshotCreationResult);
Parametre Açıklamaları
tracker, daha önce xrCreateSceneMeshingTrackerANDROID ile oluşturulmuş bir XrSceneMeshingTrackerANDROID tutamacıdır .createInfo, sahne ağı anlık görüntüsünü oluşturmak için gereken bilgileri içeren bir XrSceneMeshSnapshotCreateInfoANDROID yapısının işaretçisidir.outSnapshotCreationResult, anlık görüntü oluşturma sonucuyla çalışma zamanı tarafından doldurulan bir XrSceneMeshSnapshotCreationResultANDROID nesnesine yönelik bir işaretçidir.
Uygulama, sahne ağı izleyicisinden sahne ağı anlık görüntüsü oluşturmak için xrCreateSceneMeshSnapshotANDROID işlevini kullanabilir. Bu işlev, XrSceneMeshSnapshotCreationResultANDROID yapısına sarılmış XrSceneMeshTrackingStateANDROID ile birlikte bir XrSceneMeshSnapshotANDROID tutma yerini döndürür. Tutma yeri, teknik olarak oluşturma sırasında sahne ağı verilerinin anlık görüntüsüdür. Bu işleyici, sırasıyla xrGetAllSubmeshStatesANDROID ve xrGetSubmeshDataANDROID kullanılarak sahne ağı bilgilerini ve verilerini sorgulamak için kullanılabilir.
Geçerli Kullanım (Dolaylı)
- xrCreateSceneMeshSnapshotANDROID çağrılmadan önce
XR_ANDROID_scene_meshinguzantısı etkinleştirilmelidir. -
trackergeçerli bir XrSceneMeshingTrackerANDROID tutma yeri olmalıdır. -
createInfogeçerli bir XrSceneMeshSnapshotCreateInfoANDROID yapısının işaretçisi olmalıdır. -
outSnapshotCreationResultXrSceneMeshSnapshotCreationResultANDROID yapısına yönelik bir işaretçi olmalıdır.
Dönüş Kodları
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_POSE_INVALIDXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_TIME_INVALID
XrSceneMeshSnapshotCreateInfoANDROID yapısı şu şekilde tanımlanır:
typedef struct XrSceneMeshSnapshotCreateInfoANDROID {
XrStructureType type;
const void* next;
XrSpace baseSpace;
XrTime time;
XrBoxf boundingBox;
} XrSceneMeshSnapshotCreateInfoANDROID;
Üye Açıklamaları
type, bu yapının XrStructureType'ıdır.next,NULLveya bir yapı zincirindeki sonraki yapının işaretçisidir. Temel OpenXR'de veya bu uzantıda bu tür yapılar tanımlanmamıştır.baseSpace, sahne alt ağı duruş bilgilerinin temsil edildiği bir XrSpace'tir.time, sahne ağı işlenirken veya görüntülenirken geçen süreyi açıklayanXrTimedeğeridir. Genellikle XrFrameState ::predictedDisplayTimeolur.boundingBox, sahne ağının elde edileceği sınırlayıcı kutuyu açıklayan bir XrBoxf'dir.
XrSceneMeshSnapshotCreateInfoANDROID yapısı, XrSceneMeshSnapshotANDROID tutacını oluşturmak için gereken bilgileri açıklar.
Geçerli Kullanım (Dolaylı)
- XrSceneMeshSnapshotCreateInfoANDROID kullanılmadan önce
XR_ANDROID_scene_meshinguzantısı etkinleştirilmelidir. -
typeXR_TYPE_SCENE_MESH_SNAPSHOT_CREATE_INFO_ANDROIDolmalıdır. -
nextzorunlu olarakNULLveya bir yapı zincirindeki sonraki yapıya yönelik geçerli bir işaretçi olmalıdır. -
baseSpaceGeçerli bir XrSpace hesabı olmalıdır.
XrSceneMeshSnapshotCreationResultANDROID yapısı şu şekilde tanımlanır:
typedef struct XrSceneMeshSnapshotCreationResultANDROID {
XrStructureType type;
const void* next;
XrSceneMeshSnapshotANDROID snapshot;
XrSceneMeshTrackingStateANDROID trackingState;
} XrSceneMeshSnapshotCreationResultANDROID;
Üye Açıklamaları
type, bu yapının XrStructureType'ıdır.next,NULLveya bir yapı zincirindeki sonraki yapının işaretçisidir. Temel OpenXR'de veya bu uzantıda bu tür yapılar tanımlanmamıştır.snapshot, çalışma zamanı tarafından oluşturulan bir XrSceneMeshSnapshotANDROID tutamağıdır.trackingState, anlık görüntü oluşturma sırasında sahne ağı izleyicinin durumunu açıklayan bir XrSceneMeshTrackingStateANDROID'dir.
XrSceneMeshSnapshotCreationResultANDROID yapısı, xrCreateSceneMeshSnapshotANDROID işlevinden döndürülen sahne ağı anlık görüntüsü oluşturma işleminin sonucunu saklar .
Geçerli Kullanım (Dolaylı)
- XrSceneMeshSnapshotCreationResultANDROID kullanılmadan önce
XR_ANDROID_scene_meshinguzantısı etkinleştirilmelidir. -
typeXR_TYPE_SCENE_MESH_SNAPSHOT_CREATION_RESULT_ANDROIDolmalıdır. -
nextzorunlu olarakNULLveya bir yapı zincirindeki sonraki yapıya yönelik geçerli bir işaretçi olmalıdır. -
snapshotgeçerli bir XrSceneMeshSnapshotANDROID işleyeni olmalıdır. -
trackingStategeçerli bir XrSceneMeshTrackingStateANDROID değeri olmalıdır.
XrSceneMeshTrackingStateANDROID numaralandırması, sahne ağı izleyicinin izleme durumunu açıklar. Bu numaralandırmadaki her değer, sahne ağı izleyicinin bir durumunu temsil eder.
typedef enum XrSceneMeshTrackingStateANDROID {
XR_SCENE_MESH_TRACKING_STATE_INITIALIZING_ANDROID = 0,
XR_SCENE_MESH_TRACKING_STATE_TRACKING_ANDROID = 1,
XR_SCENE_MESH_TRACKING_STATE_WAITING_ANDROID = 2,
XR_SCENE_MESH_TRACKING_STATE_ERROR_ANDROID = 3,
XR_SCENE_MESH_TRACKING_STATE_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrSceneMeshTrackingStateANDROID;
Numaralandırma değerleri aşağıdaki anlamlara sahiptir:
Enum Açıklaması
XR_SCENE_MESH_TRACKING_STATE_INITIALIZING_ANDROID
İzleyici henüz mesh verileri sağlamaya hazır değil.
XR_SCENE_MESH_TRACKING_STATE_TRACKING_ANDROID
İzleyici aktif olarak izleme yapıyordur.
XR_SCENE_MESH_TRACKING_STATE_WAITING_ANDROID
Takip cihazı, son ağ güncellemesinden bu yana geçerli ölçümlerin entegre edilmesini bekliyor.
XR_SCENE_MESH_TRACKING_STATE_ERROR_ANDROID
Takip cihazı, birden fazla döngü boyunca geçerli ölçümler almadı ve hata durumunda.
Bu durum yalnızca uygulamaya ek bilgi olarak sunulur. Başka hata kaynakları yoksa çalışma zamanı, izleyicinin mevcut XrSceneMeshTrackingStateANDROID durumundan bağımsız olarak uygulamanın anlık görüntüler oluşturmasına ve bunlardan veri almasına izin vermeye devam etmelidir. Durum XR_SCENE_MESH_TRACKING_STATE_TRACKING_ANDROID değilse anlık görüntüler güncel olmayabilir veya boş olabilir.
Sahne ağı anlık görüntüsünden sahne ağı verilerini edinme
xrGetAllSubmeshStatesANDROID işlevi şu şekilde tanımlanır:
XrResult xrGetAllSubmeshStatesANDROID(
XrSceneMeshSnapshotANDROID snapshot,
uint32_t submeshStateCapacityInput,
uint32_t* submeshStateCountOutput,
XrSceneSubmeshStateANDROID* submeshStates);
Parametre Açıklamaları
snapshot, daha önce xrCreateSceneMeshSnapshotANDROID ile oluşturulmuş bir XrSceneMeshSnapshotANDROID tutamacıdır .submeshStateCapacityInput,submeshStateskapasitesidir veya gerekli kapasiteyi almak için 0'dır.submeshStateCountOutput, yazılansubmeshStatessayısının işaretçisidir veyasubmeshStateCapacityInputyetersizse gerekli kapasitenin işaretçisidir.submeshStates, çalışma zamanının sahne ağındaki tüm alt ağların durumunu çıkış olarak vereceği XrSceneSubmeshStateANDROID yapıları dizisine yönelik bir işaretçidir.submeshStateCapacityInput0 ise sonuçNULLolabilir.- Gerekli
submeshStatesboyutunun alınmasıyla ilgili ayrıntılı açıklama için Arabellek Boyutu Parametreleri bölümüne bakın.
Uygulama, sahne ağındaki tüm alt ağların durumunu almak için xrGetAllSubmeshStatesANDROID işlevini kullanabilir. Bu, uygulamanın veri istediği alt ağları seçmesine olanak tanıyan temel bilgileri içerir.
Geçerli Kullanım (Dolaylı)
- xrGetAllSubmeshStatesANDROID çağrılmadan önce
XR_ANDROID_scene_meshinguzantısı etkinleştirilmelidir. -
snapshotgeçerli bir XrSceneMeshSnapshotANDROID işleyeni olmalıdır. -
submeshStateCountOutput,uint32_tdeğerine yönelik bir işaretçi olmalıdır. -
submeshStateCapacityInput,0değilsesubmeshStates,submeshStateCapacityInputXrSceneSubmeshStateANDROID yapılarından oluşan bir dizinin işaretçisi olmalıdır.
Dönüş Kodları
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_SIZE_INSUFFICIENTXR_ERROR_VALIDATION_FAILURE
XrSceneSubmeshStateANDROID yapısı şu şekilde tanımlanır:
typedef struct XrSceneSubmeshStateANDROID {
XrStructureType type;
void* next;
XrUuid submeshId;
XrTime lastUpdatedTime;
XrPosef submeshPoseInBaseSpace;
XrExtent3Df bounds;
} XrSceneSubmeshStateANDROID;
Üye Açıklamaları
type, bu yapının XrStructureType'ıdır.next,NULLveya bir yapı zincirindeki sonraki yapının işaretçisidir. Temel OpenXR'de veya bu uzantıda bu tür yapılar tanımlanmamıştır.submeshId, alt ağı tanımlayan bir XrUuid'dir.lastUpdatedTime, alt ağın en son güncellendiği zamanı gösteren birXrTime'dir.submeshPoseInBaseSpace, sahne ağı anlık görüntüsü oluşturmak için kullanılan temel alandaki alt ağın pozunu temsil eden bir XrPosef'dir. Poz, alt ağ sınırlayıcı kutusunun da merkezidir.bounds, alt ağı çevreleyen sınırlayıcı kutunun boyutlarını açıklayan bir XrExtent3Df'dir. Bu sınır, sahne ağı tutacını oluşturmak için kullanılan temel alanda tanımlanır.
Çalışma zamanı, submeshId öğesini alt ağın kapladığı fiziksel alanın bölgesiyle eşlemek için elinden geleni yapar. Çalışma zamanları bu eşlemeyi istediği zaman kaybedebilir ve algılanan alt ağların herhangi bir alt kümesine yeni bir UUID atayabilir. Özellikle, sonraki uygulama örneklerinde aynı ağlar için aynı UUID'lerin yeniden kullanılması gerekmez.
Geçerli Kullanım (Dolaylı)
- XrSceneSubmeshStateANDROID kullanılmadan önce
XR_ANDROID_scene_meshinguzantısı etkinleştirilmelidir. -
typeXR_TYPE_SCENE_SUBMESH_STATE_ANDROIDolmalıdır. -
nextzorunlu olarakNULLveya bir yapı zincirindeki sonraki yapıya yönelik geçerli bir işaretçi olmalıdır.
xrGetSubmeshDataANDROID işlevi şu şekilde tanımlanır:
XrResult xrGetSubmeshDataANDROID(
XrSceneMeshSnapshotANDROID snapshot,
uint32_t submeshDataCount,
XrSceneSubmeshDataANDROID* inoutSubmeshData);
Parametre Açıklamaları
snapshot, daha önce xrCreateSceneMeshSnapshotANDROID ile oluşturulmuş bir XrSceneMeshSnapshotANDROID tutamacıdır .submeshDataCount,inoutSubmeshDatauzunluğundadır .inoutSubmeshData, XrSceneSubmeshDataANDROID için ayrılmış bir uygulama dizisidir. Çalışma zamanı, her öğeyi XrSceneSubmeshDataANDROID ::submeshIdiçinde iletilen alt ağ kimliğiyle ilişkili ağ verileriyle doldurur.
Uygulama, alt ağ gruplarını veya tüm alt ağları tek seferde almak için xrGetSubmeshDataANDROID işlevini kullanabilir. Bunun için, alınacak alt ağın ilgili kimliğine ayarlanmış her XrSceneSubmeshDataANDROID :: submeshId ile birlikte bir XrSceneSubmeshDataANDROID listesi iletilir.
XrSceneSubmeshDataANDROID :: submeshId, inoutSubmeshData içindeki her öğe için benzersiz olmalı ve aynı snapshot için xrGetAllSubmeshStatesANDROID tarafından alınabilir olmalıdır . Alt ağ kimliği geçersizse veya inoutSubmeshData içinde birden fazla öğe aynı alt ağ kimliğine sahipse çalışma zamanı XR_ERROR_VALIDATION_FAILURE değerini döndürmelidir .
submeshDataCount, submeshStateCountOutput xrGetAllSubmeshStatesANDROID tarafından döndürülen değere eşit veya daha küçük olmalıdır. Aksi takdirde, çalışma zamanı XR_ERROR_VALIDATION_FAILURE döndürmelidir.
Bu, seçilen tüm alt ağlar için tepe noktası ve dizin sayısını sorgulamak üzere 2 çağrılı bir deyimde kullanılabilir.
Geçerli Kullanım (Dolaylı)
- xrGetSubmeshDataANDROID çağrılmadan önce
XR_ANDROID_scene_meshinguzantısı etkinleştirilmelidir. -
snapshotgeçerli bir XrSceneMeshSnapshotANDROID işleyeni olmalıdır. -
inoutSubmeshDatasubmeshDataCountXrSceneSubmeshDataANDROID yapılarının dizisine yönelik bir işaretçi olmalıdır. -
submeshDataCountparametresi değerinden büyük olmalıdır.0
Dönüş Kodları
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_SIZE_INSUFFICIENTXR_ERROR_VALIDATION_FAILURE
XrSceneSubmeshDataANDROID yapısı şu şekilde tanımlanır:
typedef struct XrSceneSubmeshDataANDROID {
XrStructureType type;
const void* next;
XrUuid submeshId;
uint32_t vertexCapacityInput;
uint32_t vertexCountOutput;
XrVector3f* vertexPositions;
XrVector3f* vertexNormals;
uint8_t* vertexSemantics;
uint32_t indexCapacityInput;
uint32_t indexCountOutput;
uint32_t* indices;
} XrSceneSubmeshDataANDROID;
Üye Açıklamaları
type, bu yapının XrStructureType'ıdır.next,NULLveya bir yapı zincirindeki sonraki yapının işaretçisidir. Temel OpenXR'de veya bu uzantıda bu tür yapılar tanımlanmamıştır.submeshId, alt ağı tanımlayan bir XrUuid'dir.vertexCapacityInput,vertexPositions,vertexNormalsvevertexSemantics'nin kapasitesidir veya gerekli kapasiteyi almak için 0'dır.vertexCountOutput,vertexPositions,vertexNormalsvevertexSemanticsyazılanların sayısına yönelik bir işaretçidir veyavertexCapacityInputyetersizse gerekli kapasiteye yönelik bir işaretçidir.vertexPositions, çalışma zamanının alt ağın köşe konumlarını çıkış olarak vereceği bir XrVector3f dizisidir.vertexNormals, çalışma zamanının alt ağın köşe normallerini çıkış olarak vereceği bir XrVector3f dizisidir. Uygulama, normal değerlerin devre dışı bırakıldığı bir izleyici oluşturduysa bu alan boş bırakılabilir.NULLvertexSemantics, çalışma zamanının alt ağın köşe anlamlarını çıkış olarak vereceğiuint8_tdizisidir. Uygulama,XR_SCENE_MESH_SEMANTIC_LABEL_SET_NONE_ANDROIDsemantik etiket kümesiyle bir izleyici oluşturduysa bu alan boş bırakılabilir (NULL).indexCapacityInput,indiceskapasitesidir veya gerekli kapasiteyi almak için 0'dır.indexCountOutput, yazılanindicessayısının işaretçisidir veyavertexCapacityInputyetersizse gerekli kapasitenin işaretçisidir.indices, çalışma zamanının alt ağın dizinlerini çıkış olarak vereceğiuint32_tdizisidir.- Gerekli
vertexPositions,vertexNormals,vertexSemanticsveindicesboyutunun alınmasıyla ilgili ayrıntılı açıklama için Arabellek Boyutu Parametreleri bölümüne bakın.
Geçerli Kullanım (Dolaylı)
- XrSceneSubmeshDataANDROID kullanılmadan önce
XR_ANDROID_scene_meshinguzantısı etkinleştirilmelidir. -
typeXR_TYPE_SCENE_SUBMESH_DATA_ANDROIDolmalıdır. -
nextzorunlu olarakNULLveya bir yapı zincirindeki sonraki yapıya yönelik geçerli bir işaretçi olmalıdır. -
vertexCapacityInput,0değilsevertexPositions,vertexCapacityInputXrVector3f yapılarından oluşan bir dizinin işaretçisi olmalıdır. -
vertexCapacityInput,0değilsevertexNormals,vertexCapacityInputXrVector3f yapılarından oluşan bir dizinin işaretçisi olmalıdır. -
vertexCapacityInputdeğeri0değilsevertexSemantics,vertexCapacityInputuint8_tdeğerlerinden oluşan bir diziye yönelik işaretçi olmalıdır. -
indexCapacityInputdeğeri0değilseindices,indexCapacityInputuint32_tdeğerlerinden oluşan bir diziye yönelik işaretçi olmalıdır.
XrSceneMeshSemanticLabelANDROID numaralandırması, örgü köşelerini etiketlemek için kullanılabilecek varsayılan semantik etiketler kümesidir. Bu etiketler, örgü köşesinin hangi fiziksel ortam yüzeyinde olduğunu açıklar. Bu enum kümesi, XrSceneMeshSemanticLabelSetANDROID içindeki XR_SCENE_MESH_SEMANTIC_LABEL_SET_DEFAULT_ANDROID değeriyle temsil edilir .
typedef enum XrSceneMeshSemanticLabelANDROID {
XR_SCENE_MESH_SEMANTIC_LABEL_OTHER_ANDROID = 0,
XR_SCENE_MESH_SEMANTIC_LABEL_FLOOR_ANDROID = 1,
XR_SCENE_MESH_SEMANTIC_LABEL_CEILING_ANDROID = 2,
XR_SCENE_MESH_SEMANTIC_LABEL_WALL_ANDROID = 3,
XR_SCENE_MESH_SEMANTIC_LABEL_TABLE_ANDROID = 4,
XR_SCENE_MESH_SEMANTIC_LABEL_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrSceneMeshSemanticLabelANDROID;
Numaralandırılmış değerler aşağıdaki anlamlara gelir:
Enum Açıklaması
XR_SCENE_MESH_SEMANTIC_LABEL_OTHER_ANDROID
Bu anlamsal etiket, ilgili ağ öğesinin bilinmeyen bir nesneyi temsil ettiğini gösterir.
XR_SCENE_MESH_SEMANTIC_LABEL_FLOOR_ANDROID
Bu anlamsal etiket, ilgili örgü öğesinin bir zemini temsil ettiğini gösterir.
XR_SCENE_MESH_SEMANTIC_LABEL_CEILING_ANDROID
Bu anlamsal etiket, ilgili ağ öğesinin tavanı temsil ettiğini gösterir.
XR_SCENE_MESH_SEMANTIC_LABEL_WALL_ANDROID
Bu anlamsal etiket, ilgili örgü öğesinin bir duvarı temsil ettiğini gösterir.
XR_SCENE_MESH_SEMANTIC_LABEL_TABLE_ANDROID
Bu anlamsal etiket, ilgili örgü öğesinin bir tabloyu temsil ettiğini gösterir.
Sahne ağı anlık görüntüsünü silme
xrDestroySceneMeshSnapshotANDROID işlevi şu şekilde tanımlanır:
XrResult xrDestroySceneMeshSnapshotANDROID(
XrSceneMeshSnapshotANDROID snapshot);
Parametre Açıklamaları
snapshot, daha önce xrCreateSceneMeshSnapshotANDROID ile oluşturulmuş ve bu işlev tarafından yok edilecek bir XrSceneMeshSnapshotANDROID tutamağıdır.
Uygulama, sahne ağı anlık görüntüsünü silmek için xrDestroySceneMeshSnapshotANDROID işlevini kullanabilir. İşleyici yok edildiğinde uygulama, alt ağ bilgisi veya verilerini almak için artık işleyiciyi kullanamaz. İzleyici tutma yeri, sahne ağı anlık görüntüsü tutma yerinin üst öğesi olduğundan izleyici yok edildiğinde tutma yeri otomatik olarak yok edilir.
Geçerli Kullanım (Dolaylı)
-
XR_ANDROID_scene_meshinguzantısı, xrDestroySceneMeshSnapshotANDROID çağrılmadan önce etkinleştirilmelidir. -
snapshotgeçerli bir XrSceneMeshSnapshotANDROID işleyeni olmalıdır.
İş parçacığı güvenliği
snapshotve tüm alt tutma yerlerine erişim, harici olarak senkronize edilmelidir.
Dönüş Kodları
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_RUNTIME_FAILURE
Sahne ağı oluşturma için örnek kod
Aşağıdaki örnek kodda, oluşturma için sahne ağı verilerine nasıl erişileceği gösterilmektedir.
XrInstance instance; // Created at app startup
XrSystemId systemId; // Received from xrGetSystem() at app startup
XrSession session; // Created at app startup
XrSpace appPlaySpace; // Created at app startup
// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrCreateSceneMeshingTrackerANDROID xrCreateSceneMeshingTrackerANDROID;
PFN_xrDestroySceneMeshingTrackerANDROID xrDestroySceneMeshingTrackerANDROID;
PFN_xrEnumerateSupportedSemanticLabelSetsANDROID xrEnumerateSupportedSemanticLabelSetsANDROID;
PFN_xrCreateSceneMeshSnapshotANDROID xrCreateSceneMeshSnapshotANDROID;
PFN_xrDestroySceneMeshSnapshotANDROID xrDestroySceneMeshSnapshotANDROID;
PFN_xrGetAllSubmeshStatesANDROID xrGetAllSubmeshStatesANDROID;
PFN_xrGetSubmeshDataANDROID xrGetSubmeshDataANDROID;
// Inspect system capability
XrSystemSceneMeshingPropertiesANDROID sceneMeshingProps = {
.type = XR_TYPE_SYSTEM_SCENE_MESHING_PROPERTIES_ANDROID,
};
XrSystemProperties sysProps = {
.type = XR_TYPE_SYSTEM_PROPERTIES,
.next = &sceneMeshingProps
};
CHK_XR(xrGetSystemProperties(instance, systemId, &sysProps));
if (!sceneMeshingProps.supportsSceneMeshing) {
// scene meshing is not supported.
return;
}
uint32_t supportedsemanticLabelSetsCount = 0;
xrEnumerateSupportedSemanticLabelSetsANDROID(
instance, systemId, 0, &supportedsemanticLabelSetsCount, nullptr);
std::vector<XrSceneMeshSemanticLabelSetANDROID> supportedSemanticLabelSets(
supportedsemanticLabelSetsCount);
xrEnumerateSupportedSemanticLabelSetsANDROID(
instance, systemId, supportedsemanticLabelSetsCount,
&supportedsemanticLabelSetsCount, supportedSemanticLabelSets.data());
XrSceneMeshSemanticLabelSetANDROID semanticLabelSet = XR_SCENE_MESH_SEMANTIC_LABEL_SET_NONE_ANDROID;
// Check if system supports XR_SCENE_MESH_SEMANTIC_LABEL_SET_DEFAULT_ANDROID
if (std::find(supportedSemanticLabelSets.begin(), supportedSemanticLabelSets.end(),
XR_SCENE_MESH_SEMANTIC_LABEL_SET_DEFAULT_ANDROID) !=
supportedSemanticLabelSets.end()) {
semanticLabelSet = XR_SCENE_MESH_SEMANTIC_LABEL_SET_DEFAULT_ANDROID;
}
XrSceneMeshingTrackerCreateInfoANDROID trackerCreateInfo = {
.type = XR_TYPE_SCENE_MESHING_TRACKER_CREATE_INFO_ANDROID,
.semanticLabelSet = semanticLabelSet,
.enableNormals = XR_TRUE
};
XrSceneMeshingTrackerANDROID tracker = XR_NULL_HANDLE;
CHK_XR(xrCreateSceneMeshingTrackerANDROID(session, &trackerCreateInfo, &tracker));
XrSceneMeshSnapshotCreationResultANDROID snapshotResult {
.type = XR_TYPE_SCENE_MESH_SNAPSHOT_CREATION_RESULT_ANDROID,
.snapshot = XR_NULL_HANDLE
};
XrSceneMeshSnapshotANDROID& snapshot = snapshotResult.snapshot;
XrSceneMeshSnapshotCreateInfoANDROID createInfo {
.type = XR_TYPE_SCENE_MESH_SNAPSHOT_CREATE_INFO_ANDROID
};
// app update loop
while (true) {
// ...
// For every frame in frame loop
// ...
XrFrameState frameState; // previously returned from xrWaitFrame
const XrTime time = frameState.predictedDisplayTime;
XrBoxf box; // populated with the bounding box of the camera frustum
// ...
createInfo.baseSpace = appPlaySpace;
createInfo.time = time;
createInfo.boundingBox = box;
// Grab the scene mesh snapshot. This way the app can: know all of the submesh infos,
// choose the appropriate submeshes for which to get data, allocate the necessary
// buffer for those submeshes, and then get the data.
CHK_XR(xrCreateSceneMeshSnapshotANDROID(tracker, &createInfo, &snapshotResult));
// check the tracking state
if (snapshotResult.trackingState == XR_SCENE_MESH_TRACKING_STATE_ERROR_ANDROID) {
// unrecoverable error. Exit the app.
if (snapshot != XR_NULL_HANDLE) {
CHK_XR(xrDestroySceneMeshSnapshotANDROID(snapshot));
snapshot = XR_NULL_HANDLE;
}
break;
} else if (snapshotResult.trackingState != XR_SCENE_MESH_TRACKING_STATE_TRACKING_ANDROID) {
// The tracker is not tracking. Try again later.
if (snapshot != XR_NULL_HANDLE) {
CHK_XR(xrDestroySceneMeshSnapshotANDROID(snapshot));
snapshot = XR_NULL_HANDLE;
}
continue;
}
// 2-call idiom for getting submesh states
uint32_t submeshCount = 0;
CHK_XR(xrGetAllSubmeshStatesANDROID(snapshot, 0, &submeshCount, nullptr));
std::vector<XrSceneSubmeshStateANDROID> states(submeshCount, {
.type = XR_TYPE_SCENE_SUBMESH_STATE_ANDROID,
});
CHK_XR(xrGetAllSubmeshStatesANDROID(snapshot, submeshCount, &submeshCount, states.data()));
// To store the poses for the selected submeshes
std::vector<XrPosef> submeshesPoses;
submeshesPoses.reserve(submeshCount);
std::vector<XrSceneSubmeshDataANDROID> submeshes;
submeshes.reserve(submeshCount);
// Iterate the states and determine which submeshes the app wants data for
for (XrSceneSubmeshStateANDROID& state : states) {
// Modify this bool as necessary by looking at states. Maybe state.lastUpdatedTime
// is below a threshold or maybe the bounding box does not intersect with camera view
// frustum (The submesh will be culled).
bool needed;
if (needed) {
// Add the selected submesh to the submeshes list. Set the capacity
// zero for now since the size of the buffer will be determined later.
XrSceneSubmeshDataANDROID submesh {
.type = XR_TYPE_SCENE_SUBMESH_DATA_ANDROID,
.submeshId = state.submeshId,
.vertexCapacityInput = 0,
.vertexCountOutput = 0,
.vertexPositions = nullptr,
.vertexNormals = nullptr,
.vertexSemantics = nullptr,
.indexCapacityInput = 0,
.indexCountOutput = 0,
.indices = nullptr,
};
submeshes.push_back(submesh);
submeshesPoses.push_back(state.submeshPoseInBaseSpace);
}
}
// Grab the data for the selected submeshes using the 2-call idiom.
CHK_XR(xrGetSubmeshDataANDROID(snapshot, submeshes.size(), submeshes.data()));
for (XrSceneSubmeshDataANDROID& submesh : submeshes) {
submesh.vertexCapacityInput = submesh.vertexCountOutput;
submesh.vertexCountOutput = 0;
submesh.vertexPositions = new XrVector3f[submesh.vertexCapacityInput];
submesh.vertexNormals = new XrVector3f[submesh.vertexCapacityInput];
submesh.vertexSemantics = new uint8_t[submesh.vertexCapacityInput];
submesh.indexCapacityInput = submesh.indexCountOutput;
submesh.indexCountOutput = 0;
submesh.indices = new uint32_t[submesh.indexCapacityInput];
}
CHK_XR(xrGetSubmeshDataANDROID(snapshot, submeshes.size(), submeshes.data()));
// Destroy the scene mesh snapshot since we have finally grabbed the submeshes data. In
// next iteration app can: create a new one to get latest mesh data
CHK_XR(xrDestroySceneMeshSnapshotANDROID(snapshot));
snapshot = XR_NULL_HANDLE;
// Iterate the submeshes and get the vertex positions, vertex normals and
// vertex semantics data for the selected submeshes
for (uint32_t i = 0; i < submeshes.size(); i++) {
XrSceneSubmeshDataANDROID& data = submeshes[i];
XrVector3f* vertexPositions = data.vertexPositions;
XrVector3f* vertexNormals = data.vertexNormals;
XrSceneMeshSemanticLabelANDROID* vertexSemantics =
new XrSceneMeshSemanticLabelANDROID[data.vertexCountOutput];
for (uint32_t j = 0; j < data.vertexCountOutput; j++) {
vertexSemantics[j] =
static_cast<XrSceneMeshSemanticLabelANDROID>(data.vertexSemantics[j]);
}
XrPosef pose = submeshesPoses[i];
// *** Use the data as per needs ***
// Release the allocated memory for the data buffers when done using
delete [] vertexSemantics;
delete [] data.vertexPositions;
delete [] data.vertexNormals;
delete [] data.vertexSemantics;
delete [] data.indices;
}
// ...
// Finish frame loop
// ...
}
CHK_XR(xrDestroySceneMeshingTrackerANDROID(tracker));
Yeni Nesne Türleri
Yeni Komutlar
- xrCreateSceneMeshSnapshotANDROID
- xrCreateSceneMeshingTrackerANDROID
- xrDestroySceneMeshSnapshotANDROID
- xrDestroySceneMeshingTrackerANDROID
- xrEnumerateSupportedSemanticLabelSetsANDROID
- xrGetAllSubmeshStatesANDROID
- xrGetSubmeshDataANDROID
Yeni Yapılar
- XrSceneMeshSnapshotCreateInfoANDROID
- XrSceneMeshSnapshotCreationResultANDROID
- XrSceneMeshingTrackerCreateInfoANDROID
- XrSceneSubmeshDataANDROID
- XrSceneSubmeshStateANDROID
XrSystemProperties'i genişletme :
Yeni Sıralamalar
Yeni Enum Sabitleri
XR_ANDROID_SCENE_MESHING_EXTENSION_NAMEXR_ANDROID_scene_meshing_SPEC_VERSIONXrObjectType'i genişletme :
XR_OBJECT_TYPE_SCENE_MESHING_TRACKER_ANDROIDXR_OBJECT_TYPE_SCENE_MESH_SNAPSHOT_ANDROID
XrStructureType uzatma :
XR_TYPE_SCENE_MESHING_TRACKER_CREATE_INFO_ANDROIDXR_TYPE_SCENE_MESH_SNAPSHOT_CREATE_INFO_ANDROIDXR_TYPE_SCENE_MESH_SNAPSHOT_CREATION_RESULT_ANDROIDXR_TYPE_SCENE_SUBMESH_DATA_ANDROIDXR_TYPE_SCENE_SUBMESH_STATE_ANDROIDXR_TYPE_SYSTEM_SCENE_MESHING_PROPERTIES_ANDROID
Sayılar
Sürüm Geçmişi
Revizyon 3, 15.05.2025 (Salar Khan)
- İlk uzantı açıklaması