XR_ANDROID_light_estimation_cubemap
Name String
XR_ANDROID_light_estimation_cubemap
Loại tiện ích
Tiện ích phiên bản
Số máy nhánh đã đăng ký
722
Bản sửa đổi
1
Trạng thái phê chuẩn
Chưa được phê chuẩn
Phần mở rộng và các phần phụ thuộc vào phiên bản
XR_ANDROID_light_estimation
Ngày sửa đổi gần đây nhất
2025-08-06
Trạng thái IP
Không có thông báo xác nhận quyền sở hữu nào đã biết về quyền sở hữu trí tuệ.
Cộng tác viên
Salar Khan, Google
Scott Chung, Google
Jared Finder, Google
Spencer Quin, Google
Levana Chen, Google
Nihav Jain, Google
Jürgen Sturm, Google
Tổng quan
Tiện ích này được xây dựng dựa trên tiện ích XR_ANDROID_light_estimation cơ bản. Thư viện này hỗ trợ việc nhận thông tin ước tính về ánh sáng trong cubemap, giúp cung cấp thông tin ước tính chi tiết hơn về ánh sáng trong môi trường thực tế.
Lưu ý
Cơ chế để lấy dữ liệu ước tính ánh sáng cũng giống như cơ chế của tiện ích cơ bản, ngoại trừ việc XrCubemapLightEstimatorCreateInfoANDROID phải được liên kết với XrLightEstimatorCreateInfoANDROID khi tạo trình xử lý ước tính ánh sáng.
Kiểm tra khả năng của hệ thống
typedef struct XrSystemCubemapLightEstimationPropertiesANDROID {
XrStructureType type;
void* next;
XrBool32 supportsCubemapLightEstimation;
} XrSystemCubemapLightEstimationPropertiesANDROID;
Nội dung mô tả thành viên
typelà XrStructureType của cấu trúc này.nextlàNULLhoặc con trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc. Không có cấu trúc nào như vậy được xác định trong OpenXR cốt lõi hoặc tiện ích này.supportsCubemapLightEstimationlà mộtXrBool32, cho biết liệu hệ thống hiện tại có hỗ trợ tính năng ước tính ánh sáng cubemap hay không.
Ứng dụng có thể kiểm tra xem hệ thống có hỗ trợ tính năng ước tính ánh sáng của cubemap hay không bằng cách mở rộng XrSystemProperties bằng cấu trúc XrSystemCubemapLightEstimationPropertiesANDROID khi gọi xrGetSystemProperties .
Nếu thời gian chạy trả về XR_FALSE cho supportsCubemapLightEstimation và XrCubemapLightEstimatorCreateInfoANDROID đã được liên kết với XrLightEstimatorCreateInfoANDROID , thì thời gian chạy phải trả về XR_ERROR_FEATURE_UNSUPPORTED từ xrCreateLightEstimatorANDROID .
Cách sử dụng hợp lệ (ngầm)
- Bạn phải bật tiện ích
XR_ANDROID_light_estimation_cubemaptrước khi sử dụng XrSystemCubemapLightEstimationPropertiesANDROID -
typephải làXR_TYPE_SYSTEM_CUBEMAP_LIGHT_ESTIMATION_PROPERTIES_ANDROID -
nextphải làNULLhoặc một con trỏ hợp lệ đến cấu trúc tiếp theo trong chuỗi cấu trúc
Lấy độ phân giải được hỗ trợ của cubemap
XrResult xrEnumerateCubemapLightingResolutionsANDROID(
XrInstance instance,
XrSystemId systemId,
uint32_t resolutionCapacityInput,
uint32_t* resolutionCountOutput,
uint32_t* resolutions);
Nội dung mô tả về tham số
instancelà một XrInstance được tạo trước đó.systemIdlàXrSystemIdđược xrGetSystem truy xuất trước đó để lấy độ phân giải cubemap được hỗ trợ.resolutionCapacityInputlà mộtuint32_tcho biết số lượng tối đa các phần tử có thể được lưu trữ trong mảngresolutions.resolutionCountOutputlà một con trỏ đếnuint32_tdo thời gian chạy thiết lập, cho biết số lượng phần tử được thời gian chạy ghi vào mảngresolutions.resolutionslà một mảnguint32_tđược thời gian chạy điền sẵn bằng các độ phân giải cubemap được hỗ trợ.
Độ phân giải của cubemap cho biết chiều rộng và chiều cao của mỗi mặt trong cubemap tính bằng pixel. Thành ngữ 2 lệnh gọi Sau đó, ứng dụng có thể chọn sử dụng một trong các độ phân giải được hỗ trợ trong XrCubemapLightEstimatorCreateInfoANDROID :: cubemapResolution khi tạo trình xử lý công cụ ước tính ánh sáng. Ứng dụng phải phân bổ lượng bộ nhớ thích hợp cho các thành phần bộ đệm hình ảnh của XrCubemapLightingDataANDROID dựa trên độ phân giải đã chọn và định dạng màu.
Cách sử dụng hợp lệ (ngầm)
- Bạn phải bật tiện ích
XR_ANDROID_light_estimation_cubemaptrước khi gọi xrEnumerateCubemapLightingResolutionsANDROID -
instancephải là một đối tượng XrInstance hợp lệ -
resolutionCountOutputphải là con trỏ đến giá trịuint32_t - Nếu
resolutionCapacityInputkhông phải là0, thìresolutionsphải là con trỏ đến một mảng gồm các giá trịresolutionCapacityInputuint32_t
Mã trả về
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SIZE_INSUFFICIENTXR_ERROR_SYSTEM_INVALIDXR_ERROR_VALIDATION_FAILURE
Lấy các định dạng màu cubemap được hỗ trợ
Liệt kê XrCubemapLightingColorFormatANDROID để xác định thời gian chạy, định dạng màu của ánh sáng cubemap cần sử dụng.
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;
Các enum có ý nghĩa như sau:
Nội dung mô tả enum
XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R32G32B32_SFLOAT_ANDROID
Định dạng màu có 3 kênh, trong đó mỗi kênh là một giá trị dấu phẩy động 32 bit.
XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R32G32B32A32_SFLOAT_ANDROID
Định dạng màu có 4 kênh, trong đó mỗi kênh là một giá trị dấu phẩy động 32 bit.
XR_CUBEMAP_LIGHTING_COLOR_FORMAT_R16G16B16A16_SFLOAT_ANDROID
Định dạng màu có 4 kênh, trong đó mỗi kênh là một giá trị dấu phẩy động 16 bit.
XrResult xrEnumerateCubemapLightingColorFormatsANDROID(
XrInstance instance,
XrSystemId systemId,
uint32_t colorFormatCapacityInput,
uint32_t* colorFormatCountOutput,
XrCubemapLightingColorFormatANDROID* colorFormats);
Nội dung mô tả về tham số
instancelà một XrInstance được tạo trước đó.systemIdlàXrSystemIdđược xrGetSystem truy xuất trước đó để lấy độ phân giải cubemap được hỗ trợ.colorFormatCapacityInputlà mộtuint32_tcho biết số lượng tối đa các phần tử có thể được lưu trữ trong mảngcolorFormats.colorFormatCountOutputlà một con trỏ đếnuint32_tdo thời gian chạy thiết lập, cho biết số lượng phần tử được thời gian chạy ghi vào mảngcolorFormats.colorFormatslà một mảng XrCubemapLightingColorFormatANDROID do thời gian chạy điền sẵn bằng các định dạng màu cubemap được hỗ trợ.
2-call idiom (Thành ngữ 2 lệnh gọi) Sau đó, ứng dụng có thể chọn sử dụng một trong các định dạng màu được hỗ trợ trong XrCubemapLightEstimatorCreateInfoANDROID :: colorFormat khi tạo trình xử lý bộ ước tính ánh sáng. Ứng dụng phải phân bổ lượng bộ nhớ thích hợp cho các thành phần bộ đệm hình ảnh của XrCubemapLightingDataANDROID dựa trên định dạng màu đã chọn.
Cách sử dụng hợp lệ (ngầm)
- Bạn phải bật tiện ích
XR_ANDROID_light_estimation_cubemaptrước khi gọi xrEnumerateCubemapLightingColorFormatsANDROID -
instancephải là một đối tượng XrInstance hợp lệ -
colorFormatCountOutputphải là con trỏ đến giá trịuint32_t - Nếu
colorFormatCapacityInputkhông phải là0, thìcolorFormatsphải là con trỏ đến một mảng gồm các giá trịcolorFormatCapacityInputXrCubemapLightingColorFormatANDROID
Mã trả về
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SIZE_INSUFFICIENTXR_ERROR_SYSTEM_INVALIDXR_ERROR_VALIDATION_FAILURE
Tạo một đối tượng ước tính ánh sáng cubemap
typedef struct XrCubemapLightEstimatorCreateInfoANDROID {
XrStructureType type;
const void* next;
uint32_t cubemapResolution;
XrCubemapLightingColorFormatANDROID colorFormat;
XrBool32 reproject;
} XrCubemapLightEstimatorCreateInfoANDROID;
Nội dung mô tả thành viên
typelà XrStructureType của cấu trúc này.nextlàNULLhoặc con trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc.cubemapResolutionlà mộtuint32_tcho biết độ phân giải của ánh sáng cubemap cần sử dụng.colorFormatlà XrCubemapLightingColorFormatANDROID cho biết định dạng màu của dữ liệu chiếu sáng cubemap cần sử dụng.reprojectlà mộtXrBool32cho biết liệu ánh sáng cubemap có nên được chiếu lại vào không gian cơ sở của ứng dụng hay không.
Cấu trúc XrCubemapLightEstimatorCreateInfoANDROID mô tả thông tin để tạo một đối tượng XrLightEstimatorANDROID có khả năng cung cấp thông tin ước tính về ánh sáng trong cubemap. Bạn phải đặt thành viên cubemapResolution của XrCubemapLightEstimatorCreateInfoANDROID thành một trong các độ phân giải do xrEnumerateCubemapLightingResolutionsANDROID trả về . Bạn phải đặt thành viên colorFormat của XrCubemapLightEstimatorCreateInfoANDROID thành một trong các định dạng màu do xrEnumerateCubemapLightingColorFormatsANDROID trả về . Nếu ứng dụng không đặt độ phân giải thành một trong các độ phân giải được hỗ trợ hoặc định dạng màu thành một trong các định dạng màu được hỗ trợ, thì thời gian chạy phải trả về XR_ERROR_FEATURE_UNSUPPORTED từ xrCreateLightEstimatorANDROID .
Cách sử dụng hợp lệ (ngầm)
- Bạn phải bật tiện ích
XR_ANDROID_light_estimation_cubemaptrước khi sử dụng XrCubemapLightEstimatorCreateInfoANDROID -
typephải làXR_TYPE_CUBEMAP_LIGHT_ESTIMATOR_CREATE_INFO_ANDROID -
nextphải làNULLhoặc một con trỏ hợp lệ đến cấu trúc tiếp theo trong chuỗi cấu trúc -
colorFormatphải là một giá trị XrCubemapLightingColorFormatANDROID hợp lệ
Số liệu ước tính về ánh sáng trong bản đồ hình khối
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;
Nội dung mô tả thành viên
typelà XrStructureType của cấu trúc này.nextlàNULLhoặc con trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc. Các cấu trúc hợp lệ là XrAmbientLightANDROID , XrSphericalHarmonicsANDROID , XrDirectionalLightANDROID .statelà XrLightEstimateStateANDROID, đại diện cho trạng thái của thông tin ước tính về ánh sáng.imageBufferSizelà mộtuint32_tcho biết kích thước byte của mỗi vùng đệm hình ảnh khuôn mặt trong cubemap.imageBufferRightlà một vùng đệmuint8_tchứa hình ảnh mặt bên phải của cubemap.imageBufferLeftlà một vùng đệmuint8_tchứa hình ảnh khuôn mặt bên trái của cubemap.imageBufferToplà một vùng đệmuint8_tchứa hình ảnh khuôn mặt trên cùng của cubemap.imageBufferBottomlà một vùng đệmuint8_tchứa hình ảnh mặt dưới của cubemap.imageBufferFrontlà một vùng đệmuint8_tchứa hình ảnh mặt trước của cubemap.imageBufferBacklà một vùng đệmuint8_tchứa hình ảnh mặt sau của cubemap.rotationlà một XrQuaternionf cho biết hướng xoay của cubemap.centerExposureTimelà mộtXrTimecho biết thời gian chụp cubemap.
Cấu trúc này có thể được liên kết với XrLightEstimateANDROID . Thời gian chạy chỉ được điền sẵn cấu trúc này trong xrGetLightEstimateANDROID nếu XrCubemapLightEstimatorCreateInfoANDROID được dùng để tạo trình xử lý ước tính ánh sáng. Ứng dụng phải phân bổ lượng bộ nhớ thích hợp cho các vùng đệm hình ảnh, tuỳ thuộc vào các giá trị được đặt trong XrCubemapLightEstimatorCreateInfoANDROID :: cubemapResolution và XrCubemapLightEstimatorCreateInfoANDROID :: colorFormat khi tạo trình xử lý công cụ ước tính ánh sáng. Ứng dụng phải đặt XrCubemapLightingDataANDROID :: imageBufferSize thành dung lượng của mỗi vùng đệm hình ảnh khuôn mặt tính bằng byte. Nếu ứng dụng không sử dụng tính năng ước tính ánh sáng cubemap hoặc nếu XrCubemapLightingDataANDROID :: imageBufferSize không đủ lớn để thời gian chạy điền vào các vùng đệm hình ảnh, thì thời gian chạy phải đặt XrCubemapLightingDataANDROID :: state thành XR_LIGHT_ESTIMATE_STATE_INVALID_ANDROID .
Nếu ứng dụng đặt XrCubemapLightEstimatorCreateInfoANDROID :: reproject thành XR_TRUE khi tạo trình ước tính ánh sáng, thì thời gian chạy phải đặt XrCubemapLightingDataANDROID :: rotation thành phép xoay nhận dạng và đảm bảo rằng cubemap được xoay nội bộ được chiếu lại lên các mặt của cubemap nhận dạng trong không gian cơ sở của ứng dụng.
Bố cục của cubemap chiếu sáng giống với bố cục cubemap OpenGL, như minh hoạ trong hình ảnh sau
Hình 24. Bố cục bản đồ hình khối.
Cách sử dụng hợp lệ (ngầm)
- Bạn phải bật tiện ích
XR_ANDROID_light_estimation_cubemaptrước khi sử dụng XrCubemapLightingDataANDROID -
typephải làXR_TYPE_CUBEMAP_LIGHTING_DATA_ANDROID -
nextphải làNULLhoặc một con trỏ hợp lệ đến cấu trúc tiếp theo trong chuỗi cấu trúc -
statephải là một giá trị XrLightEstimateStateANDROID hợp lệ -
imageBufferRightphải là con trỏ đến một mảng gồm các giá trịimageBufferSizeuint8_t -
imageBufferLeftphải là con trỏ đến một mảng gồm các giá trịimageBufferSizeuint8_t -
imageBufferTopphải là con trỏ đến một mảng gồm các giá trịimageBufferSizeuint8_t -
imageBufferBottomphải là con trỏ đến một mảng gồm các giá trịimageBufferSizeuint8_t -
imageBufferFrontphải là con trỏ đến một mảng gồm các giá trịimageBufferSizeuint8_t -
imageBufferBackphải là con trỏ đến một mảng gồm các giá trịimageBufferSizeuint8_t - Tham số
imageBufferSizephải lớn hơn0
Mã ví dụ để ước tính ánh sáng
Đoạn mã ví dụ sau đây minh hoạ cách lấy tất cả các số lượng ước tính ánh sáng có thể có từ thời gian chạy
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));
Lệnh mới
Cấu trúc mới
Mở rộng XrLightEstimateANDROID :
Mở rộng XrLightEstimatorCreateInfoANDROID :
Mở rộng XrSystemProperties :
Enum mới
Hằng số Enum mới
XR_ANDROID_LIGHT_ESTIMATION_CUBEMAP_EXTENSION_NAMEXR_ANDROID_light_estimation_cubemap_SPEC_VERSIONMở rộng XrStructureType :
XR_TYPE_CUBEMAP_LIGHTING_DATA_ANDROIDXR_TYPE_CUBEMAP_LIGHT_ESTIMATOR_CREATE_INFO_ANDROIDXR_TYPE_SYSTEM_CUBEMAP_LIGHT_ESTIMATION_PROPERTIES_ANDROID
Vấn đề
Nhật ký phiên bản
Bản sửa đổi 1, ngày 5 tháng 12 năm 2025 (Salar Khan)
- Nội dung mô tả ban đầu của tiện ích