تخمین_نور_XR_ANDROID_cubemap
رشته نام
XR_ANDROID_light_estimation_cubemap
نوع افزونه
افزونه نمونه
شماره داخلی ثبت شده
۷۲۲
بازنگری
۱
وضعیت تصویب
تصویب نشده
وابستگیهای افزونه و نسخه
XR_ANDROID_light_estimation
آخرین تاریخ اصلاح
۲۰۲۵-۰۸-۰۶
وضعیت آیپی
هیچ ادعای مالکیت معنوی شناختهشدهای وجود ندارد.
مشارکتکنندگان
سالار خان، گوگل
اسکات چانگ، گوگل
جارد فایندر، گوگل
اسپنسر کوئین، گوگل
لوانا چن، گوگل
نیهاو جین، گوگل
یورگن اشتورم، گوگل
نمای کلی
این افزونه بر اساس افزونه پایه XR_ANDROID_light_estimation ساخته شده است. این افزونه پشتیبانی از دریافت تخمینهای روشنایی cubemap را اضافه میکند که تخمینهای دقیقتری در مورد روشنایی در محیط فیزیکی ارائه میدهد.
توجه داشته باشید
مکانیزم دریافت دادههای تخمین نور مشابه افزونهی پایه است، با این تفاوت که XrCubemapLightEstimatorCreateInfoANDROID هنگام ایجاد دستهی تخمین نور، باید به XrLightEstimatorCreateInfoANDROID زنجیر شود.
بررسی قابلیت سیستم
typedef struct XrSystemCubemapLightEstimationPropertiesANDROID {
XrStructureType type;
void* next;
XrBool32 supportsCubemapLightEstimation;
} XrSystemCubemapLightEstimationPropertiesANDROID;
توضیحات اعضا
-
typeنوع XrStructureType این ساختار است. -
nextباNULLیا اشارهگری به ساختار بعدی در یک زنجیره ساختار است. چنین ساختارهایی در هسته OpenXR یا این افزونه تعریف نشدهاند. -
supportsCubemapLightEstimationیکXrBool32است که نشان میدهد آیا سیستم فعلی از تخمین نور cubemap پشتیبانی میکند یا خیر.
یک برنامه میتواند با بسط XrSystemProperties با ساختار XrSystemCubemapLightEstimationPropertiesANDROID هنگام فراخوانی xrGetSystemProperties ، بررسی کند که آیا سیستم قادر به پشتیبانی از تخمین نور cubemap است یا خیر.
اگر زمان اجرا 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یا یک اشارهگر معتبر به ساختار بعدی در یک زنجیره ساختار باشد.
دریافت رزولوشنهای پشتیبانیشده در cubemap
XrResult xrEnumerateCubemapLightingResolutionsANDROID(
XrInstance instance,
XrSystemId systemId,
uint32_t resolutionCapacityInput,
uint32_t* resolutionCountOutput,
uint32_t* resolutions);
توضیحات پارامتر
-
instanceیک XrInstance است که قبلاً ایجاد شده است. -
systemIdهمانXrSystemIdاست که قبلاً توسط xrGetSystem بازیابی شده و برای دریافت رزولوشنهای پشتیبانیشده cubemap استفاده میشود. -
resolutionCapacityInputیکuint32_tاست که حداکثر تعداد عناصری را که میتوانند در آرایهresolutionsذخیره شوند، نشان میدهد. -
resolutionCountOutputیک اشارهگر بهuint32_tاست که توسط زمان اجرا تنظیم میشود و تعداد عناصر نوشته شده در آرایهresolutionsتوسط زمان اجرا را نشان میدهد. -
resolutionsis an array ofuint32_twhich is populated by the runtime with the supported cubemap resolutions.
وضوح cubemap، عرض و ارتفاع هر وجه cubemap را بر حسب پیکسل نشان میدهد. اصطلاح ۲-call سپس برنامه میتواند هنگام ایجاد دسته تخمینگر نور، یکی از وضوحهای پشتیبانی شده در XrCubemapLightEstimatorCreateInfoANDROID :: cubemapResolution را انتخاب کند. برنامه باید بر اساس وضوح انتخاب شده و فرمت رنگ، مقدار حافظه مناسبی را برای اعضای بافر تصویر XrCubemapLightingDataANDROID اختصاص دهد.
کاربرد معتبر (ضمنی)
- افزونهی
XR_ANDROID_light_estimation_cubemapباید قبل از فراخوانی xrEnumerateCubemapLightingResolutionsANDROID فعال شود. -
instanceباید یک شناسه معتبر XrInstance باشد. -
resolutionCountOutputباید یک اشارهگر به مقدارuint32_tباشد. - اگر
resolutionCapacityInputبرابر با0نباشد،resolutionsباید اشارهگری به آرایهای از مقادیرresolutionCapacityInputuint32_tباشد.
کدهای بازگشت
-
XR_SUCCESS
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_SIZE_INSUFFICIENT -
XR_ERROR_SYSTEM_INVALID -
XR_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;
enum ها معانی زیر را دارند:
توضیحات شمارشی
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 بازیابی شده و برای دریافت رزولوشنهای پشتیبانیشده cubemap استفاده میشود. -
colorFormatCapacityInputیکuint32_tاست که حداکثر تعداد عناصری را که میتوانند در آرایهcolorFormatsذخیره شوند، نشان میدهد. -
colorFormatCountOutputیک اشارهگر بهuint32_tاست که توسط زمان اجرا تنظیم میشود و تعداد عناصر نوشته شده در آرایهcolorFormatsتوسط زمان اجرا را نشان میدهد. -
colorFormatsآرایهای از XrCubemapLightingColorFormatANDROID است که توسط زمان اجرا با فرمتهای رنگی cubemap پشتیبانیشده پر میشود.
اصطلاح ۲-فراخوانی سپس برنامه میتواند هنگام ایجاد دسته تخمینگر نور، یکی از فرمتهای رنگی پشتیبانیشده در XrCubemapLightEstimatorCreateInfoANDROID :: colorFormat را انتخاب کند. برنامه باید بر اساس فرمت رنگ انتخابشده، مقدار حافظه مناسبی را برای اعضای بافر تصویر XrCubemapLightingDataANDROID اختصاص دهد.
کاربرد معتبر (ضمنی)
- افزونهی
XR_ANDROID_light_estimation_cubemapباید قبل از فراخوانی xrEnumerateCubemapLightingColorFormatsANDROID فعال شود. -
instanceباید یک شناسه معتبر XrInstance باشد. -
colorFormatCountOutputباید یک اشارهگر به مقدارuint32_tباشد. - اگر
colorFormatCapacityInputبرابر با0نباشد،colorFormatsباید یک اشارهگر به آرایهای از مقادیرcolorFormatCapacityInputXrCubemapLightingColorFormatANDROID باشد.
کدهای بازگشت
-
XR_SUCCESS
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_SIZE_INSUFFICIENT -
XR_ERROR_SYSTEM_INVALID -
XR_ERROR_VALIDATION_FAILURE
ایجاد یک دسته تخمینگر نور cubemap
typedef struct XrCubemapLightEstimatorCreateInfoANDROID {
XrStructureType type;
const void* next;
uint32_t cubemapResolution;
XrCubemapLightingColorFormatANDROID colorFormat;
XrBool32 reproject;
} XrCubemapLightEstimatorCreateInfoANDROID;
توضیحات اعضا
-
typeنوع XrStructureType این ساختار است. -
nextNULLیا اشارهگری به ساختار بعدی در یک زنجیره ساختار است. -
cubemapResolutionیکuint32_tاست که وضوح نورپردازی cubemap مورد استفاده را نشان میدهد. -
colorFormatیک XrCubemapLightingColorFormatANDROID است که فرمت رنگ دادههای نورپردازی cubemap مورد استفاده را نشان میدهد. -
reprojectیکXrBool32است که نشان میدهد آیا نورپردازی cubemap باید به فضای پایه برنامه reproject شود یا خیر.
ساختار XrCubemapLightEstimatorCreateInfoANDROID اطلاعات لازم برای ایجاد یک هندل XrLightEstimatorANDROID را شرح میدهد تا بتواند تخمینهای روشنایی cubemap را ارائه دهد. عضو 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;
توضیحات اعضا
-
typeنوع XrStructureType این ساختار است. -
nextNULLیا اشارهگری به ساختار بعدی در یک زنجیره ساختار است. ساختارهای معتبر عبارتند از XrAmbientLightANDROID ، XrSphericalHarmonicsANDROID ، XrDirectionalLightANDROID . -
state، XrLightEstimateStateANDROID است که وضعیت تخمین نور را نشان میدهد. -
imageBufferSizeیکuint32_tاست که اندازه بایت هر بافر تصویر چهره در cubemap را نشان میدهد. -
imageBufferRightیک بافرuint8_tاست که حاوی تصویر چهره سمت راست cubemap میباشد. -
imageBufferLeftیک بافرuint8_tاست که شامل تصویر وجه چپ cubemap میباشد. -
imageBufferTopیک بافرuint8_tاست که شامل تصویر چهره بالایی cubemap میباشد. -
imageBufferBottomیک بافرuint8_tاست که شامل تصویر وجه پایینی cubemap میباشد. -
imageBufferFrontیک بافرuint8_tاست که شامل تصویر وجه جلویی cubemap میباشد. -
imageBufferBackیک بافرuint8_tاست که شامل تصویر وجه پشتی cubemap میباشد. -
rotationیک XrQuaternionf است که چرخش cubemap را نشان میدهد. -
centerExposureTimeیکXrTimeاست که زمان ثبت cubemap را نشان میدهد.
این ساختار میتواند به XrLightEstimateANDROID زنجیر شود. زمان اجرا فقط باید این ساختار را در xrGetLightEstimateANDROID پر کند اگر از XrCubemapLightEstimatorCreateInfoANDROID برای ایجاد دسته تخمینگر نور استفاده شده باشد. برنامه باید مقدار حافظه مناسبی را برای بافرهای تصویر اختصاص دهد که به مقادیر تعیین شده در XrCubemapLightEstimatorCreateInfoANDROID :: cubemapResolution و XrCubemapLightEstimatorCreateInfoANDROID :: colorFormat هنگام ایجاد دسته تخمینگر نور بستگی دارد. برنامه باید XrCubemapLightingDataANDROID :: imageBufferSize را روی ظرفیت هر بافر تصویر چهره بر حسب بایت تنظیم کند. اگر برنامه از تخمین نور cubemap استفاده نمیکند یا اگر XrCubemapLightingDataANDROID :: imageBufferSize به اندازه کافی بزرگ نیست که زمان اجرا بتواند بافرهای تصویر را پر کند، زمان اجرا باید XrCubemapLightingDataANDROID :: state را روی XR_LIGHT_ESTIMATE_STATE_INVALID_ANDROID تنظیم کند.
اگر برنامه هنگام ایجاد دسته تخمینگر نور، XrCubemapLightEstimatorCreateInfoANDROID :: reproject روی XR_TRUE تنظیم کند، زمان اجرا باید XrCubemapLightingDataANDROID :: rotation را روی چرخش هویت تنظیم کند و اطمینان حاصل کند که cubemap چرخشیافته داخلی روی وجوه یک cubemap هویت در فضای پایه برنامه، reproject میشود.
طرحبندی cubemap نورپردازی مشابه طرحبندی cubemap در OpenGL است، همانطور که در تصویر زیر نشان داده شده است.
شکل ۲۴. طرحبندی نقشه مکعبی.
کاربرد معتبر (ضمنی)
- افزونهی
XR_ANDROID_light_estimation_cubemapباید قبل از استفاده از XrCubemapLightingDataANDROID فعال باشد. -
typeبایدXR_TYPE_CUBEMAP_LIGHTING_DATA_ANDROIDباشد. -
nextبایدNULLیا یک اشارهگر معتبر به ساختار بعدی در یک زنجیره ساختار باشد. stateباید یک مقدار معتبر XrLightEstimateStateANDROID باشد.-
imageBufferRightباید یک اشارهگر به آرایهای از مقادیرuint8_timageBufferSizeباشد. -
imageBufferLeftباید یک اشارهگر به آرایهای از مقادیرuint8_timageBufferSizeباشد. -
imageBufferTopباید یک اشارهگر به آرایهای از مقادیرuint8_timageBufferSizeباشد. -
imageBufferBottomباید یک اشارهگر به آرایهای از مقادیرuint8_timageBufferSizeباشد. -
imageBufferFrontباید یک اشارهگر به آرایهای از مقادیرuint8_timageBufferSizeباشد. -
imageBufferBackmust be a pointer to an array ofimageBufferSizeuint8_tvalues - پارامتر
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 :
بسط XrSystemProperties :
Enum های جدید
ثابتهای شمارشی جدید
-
XR_ANDROID_LIGHT_ESTIMATION_CUBEMAP_EXTENSION_NAME -
XR_ANDROID_light_estimation_cubemap_SPEC_VERSION گسترش XrStructureType :
-
XR_TYPE_CUBEMAP_LIGHTING_DATA_ANDROID -
XR_TYPE_CUBEMAP_LIGHT_ESTIMATOR_CREATE_INFO_ANDROID -
XR_TYPE_SYSTEM_CUBEMAP_LIGHT_ESTIMATION_PROPERTIES_ANDROID
-
مسائل
تاریخچه نسخه
نسخه ۱، ۲۰۲۵-۱۲-۰۵ (سالار خان)
- توضیحات اولیه افزونه