XR_ANDROID_light_estimation_cubemap
Name String
XR_ANDROID_light_estimation_cubemap
Uzantı Türü
Örnek uzantısı
Kayıtlı Dahili Numara
722
Düzeltme
1
Onay Durumu
Onaylanmadı
Uzantı ve Sürüm Bağımlılıkları
XR_ANDROID_light_estimation
Son Değiştirilme Tarihi
2025-08-06
IP Durumu
Bilinen bir fikri mülkiyet hak talebi yok.
Katkıda bulunanlar
Salar Khan, Google
Scott Chung, Google
Jared Finder, Google
Spencer Quin, Google
Levana Chen, Google
Nihav Jain, Google
Jürgen Sturm, Google
Genel Bakış
Bu uzantı, temel XR_ANDROID_light_estimation uzantısını temel alır. Bu API, küp haritası ışıklandırma tahminleri alma desteği ekler. Bu sayede, fiziksel ortamdaki ışıklandırma hakkında daha ayrıntılı tahminler elde edilir.
Not
Işık tahmini verilerini alma mekanizması, ışık tahmin aracı tutma yeri oluşturulurken XrCubemapLightEstimatorCreateInfoANDROID'in XrLightEstimatorCreateInfoANDROID'e zincirlenmesi dışında temel uzantıyla aynıdır.
Sistem özelliğini inceleme
typedef struct XrSystemCubemapLightEstimationPropertiesANDROID {
XrStructureType type;
void* next;
XrBool32 supportsCubemapLightEstimation;
} XrSystemCubemapLightEstimationPropertiesANDROID;
Üye Açıklamaları
type, bu yapının XrStructureType değeridir.next,NULLveya 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.supportsCubemapLightEstimation, mevcut sistemin küp harita ışık tahminini destekleyip desteklemediğini gösteren birXrBool32değeridir.
Uygulamalar, xrGetSystemProperties'ı çağırırken XrSystemProperties'i XrSystemCubemapLightEstimationPropertiesANDROID yapısıyla genişleterek sistemin küp harita ışık tahminini destekleyip desteklemediğini kontrol edebilir.
Çalışma zamanı, supportsCubemapLightEstimation için XR_FALSE döndürürse ve XrCubemapLightEstimatorCreateInfoANDROID, XrLightEstimatorCreateInfoANDROID'ye zincirlenmişse çalışma zamanı, xrCreateLightEstimatorANDROID'den XR_ERROR_FEATURE_UNSUPPORTED döndürmelidir.
Geçerli Kullanım (Dolaylı)
-
XR_ANDROID_light_estimation_cubemapuzantısı, XrSystemCubemapLightEstimationPropertiesANDROID kullanılmadan önce etkinleştirilmelidir. -
typeXR_TYPE_SYSTEM_CUBEMAP_LIGHT_ESTIMATION_PROPERTIES_ANDROIDolmalıdır -
next,NULLveya yapı zincirindeki bir sonraki yapıya geçerli bir işaretçi olmalıdır.
Desteklenen küp haritası çözünürlükleri alınıyor
XrResult xrEnumerateCubemapLightingResolutionsANDROID(
XrInstance instance,
XrSystemId systemId,
uint32_t resolutionCapacityInput,
uint32_t* resolutionCountOutput,
uint32_t* resolutions);
Parametre Açıklamaları
instance, daha önce oluşturulmuş bir XrInstance'tır.systemId, desteklenen küp harita çözünürlüklerini almak için daha önce xrGetSystem tarafından alınanXrSystemIddeğeridir.resolutionCapacityInput,resolutionsdizisinde depolanabilecek maksimum öğe sayısını gösteren biruint32_tdeğeridir.resolutionCountOutput, çalışma zamanı tarafından ayarlanan ve çalışma zamanı tarafındanresolutionsdizisine yazılan öğelerin sayısını gösteren biruint32_tişaretçisidir.resolutions, çalışma zamanı tarafından desteklenen küp haritası çözünürlükleriyle doldurulan biruint32_tdizisidir.
Küp harita çözünürlüğü, küp haritanın her bir yüzünün piksel cinsinden genişliğini ve yüksekliğini gösterir. 2 çağrılı deyim Uygulama, ışık tahmin aracı tutamacını oluştururken XrCubemapLightEstimatorCreateInfoANDROID :: cubemapResolution içindeki desteklenen çözünürlüklerden birini kullanmayı seçebilir. Uygulama, seçilen çözünürlüğe ve renk biçimine göre XrCubemapLightingDataANDROID'nin görüntü arabelleği üyeleri için uygun miktarda bellek ayırmalıdır (zorunlu).
Geçerli Kullanım (Dolaylı)
-
XR_ANDROID_light_estimation_cubemapuzantısı, xrEnumerateCubemapLightingResolutionsANDROID çağrılmadan önce etkinleştirilmelidir. -
instancegeçerli bir XrInstance herkese açık kullanıcı adı olmalıdır -
resolutionCountOutput, biruint32_tdeğerine işaretçi olmalıdır -
resolutionCapacityInput,0değilseresolutions,resolutionCapacityInputuint32_tdeğerlerinden oluşan bir dizinin işaretçisi 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
Desteklenen küp haritası renk biçimlerini alma
XrCubemapLightingColorFormatANDROID numaralandırması, çalışma zamanında kullanılacak küp haritası aydınlatmasının renk biçimini tanımlar.
typedef enum XrCubemapLightingColorFormatANDROID {
XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R32G32B32_SFLOAT_ANDROID = 1,
XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R32G32B32A32_SFLOAT_ANDROID = 2,
XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R16G16B16A16_SFLOAT_ANDROID = 3,
XR_CUBEMAP_LIGHTING_COLOR_FORMAT_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrCubemapLightingColorFormatANDROID;
Numaralandırmalar aşağıdaki anlamlara sahiptir:
Enum Açıklaması
XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R32G32B32_SFLOAT_ANDROID
Her kanalın 32 bit kayan nokta değeri olduğu 3 kanallı bir renk biçimi.
XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R32G32B32A32_SFLOAT_ANDROID
Her kanalın 32 bit kayan nokta değeri olduğu 4 kanallı bir renk biçimi.
XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R16G16B16A16_SFLOAT_ANDROID
Her kanalın 16 bit kayan nokta değeri olduğu 4 kanallı bir renk biçimi.
XrResult xrEnumerateCubemapLightingColorFormatsANDROID(
XrInstance instance,
XrSystemId systemId,
uint32_t colorFormatCapacityInput,
uint32_t* colorFormatCountOutput,
XrCubemapLightingColorFormatANDROID* colorFormats);
Parametre Açıklamaları
instance, daha önce oluşturulmuş bir XrInstance'tır.systemId, desteklenen küp harita çözünürlüklerini almak için daha önce xrGetSystem tarafından alınanXrSystemIddeğeridir.colorFormatCapacityInput,colorFormatsdizisinde depolanabilecek maksimum öğe sayısını gösteren biruint32_tdeğeridir.colorFormatCountOutput, çalışma zamanı tarafından ayarlanan ve çalışma zamanı tarafındancolorFormatsdizisine yazılan öğelerin sayısını gösteren biruint32_tişaretçisidir.colorFormats, çalışma zamanı tarafından desteklenen küp haritası renk biçimleriyle doldurulan bir XrCubemapLightingColorFormatANDROID dizisidir.
2 çağrılı deyim Uygulama, ışık tahmin aracı tutamacını oluştururken XrCubemapLightEstimatorCreateInfoANDROID :: colorFormat içinde desteklenen renk biçimlerinden birini kullanmayı seçebilir. Uygulama, seçilen renk biçimine göre XrCubemapLightingDataANDROID'in görüntü arabelleği üyeleri için uygun miktarda bellek ayırmalıdır (zorunlu).
Geçerli Kullanım (Dolaylı)
-
XR_ANDROID_light_estimation_cubemapuzantısı, xrEnumerateCubemapLightingColorFormatsANDROID çağrılmadan önce etkinleştirilmelidir -
instancegeçerli bir XrInstance herkese açık kullanıcı adı olmalıdır -
colorFormatCountOutput, biruint32_tdeğerine işaretçi olmalıdır -
colorFormatCapacityInput,0değilsecolorFormats,colorFormatCapacityInputXrCubemapLightingColorFormatANDROID değerlerinden oluşan bir dizinin işaretçisi 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
Küp haritası ışık tahmin aracı herkese açık kullanıcı adı oluşturma
typedef struct XrCubemapLightEstimatorCreateInfoANDROID {
XrStructureType type;
const void* next;
uint32_t cubemapResolution;
XrCubemapLightingColorFormatANDROID colorFormat;
XrBool32 reproject;
} XrCubemapLightEstimatorCreateInfoANDROID;
Üye Açıklamaları
type, bu yapının XrStructureType değeridir.next,NULLveya bir yapı zincirindeki sonraki yapıya işaret eden bir göstergedir.cubemapResolution, kullanılacak küp haritası aydınlatmasının çözünürlüğünü belirten biruint32_tdeğeridir.colorFormat, kullanılacak küp haritası aydınlatma verilerinin renk biçimini belirten bir XrCubemapLightingColorFormatANDROID değeridir.reproject, küp harita aydınlatmasının uygulama taban alanına yeniden yansıtılıp yansıtılmayacağını belirten birXrBool32değeridir.
XrCubemapLightEstimatorCreateInfoANDROID yapısı, küp harita aydınlatma tahminleri sağlayabilen bir XrLightEstimatorANDROID herkese açık kullanıcı adı oluşturmak için gereken bilgileri açıklar. XrCubemapLightEstimatorCreateInfoANDROID :: cubemapResolution üyesi, xrEnumerateCubemapLightingResolutionsANDROID tarafından döndürülen çözünürlüklerden birine ayarlanmalıdır. XrCubemapLightEstimatorCreateInfoANDROID :: colorFormat üyesi, xrEnumerateCubemapLightingColorFormatsANDROID tarafından döndürülen renk biçimlerinden birine ayarlanmalıdır . Uygulama, çözünürlüğü desteklenen çözünürlüklerden birine veya renk biçimini desteklenen renk biçimlerinden birine ayarlamazsa çalışma zamanı, xrCreateLightEstimatorANDROID'den XR_ERROR_FEATURE_UNSUPPORTED değerini döndürmelidir (must).
Geçerli Kullanım (Dolaylı)
- XrCubemapLightEstimatorCreateInfoANDROID kullanılmadan önce
XR_ANDROID_light_estimation_cubemapuzantısı etkinleştirilmelidir. -
typeXR_TYPE_CUBEMAP_LIGHT_ESTIMATOR_CREATE_INFO_ANDROIDolmalıdır -
next,NULLveya yapı zincirindeki bir sonraki yapıya geçerli bir işaretçi olmalıdır. -
colorFormat, geçerli bir XrCubemapLightingColorFormatANDROID değeri olmalıdır.
Cubemap ışık tahminleri
typedef struct XrCubemapLightingDataANDROID {
XrStructureType type;
void* next;
XrLightEstimateStateANDROID state;
uint32_t imageBufferSize;
uint8_t* imageBufferRight;
uint8_t* imageBufferLeft;
uint8_t* imageBufferTop;
uint8_t* imageBufferBottom;
uint8_t* imageBufferFront;
uint8_t* imageBufferBack;
XrQuaternionf rotation;
XrTime centerExposureTime;
} XrCubemapLightingDataANDROID;
Üye Açıklamaları
type, bu yapının XrStructureType değeridir.next,NULLveya bir yapı zincirindeki sonraki yapıya işaret eden bir göstergedir. Geçerli yapılar şunlardır: XrAmbientLightANDROID , XrSphericalHarmonicsANDROID , XrDirectionalLightANDROID .state, ışık tahmininin durumunu temsil eden XrLightEstimateStateANDROID'dir.imageBufferSize, küp haritasındaki her bir yüz resmi arabelleğinin bayt boyutunu belirten biruint32_tdeğeridir.imageBufferRight, küp haritanın sağ yüz görüntüsünü içeren biruint8_tarabelleğidir.imageBufferLeft, küp haritanın sol yüz resmini içeren biruint8_tarabelleğidir.imageBufferTop, küp haritasının üst yüz resmini içeren biruint8_tarabelleğidir.imageBufferBottom, küp haritanın alt yüz görüntüsünü içeren biruint8_tarabelleğidir.imageBufferFront, küp haritasının ön yüz resmini içeren biruint8_tarabelleğidir.imageBufferBack, küp haritasının arka yüz resmini içeren biruint8_tarabelleğidir.rotation, küp haritasının dönüşünü gösteren bir XrQuaternionf değeridir.centerExposureTime, küp haritanın yakalandığı zamanı gösteren birXrTimedeğeridir.
Bu yapı, XrLightEstimateANDROID'e zincirlenebilir. Çalışma zamanı, ışık tahmin aracı tutamacını oluşturmak için XrCubemapLightEstimatorCreateInfoANDROID kullanılmışsa bu yapıyı yalnızca xrGetLightEstimateANDROID içinde doldurmalıdır. Uygulama, ışık tahmin aracı tutma yeri oluşturulurken XrCubemapLightEstimatorCreateInfoANDROID :: cubemapResolution ve XrCubemapLightEstimatorCreateInfoANDROID :: colorFormat içinde ayarlanan değerlere bağlı olarak görüntü arabellekleri için uygun miktarda bellek ayırmalıdır (must). Uygulama, XrCubemapLightingDataANDROID :: imageBufferSize değerini her yüz resmi arabelleğinin kapasitesine (bayt cinsinden) ayarlamalıdır (zorunlu). Uygulama, küp harita ışık tahminini kullanmıyorsa veya XrCubemapLightingDataANDROID :: imageBufferSize, çalışma zamanının görüntü arabelleklerini doldurması için yeterince büyük değilse çalışma zamanı, XrCubemapLightingDataANDROID :: state değerini XR_LIGHT_ESTIMATE_STATE_INVALID_ANDROID olarak ayarlamalıdır.
Uygulama, ışık tahmin aracı tutma yerini oluştururken XrCubemapLightEstimatorCreateInfoANDROID :: reproject değerini XR_TRUE olarak ayarladıysa çalışma zamanı, XrCubemapLightingDataANDROID :: rotation değerini kimlik rotasyonuna ayarlamalı ve dahili döndürülmüş küp haritasının, uygulama taban alanındaki bir kimlik küp haritasının yüzlerine yeniden yansıtılmasını sağlamalıdır.
Işıklandırma küp haritasının düzeni, aşağıdaki resimde gösterildiği gibi OpenGL küp haritası düzeniyle aynıdır.
31. şekil Küp haritası düzeni.
Geçerli Kullanım (Dolaylı)
- XrCubemapLightingDataANDROID kullanılmadan önce
XR_ANDROID_light_estimation_cubemapuzantısı etkinleştirilmelidir -
typeXR_TYPE_CUBEMAP_LIGHTING_DATA_ANDROIDolmalıdır -
next,NULLveya yapı zincirindeki bir sonraki yapıya geçerli bir işaretçi olmalıdır. -
state, geçerli bir XrLightEstimateStateANDROID değeri olmalıdır -
imageBufferRight,imageBufferSizeuint8_tdeğerlerinden oluşan bir dizinin işaretçisi olmalıdır -
imageBufferLeft,imageBufferSizeuint8_tdeğerlerinden oluşan bir dizinin işaretçisi olmalıdır -
imageBufferTop,imageBufferSizeuint8_tdeğerlerinden oluşan bir dizinin işaretçisi olmalıdır -
imageBufferBottom,imageBufferSizeuint8_tdeğerlerinden oluşan bir dizinin işaretçisi olmalıdır -
imageBufferFront,imageBufferSizeuint8_tdeğerlerinden oluşan bir dizinin işaretçisi olmalıdır -
imageBufferBack,imageBufferSizeuint8_tdeğerlerinden oluşan bir dizinin işaretçisi olmalıdır -
imageBufferSizeparametresi0değerinden büyük olmalıdır.
Işık tahmini için örnek kod
Aşağıdaki örnek kod, çalışma zamanından tüm olası ışık tahmini miktarlarının nasıl alınacağını gösterir.
XrSession session; // Created at app startup
XrInstance instance; // Created at app startup
XrSpace appSpace; // Created previously.
XrSystemId systemId; // Retrieved previously by xrGetSystem
PFN_xrCreateLightEstimatorANDROID xrCreateLightEstimatorANDROID; // Created previously.
PFN_xrDestroyLightEstimatorANDROID xrDestroyLightEstimatorANDROID; // Created previously.
PFN_xrGetLightEstimateANDROID xrGetLightEstimateANDROID; // Created previously.
PFN_xrEnumerateCubemapLightingResolutionsANDROID xrEnumerateCubemapLightingResolutionsANDROID; // Created previously.
PFN_xrEnumerateCubemapLightingColorFormatsANDROID xrEnumerateCubemapLightingColorFormatsANDROID; // Created previously.
XrSystemCubemapLightEstimationPropertiesANDROID props = {
.type = XR_TYPE_SYSTEM_CUBEMAP_LIGHT_ESTIMATION_PROPERTIES_ANDROID};
XrSystemProperties base = {.type = XR_TYPE_SYSTEM_PROPERTIES,
.next = &props};
CHK_XR(xrGetSystemProperties(instance, systemId, &base));
if (!props.supportsCubemapLightEstimation) {
// Cubemap light estimation is not supported
}
uint32_t cubemapResolution = 0;
std::vector<uint32_t> supportedCubemapResolutions;
uint32_t resolutionCount;
CHK_XR(xrEnumerateCubemapLightingResolutionsANDROID(
instance, systemId, 0, &resolutionCount, nullptr));
supportedCubemapResolutions.resize(resolutionCount);
if (resolutionCount == 0) {
// No cubemap lighting supported
} else {
CHK_XR(xrEnumerateCubemapLightingResolutionsANDROID(
instance, systemId, 0, &resolutionCount, supportedCubemapResolutions.data()));
cubemapResolution = supportedCubemapResolutions[0];
}
uint32_t pixelCount = cubemapResolution * cubemapResolution;
XrCubemapLightingColorFormatANDROID colorFormat;
std::vector<XrCubemapLightingColorFormatANDROID> supportedColorFormats;
uint32_t colorFormatCount;
CHK_XR(xrEnumerateCubemapLightingColorFormatsANDROID(
instance, systemId, 0, &colorFormatCount, nullptr));
supportedColorFormats.resize(colorFormatCount);
if (colorFormatCount == 0) {
// No supported color formats for cubemap lighting. Cannot use cubemap
// light estimation.
} else {
CHK_XR(xrEnumerateCubemapLightingColorFormatsANDROID(
instance, systemId, 0, &colorFormatCount, supportedColorFormats.data()));
colorFormat = supportedColorFormats[0];
}
uint32_t pixelSize = 0;
switch (colorFormat) {
case XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R32G32B32_SFLOAT_ANDROID:
pixelSize = 3 * sizeof(float);
break;
case XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R32G32B32A32_SFLOAT_ANDROID:
pixelSize = 4 * sizeof(float);
break;
case XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R16G16B16A16_SFLOAT_ANDROID:
pixelSize = 4 * sizeof(uint16_t);
break;
default:
// Should not happen since the color format was validated previously.
break;
}
uint32_t perFaceImageBufferSize = pixelCount * pixelSize;
XrLightEstimatorANDROID estimator;
XrCubemapLightEstimatorCreateInfoANDROID cubemapCreateInfo = {
.type = XR_TYPE_CUBEMAP_LIGHT_ESTIMATOR_CREATE_INFO_ANDROID,
.cubemapResolution = cubemapResolution,
.colorFormat = colorFormat,
.reproject = XR_TRUE
};
XrLightEstimatorCreateInfoANDROID basicCreateInfo = {
.type = XR_TYPE_LIGHT_ESTIMATOR_CREATE_INFO_ANDROID,
.next = &cubemapCreateInfo};
CHK_XR(xrCreateLightEstimatorANDROID(session, &basicCreateInfo, &estimator));
std::vector<uint8_t> cubemapBuffer(perFaceImageBufferSize * 6); // 6 faces * perFaceImageBufferSize
// Every frame
XrTime updateTime; // Time used for the current frame's simulation update.
XrLightEstimateGetInfoANDROID info = {
.type = XR_TYPE_LIGHT_ESTIMATE_GET_INFO_ANDROID,
.space = appSpace,
.time = updateTime,
};
XrCubemapLightingDataANDROID cubemap = {
.type = XR_TYPE_CUBEMAP_LIGHTING_DATA_ANDROID,
.next = nullptr,
.imageBufferSize = perFaceImageBufferSize,
.imageBufferRight = cubemapBuffer.data() + 0 * perFaceImageBufferSize,
.imageBufferLeft = cubemapBuffer.data() + 1 * perFaceImageBufferSize,
.imageBufferTop = cubemapBuffer.data() + 2 * perFaceImageBufferSize,
.imageBufferBottom = cubemapBuffer.data() + 3 * perFaceImageBufferSize,
.imageBufferFront = cubemapBuffer.data() + 4 * perFaceImageBufferSize,
.imageBufferBack = cubemapBuffer.data() + 5 * perFaceImageBufferSize,
};
XrDirectionalLightANDROID directionalLight = {
.type = XR_TYPE_DIRECTIONAL_LIGHT_ANDROID,
.next = &cubemap,
};
XrSphericalHarmonicsANDROID totalSh = {
.type = XR_TYPE_SPHERICAL_HARMONICS_ANDROID,
.next = &directionalLight,
.kind = XR_SPHERICAL_HARMONICS_KIND_TOTAL_ANDROID,
};
XrSphericalHarmonicsANDROID ambientSh = {
.type = XR_TYPE_SPHERICAL_HARMONICS_ANDROID,
.next = &totalSh,
.kind = XR_SPHERICAL_HARMONICS_KIND_AMBIENT_ANDROID,
};
XrAmbientLightANDROID ambientLight = {
.type = XR_TYPE_AMBIENT_LIGHT_ANDROID,
.next = &ambientSh,
};
XrLightEstimateANDROID estimate = {
.type = XR_TYPE_LIGHT_ESTIMATE_ANDROID,
.next = &ambientLight,
};
XrResult result = xrGetLightEstimateANDROID(estimator, &info, &estimate);
if (result == XR_SUCCESS &&
estimate.state == XR_LIGHT_ESTIMATE_STATE_VALID_ANDROID) {
// use cubemap, directionalLight, totalSh, ambientSh, and
// ambientLight if each struct has a valid state field
if (cubemap.state == XR_LIGHT_ESTIMATE_STATE_VALID_ANDROID) {
// use cubemap
if (cubemapCreateInfo.reproject == XR_TRUE) {
XrQuaternionf identityQuaternion = {0.0f, 0.0f, 0.0f, 1.0f};
assert(memcmp(&cubemap.rotation, &identityQuaternion, sizeof(XrQuaternionf)) == 0);
}
}
}
// When you want to disable light estimation
CHK_XR(xrDestroyLightEstimatorANDROID(estimator));
Yeni Komutlar
Yeni Yapılar
XrLightEstimateANDROID'i genişletme:
XrLightEstimatorCreateInfoANDROID'i genişletme:
XrSystemProperties'i genişletme:
Yeni Enum Veri Türleri
Yeni Enum Sabitleri
XR_ANDROID_LIGHT_ESTIMATION_CUBEMAP_EXTENSION_NAMEXR_ANDROID_light_estimation_cubemap_SPEC_VERSIONXrStructureType'ı genişletme:
XR_TYPE_CUBEMAP_LIGHTING_DATA_ANDROIDXR_TYPE_CUBEMAP_LIGHT_ESTIMATOR_CREATE_INFO_ANDROIDXR_TYPE_SYSTEM_CUBEMAP_LIGHT_ESTIMATION_PROPERTIES_ANDROID
Sorunlar
Sürüm Geçmişi
Düzeltme 1, 05.12.2025 (Salar Khan)
- İlk uzantı açıklaması