XR_ANDROID_light_estimation_cubemap
رشته نام
XR_ANDROID_light_estimation_cubemap
نوع افزونه
افزونه نمونه
شماره داخلی ثبتشده
722
بازبینی
1
وضعیت تصویب
تصویبنشده
وابستگیهای افزونه و نسخه
XR_ANDROID_light_estimation
تاریخ آخرین تغییر
2025-08-06
وضعیت IP
هیچ ادعای مالکیت فکری شناختهشدهای وجود ندارد.
همیاران
Salar Khan، Google
Scott Chung، Google
Jared Finder، Google
Spencer Quin، Google
Levana Chen، Google
Nihav Jain، Google
Jürgen Sturm، Google
نمای کلی
این افزونه براساس افزونه پایه XR_ANDROID_light_estimation ساخته شده است. این نسخه پشتیبانی از دریافت تخمینهای نورپردازی cubemap را اضافه میکند که تخمینهای دقیقتری درباره نورپردازی در محیط فیزیکی ارائه میدهد.
توجه
سازوکار دریافت دادههای تخمین نور همانند افزونه پایه است، با این تفاوت که هنگام ایجاد دسته تخمینگر نور، XrCubemapLightEstimatorCreateInfoANDROID باید به XrLightEstimatorCreateInfoANDROID زنجیر شود.
بررسی قابلیت سیستم
typedef struct XrSystemCubemapLightEstimationPropertiesANDROID {
XrStructureType type;
void* next;
XrBool32 supportsCubemapLightEstimation;
} XrSystemCubemapLightEstimationPropertiesANDROID;
توضیحات عضو
typeXrStructureType این ساختار است.-
nextبرابر باNULLیا اشارهگری به ساختار بعدی در زنجیره ساختار است. چنین ساختارهایی در OpenXR اصلی یا این افزونه تعریف نشده است. -
supportsCubemapLightEstimationیکXrBool32است که نشان میدهد آیا سیستم فعلی از تخمین نور نقشه مکعبی پشتیبانی میکند یا نه.
برنامه میتواند با گسترش دادن XrSystemProperties با ساختار XrSystemCubemapLightEstimationPropertiesANDROID هنگام فراخوانی xrGetSystemProperties، بررسی کند که آیا سیستم قادر به پشتیبانی از تخمین نور نگاشت مکعبی است یا نه.
اگر زمان اجرا XR_FALSE را برای supportsCubemapLightEstimation برگرداند و XrCubemapLightEstimatorCreateInfoANDROID به XrLightEstimatorCreateInfoANDROID زنجیر شده باشد، زمان اجرا باید XR_ERROR_FEATURE_UNSUPPORTED را از xrCreateLightEstimatorANDROID برگرداند.
استفاده معتبر (ضمنی)
- افزونه
XR_ANDROID_light_estimation_cubemapباید پیشاز استفاده از XrSystemCubemapLightEstimationPropertiesANDROID فعال شود -
typeبایدXR_TYPE_SYSTEM_CUBEMAP_LIGHT_ESTIMATION_PROPERTIES_ANDROIDباشد -
nextبایدNULLیا اشارهگر معتبری به ساختار بعدی در زنجیره ساختار باشد
دریافت وضوحهای پشتیبانیشده نگاشت مکعبی
XrResult xrEnumerateCubemapLightingResolutionsANDROID(
XrInstance instance,
XrSystemId systemId,
uint32_t resolutionCapacityInput,
uint32_t* resolutionCountOutput,
uint32_t* resolutions);
شرح پارامترها
-
instanceیک XrInstance است که قبلاً ایجاد شده است. systemIdهمانXrSystemIdاست که قبلاً توسط xrGetSystem بازیابی شده است و وضوحهای مکعبنگاشت پشتیبانیشده برای آن دریافت میشود.-
resolutionCapacityInputیکuint32_tاست که حداکثر تعداد عناصری را که میتوانند در آرایهresolutionsذخیره شوند نشان میدهد. resolutionCountOutputاشارهگری بهuint32_tاست که توسط زمان اجرا تنظیم میشود و تعداد عناصر نوشتهشده در آرایهresolutionsرا توسط زمان اجرا نشان میدهد.resolutionsآرایهای ازuint32_tاست که توسط زمان اجرا با وضوحهای cubemap پشتیبانیشده پر میشود.
وضوح cubemap نشاندهنده عرض و ارتفاع هر وجه cubemap به پیکسل است. اصطلاح ۲-فراخوانی سپس برنامه میتواند هنگام ایجاد دسته تخمینزننده نور، یکی از وضوحهای پشتیبانیشده در XrCubemapLightEstimatorCreateInfoANDROID :: cubemapResolution را انتخاب کند. برنامه باید مقدار مناسبی از حافظه را برای اعضای میانگیر تصویر XrCubemapLightingDataANDROID براساس وضوح انتخابشده و قالب رنگ اختصاص دهد.
استفاده معتبر (ضمنی)
- افزونه
XR_ANDROID_light_estimation_cubemapباید قبلاز فراخوانی xrEnumerateCubemapLightingResolutionsANDROID فعال شود -
instanceباید شناسه XrInstance معتبری باشد -
resolutionCountOutputباید اشارهگری به مقدارuint32_tباشد - اگر
resolutionCapacityInput0نباشد،resolutionsباید اشارهگری به آرایهای از مقادیرresolutionCapacityInputuint32_tباشد
کدهای برگشتی
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SIZE_INSUFFICIENTXR_ERROR_SYSTEM_INVALIDXR_ERROR_VALIDATION_FAILURE
دریافت قالبهای رنگی cubemap پشتیبانیشده
شمارش XrCubemapLightingColorFormatANDROID قالب رنگ نورپردازی cubemap را برای استفاده به زمان اجرا شناسایی میکند.
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;
مقادیر شمارشی معانی زیر را دارند:
شرح شمارشی
XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R32G32B32_SFLOAT_ANDROID
قالب رنگی با ۳ کانال که هر کانال یک مقدار ممیز شناور ۳۲ بیتی است.
XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R32G32B32A32_SFLOAT_ANDROID
قالب رنگی با ۴ کانال که هر کانال یک مقدار ممیز شناور ۳۲ بیتی است.
XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R16G16B16A16_SFLOAT_ANDROID
قالب رنگی با ۴ کانال که هر کانال یک مقدار ممیز شناور ۱۶ بیتی است.
XrResult xrEnumerateCubemapLightingColorFormatsANDROID(
XrInstance instance,
XrSystemId systemId,
uint32_t colorFormatCapacityInput,
uint32_t* colorFormatCountOutput,
XrCubemapLightingColorFormatANDROID* colorFormats);
شرح پارامترها
-
instanceیک XrInstance است که قبلاً ایجاد شده است. systemIdهمانXrSystemIdاست که قبلاً توسط xrGetSystem بازیابی شده است و وضوحهای مکعبنگاشت پشتیبانیشده برای آن دریافت میشود.-
colorFormatCapacityInputیکuint32_tاست که حداکثر تعداد عناصری را که میتوانند در آرایهcolorFormatsذخیره شوند نشان میدهد. colorFormatCountOutputاشارهگری بهuint32_tاست که توسط زمان اجرا تنظیم میشود و تعداد عناصر نوشتهشده در آرایهcolorFormatsرا توسط زمان اجرا نشان میدهد.-
colorFormatsآرایهای از XrCubemapLightingColorFormatANDROID است که توسط زمان اجرا با قالبهای رنگی مکعبنگاشت پشتیبانیشده پر میشود.
اصطلاح ۲-فراخوانی سپس برنامه میتواند انتخاب کند که از یکی از قالبهای رنگ پشتیبانیشده در XrCubemapLightEstimatorCreateInfoANDROID :: colorFormat هنگام ایجاد دسته تخمینگر نور استفاده کند. برنامه باید مقدار مناسبی از حافظه را برای اعضای میانگیر تصویر XrCubemapLightingDataANDROID براساس قالب رنگ انتخابشده اختصاص دهد.
استفاده معتبر (ضمنی)
- افزونه
XR_ANDROID_light_estimation_cubemapباید قبلاز فراخوانی xrEnumerateCubemapLightingColorFormatsANDROID فعال شود -
instanceباید شناسه XrInstance معتبری باشد -
colorFormatCountOutputباید اشارهگری به مقدارuint32_tباشد - اگر
colorFormatCapacityInput0نباشد،colorFormatsباید اشارهگری به آرایهای از مقادیرcolorFormatCapacityInputXrCubemapLightingColorFormatANDROID باشد
کدهای برگشتی
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SIZE_INSUFFICIENTXR_ERROR_SYSTEM_INVALIDXR_ERROR_VALIDATION_FAILURE
ایجاد کردن دسته تخمینزننده نور نگاشت مکعبی
typedef struct XrCubemapLightEstimatorCreateInfoANDROID {
XrStructureType type;
const void* next;
uint32_t cubemapResolution;
XrCubemapLightingColorFormatANDROID colorFormat;
XrBool32 reproject;
} XrCubemapLightEstimatorCreateInfoANDROID;
توضیحات عضو
typeXrStructureType این ساختار است.-
nextبرابر باNULLیا اشارهگری به ساختار بعدی در زنجیره ساختار است. cubemapResolutionیکuint32_tاست که وضوح نورپردازی cubemap را برای استفاده نشان میدهد.-
colorFormatیک XrCubemapLightingColorFormatANDROID است که قالب رنگ دادههای نورپردازی cubemap را برای استفاده نشان میدهد. reprojectیکXrBool32است که نشان میدهد آیا نورپردازی مکعبنگاشت باید به فضای پایه برنامه بازتابانده شود یا نه.
ساختار XrCubemapLightEstimatorCreateInfoANDROID اطلاعات لازم برای ایجاد دسته XrLightEstimatorANDROID را شرح میدهد تا بتواند تخمینهای نورپردازی مکعبنگاشت را ارائه دهد. عضو XrCubemapLightEstimatorCreateInfoANDROID :: cubemapResolution باید روی یکی از وضوحهای برگرداندهشده توسط xrEnumerateCubemapLightingResolutionsANDROID تنظیم شود. عضو XrCubemapLightEstimatorCreateInfoANDROID :: colorFormat باید روی یکی از قالبهای رنگی برگرداندهشده توسط xrEnumerateCubemapLightingColorFormatsANDROID تنظیم شود. اگر برنامه وضوح را روی یکی از وضوحهای پشتیبانیشده یا قالب رنگ را روی یکی از قالبهای رنگ پشتیبانیشده تنظیم نکند، زمان اجرا باید XR_ERROR_FEATURE_UNSUPPORTED را از xrCreateLightEstimatorANDROID برگرداند.
استفاده معتبر (ضمنی)
- افزونه
XR_ANDROID_light_estimation_cubemapباید قبلاز استفاده از XrCubemapLightEstimatorCreateInfoANDROID فعال شود -
typeبایدXR_TYPE_CUBEMAP_LIGHT_ESTIMATOR_CREATE_INFO_ANDROIDباشد -
nextبایدNULLیا اشارهگر معتبری به ساختار بعدی در زنجیره ساختار باشد -
colorFormatباید مقدار XrCubemapLightingColorFormatANDROID معتبری باشد
تخمینهای نور نگاشت مکعبی
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;
توضیحات عضو
typeXrStructureType این ساختار است.-
nextبرابر باNULLیا اشارهگری به ساختار بعدی در زنجیره ساختار است. ساختارهای معتبر عبارتاند از XrAmbientLightANDROID، XrSphericalHarmonicsANDROID، XrDirectionalLightANDROID . -
stateXrLightEstimateStateANDROID است که وضعیت تخمین نور را نشان میدهد. imageBufferSizeیکuint32_tاست که اندازه بایت هر میانگیر تصویر وجه را در نگاشت مکعبی نشان میدهد.-
imageBufferRightیک میانگیرuint8_tاست که تصویر وجه راست cubemap را دربردارد. -
imageBufferLeftیک میانگیرuint8_tاست که حاوی تصویر وجه چپ نقشه مکعبی است. imageBufferTopیک میانگیرuint8_tاست که حاوی تصویر وجه بالایی cubemap است.-
imageBufferBottomیک میانگیرuint8_tاست که تصویر وجه پایینی نگاشت مکعبی را دربرمیگیرد. -
imageBufferFrontیک میانگیرuint8_tاست که حاوی تصویر نمای جلویی نقشه مکعبی است. imageBufferBackیک میانگیرuint8_tاست که حاوی تصویر وجه پشتی نگاشت مکعبی است.-
rotationیک XrQuaternionf است که چرخش cubemap را نشان میدهد. centerExposureTimeیکXrTimeاست که زمان ضبط نقشه مکعبی را نشان میدهد.
این ساختار میتواند به XrLightEstimateANDROID زنجیر شود. اگر از XrCubemapLightEstimatorCreateInfoANDROID برای ایجاد دسته تخمینزننده نور استفاده شده باشد، زمان اجرا باید فقط این ساختار را در xrGetLightEstimateANDROID پر کند. برنامه باید مقدار مناسبی از حافظه را برای میانگیرهای تصویر اختصاص دهد که به مقادیر تنظیمشده در XrCubemapLightEstimatorCreateInfoANDROID :: cubemapResolution و XrCubemapLightEstimatorCreateInfoANDROID :: colorFormat هنگام ایجاد دسته تخمینگر نور بستگی دارد. برنامه باید XrCubemapLightingDataANDROID :: imageBufferSize را روی ظرفیت هر میانگیر تصویر وجه برحسب بایت تنظیم کند. اگر برنامه از تخمین نور cubemap استفاده نمیکند یا اگر XrCubemapLightingDataANDROID :: imageBufferSize برای زمان اجرا بهاندازه کافی بزرگ نیست تا میانگیرهای تصویر را پر کند، زمان اجرا باید XrCubemapLightingDataANDROID :: state را روی XR_LIGHT_ESTIMATE_STATE_INVALID_ANDROID تنظیم کند.
اگر برنامه XrCubemapLightEstimatorCreateInfoANDROID :: reproject را روی XR_TRUE تنظیم کند، هنگام ایجاد دسته تخمینزننده نور، زمان اجرا باید XrCubemapLightingDataANDROID :: rotation را روی چرخش هویت تنظیم کند و مطمئن شود که مکعبنگاشت چرخاندهشده داخلی دوباره روی وجوه مکعبنگاشت هویت در فضای پایه برنامه بازتابانده میشود.
چیدمان نقشه مکعبی نورپردازی همانند چیدمان نقشه مکعبی OpenGL است، همانطور که در تصویر زیر نشان داده شده است
شکل ۳۱. چیدمان نگاشت مکعبی.
استفاده معتبر (ضمنی)
- افزونه
XR_ANDROID_light_estimation_cubemapباید پیشاز استفاده از XrCubemapLightingDataANDROID فعال شود -
typeبایدXR_TYPE_CUBEMAP_LIGHTING_DATA_ANDROIDباشد -
nextبایدNULLیا اشارهگر معتبری به ساختار بعدی در زنجیره ساختار باشد -
stateباید مقدار XrLightEstimateStateANDROID معتبری باشد -
imageBufferRightباید اشارهگری به آرایهای از مقادیرimageBufferSizeuint8_tباشد -
imageBufferLeftباید اشارهگری به آرایهای از مقادیرimageBufferSizeuint8_tباشد -
imageBufferTopباید اشارهگری به آرایهای از مقادیرimageBufferSizeuint8_tباشد -
imageBufferBottomباید اشارهگری به آرایهای از مقادیرimageBufferSizeuint8_tباشد -
imageBufferFrontباید اشارهگری به آرایهای از مقادیرimageBufferSizeuint8_tباشد -
imageBufferBackباید اشارهگری به آرایهای از مقادیرimageBufferSizeuint8_tباشد - پارامتر
imageBufferSizeباید بزرگتر از0باشد
کد نمونه برای تخمین نور
کد نمونه زیر نشان میدهد که چگونه میتوان همه مقادیر ممکن تخمین نور را از زمان اجرا دریافت کرد
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));
فرمانهای جدید
سازههای جدید
درحال گسترش دادن XrLightEstimateANDROID :
درحال گسترش دادن XrLightEstimatorCreateInfoANDROID :
درحال گسترش دادن XrSystemProperties :
Enums جدید
ثابتهای شمارشی جدید
XR_ANDROID_LIGHT_ESTIMATION_CUBEMAP_EXTENSION_NAMEXR_ANDROID_light_estimation_cubemap_SPEC_VERSIONدرحال گسترش دادن XrStructureType :
XR_TYPE_CUBEMAP_LIGHTING_DATA_ANDROIDXR_TYPE_CUBEMAP_LIGHT_ESTIMATOR_CREATE_INFO_ANDROIDXR_TYPE_SYSTEM_CUBEMAP_LIGHT_ESTIMATION_PROPERTIES_ANDROID
مشکلات
سابقه نسخه
بازبینی ۱، ۲۰۲۵-۱۲-۰۵ (سالار خان)
- شرح اولیه افزونه