Name String
XR_ANDROID_light_estimation
ประเภทส่วนขยาย
ส่วนขยายอินสแตนซ์
หมายเลขต่อที่ลงทะเบียน
701
การแก้ไข
1
การขึ้นต่อกันของส่วนขยายและเวอร์ชัน
วันที่แก้ไขล่าสุด
2025-01-17
สถานะ IP
ไม่มีการอ้างสิทธิ์ใน IP ที่ทราบ
ผู้เขียน
Jared Finder, Google
Cairn Overturf, Google
Spencer Quin, Google
Levana Chen, Google
Nihav Jain, Google
Salar Khan, Google
Scott Chung, Google
ภาพรวม
ส่วนขยายนี้ช่วยให้แอปพลิเคชันขอข้อมูลที่แสดงถึงแสงสว่าง ของสภาพแวดล้อมจริงรอบๆ ชุดหูฟังได้ ข้อมูลนี้สามารถใช้ได้ เมื่อแสดงผลออบเจ็กต์เสมือนเพื่อส่องสว่างภายใต้เงื่อนไขเดียวกันกับ ฉากที่วางออบเจ็กต์
ตรวจสอบความสามารถของระบบ
แอปพลิเคชันสามารถตรวจสอบว่าระบบรองรับการประมาณแสงหรือไม่โดย เชื่อมต่อโครงสร้าง XrSystemLightEstimationPropertiesANDROID กับ XrSystemProperties เมื่อเรียกใช้ xrGetSystemProperties
typedef struct XrSystemLightEstimationPropertiesANDROID {
XrStructureType type;
void* next;
XrBool32 supportsLightEstimation;
} XrSystemLightEstimationPropertiesANDROID;
คำอธิบายสมาชิก
typeคือ XrStructureType ของโครงสร้างนี้nextคือNULLหรือตัวชี้ไปยังโครงสร้างถัดไปในห่วงโซ่โครงสร้าง ไม่มี โครงสร้างดังกล่าวที่กำหนดไว้ใน OpenXR หลักหรือส่วนขยายนี้supportsLightEstimationคือXrBool32ที่ระบุว่าระบบปัจจุบันรองรับการประมาณค่าแสงหรือไม่
แอปพลิเคชันสามารถตรวจสอบว่าระบบรองรับการประมาณแสงหรือไม่โดยขยาย XrSystemProperties ด้วยโครงสร้าง XrSystemLightEstimationPropertiesANDROID เมื่อเรียกใช้ xrGetSystemProperties
หากระบบไม่รองรับการประมาณแสง ระบบจะแสดง
XR_FALSE สำหรับ supportsLightEstimation และ XR_ERROR_FEATURE_UNSUPPORTED
จาก xrCreateLightEstimatorANDROID
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย XR_ANDROID_light_estimation ก่อน ใช้ XrSystemLightEstimationPropertiesANDROID
typeต้องเป็นXR_TYPE_SYSTEM_LIGHT_ESTIMATION_PROPERTIES_ANDROIDnextต้องเป็นNULLหรือพอยน์เตอร์ที่ถูกต้องไปยังโครงสร้างถัดไปใน ห่วงโซ่โครงสร้าง
สร้างแฮนเดิลเครื่องมือประมาณแสง
XR_DEFINE_HANDLE(XrLightEstimatorANDROID)
แฮนเดิล XrLightEstimatorANDROID แสดงถึงเครื่องมือประมาณค่าแสง คุณใช้แฮนเดิลนี้เพื่อเข้าถึงข้อมูลการประมาณแสงโดยใช้ฟังก์ชันอื่นๆ ในส่วนขยายนี้ได้
ฟังก์ชัน xrCreateLightEstimatorANDROID มีคำจำกัดความดังนี้
XrResult xrCreateLightEstimatorANDROID(
XrSession session,
XrLightEstimatorCreateInfoANDROID* createInfo,
XrLightEstimatorANDROID* outHandle);
คำอธิบายพารามิเตอร์
sessionคือ XrSession ที่สร้างเครื่องมือประมาณแสงcreateInfoคือตัวชี้ไปยังโครงสร้าง XrLightEstimatorCreateInfoANDROID ซึ่งมีพารามิเตอร์ที่จะใช้สร้างเครื่องมือประมาณแสงoutHandleเป็นตัวชี้ไปยังแฮนเดิลที่ระบบส่ง XrLightEstimatorANDROID ที่สร้างขึ้น
แอปพลิเคชันสามารถใช้ฟังก์ชัน xrCreateLightEstimatorANDROID เพื่อ สร้างตัวประมาณแสง
- xrCreateLightEstimatorANDROID จะแสดงผล
XR_ERROR_FEATURE_UNSUPPORTEDหากระบบไม่รองรับการประมาณค่าแสง - xrCreateLightEstimatorANDROID จะแสดง
XR_ERROR_PERMISSION_INSUFFICIENTหากไม่ได้ให้สิทธิ์ที่จำเป็นแก่แอปพลิเคชันที่เรียกใช้
จากนั้นคุณอาจใช้แฮนเดิลเครื่องมือประมาณแสงที่ส่งคืนในการเรียก API ได้ หากแอปพลิเคชันต้องการระบุต่อรันไทม์ว่าเข้าถึงข้อมูลการประมาณแสงเสร็จแล้ว ต้องทำลายแฮนเดิลโดยใช้ xrDestroyLightEstimatorANDROID
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_ANDROID_light_estimationก่อนเรียกใช้ xrCreateLightEstimatorANDROID sessionต้องเป็นแฮนเดิล XrSession ที่ถูกต้องcreateInfoต้องเป็นพอยน์เตอร์ไปยังโครงสร้าง XrLightEstimatorCreateInfoANDROIDoutHandleต้องเป็นตัวชี้ไปยังแฮนเดิล XrLightEstimatorANDROID
รหัสการคืนสินค้า
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_RUNTIME_FAILUREXR_ERROR_INSTANCE_LOSTXR_ERROR_SESSION_LOSTXR_ERROR_OUT_OF_MEMORYXR_ERROR_HANDLE_INVALIDXR_ERROR_LIMIT_REACHED
โครงสร้าง XrLightEstimatorCreateInfoANDROID อธิบายข้อมูล เพื่อสร้างแฮนเดิล XrLightEstimatorANDROID
typedef struct XrLightEstimatorCreateInfoANDROID {
XrStructureType type;
void* next;
} XrLightEstimatorCreateInfoANDROID;
คำอธิบายสมาชิก
typeคือ XrStructureType ของโครงสร้างนี้nextคือNULLหรือตัวชี้ไปยังโครงสร้างถัดไปในห่วงโซ่โครงสร้าง ไม่มี โครงสร้างดังกล่าวที่กำหนดไว้ใน OpenXR หลักหรือส่วนขยายนี้
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_ANDROID_light_estimationก่อนใช้ XrLightEstimatorCreateInfoANDROID typeต้องเป็นXR_TYPE_LIGHT_ESTIMATOR_CREATE_INFO_ANDROIDnextต้องเป็นNULLหรือพอยน์เตอร์ที่ถูกต้องไปยังโครงสร้างถัดไปใน ห่วงโซ่โครงสร้าง
ฟังก์ชัน xrDestroyLightEstimatorANDROID จะปล่อย estimator และทรัพยากรพื้นฐาน
XrResult xrDestroyLightEstimatorANDROID(
XrLightEstimatorANDROID estimator);
คำอธิบายพารามิเตอร์
estimatorคือ XrLightEstimatorANDROID ที่สร้างขึ้นก่อนหน้านี้โดย xrCreateLightEstimatorANDROID
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_ANDROID_light_estimationก่อนเรียกใช้ xrDestroyLightEstimatorANDROID estimatorต้องเป็นแฮนเดิล XrLightEstimatorANDROID ที่ถูกต้อง
ความปลอดภัยของเธรด
- การเข้าถึง
estimatorและแฮนเดิลย่อยทั้งหมดต้องซิงค์ภายนอก
รหัสการคืนสินค้า
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALID
เข้าถึงข้อมูลการประมาณแสง
ฟังก์ชัน xrGetLightEstimateANDROID มีคำจำกัดความดังนี้
XrResult xrGetLightEstimateANDROID(
XrLightEstimatorANDROID estimator,
const XrLightEstimateGetInfoANDROID* input,
XrLightEstimateANDROID* output);
คำอธิบายพารามิเตอร์
estimator: แฮนเดิลของ XrLightEstimatorANDROID ที่สร้างไว้ก่อนหน้า ด้วยxrCreateLightEstimatorANDROIDinput: พอยน์เตอร์ไปยังโครงสร้าง XrLightEstimateGetInfoANDROIDoutput: พอยน์เตอร์ไปยังโครงสร้าง XrLightEstimateANDROID
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_ANDROID_light_estimationก่อนเรียกใช้ xrGetLightEstimateANDROID estimatorต้องเป็นแฮนเดิล XrLightEstimatorANDROID ที่ถูกต้องinputต้องเป็นตัวชี้ไปยังโครงสร้าง XrLightEstimateGetInfoANDROID ที่ถูกต้องoutputต้องเป็นตัวชี้ไปยังโครงสร้าง XrLightEstimateANDROID
รหัสการคืนสินค้า
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_VALIDATION_FAILUREXR_ERROR_RUNTIME_FAILUREXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_SESSION_LOSTXR_ERROR_OUT_OF_MEMORYXR_ERROR_TIME_INVALID
XrLightEstimateGetInfoANDROID อธิบายข้อมูลที่จำเป็นในการรับข้อมูลการประมาณค่าแสง
typedef struct XrLightEstimateGetInfoANDROID {
XrStructureType type;
void* next;
XrSpace space;
XrTime time;
} XrLightEstimateGetInfoANDROID;
คำอธิบายสมาชิก
typeคือ XrStructureType ของโครงสร้างนี้nextคือNULLหรือตัวชี้ไปยังโครงสร้างถัดไปในห่วงโซ่โครงสร้างspaceคือ XrSpace ที่กำหนดพื้นที่อ้างอิงซึ่ง แสดงทิศทางแสงที่ส่งคืน ฮาร์มอนิกทรงกลม และการหมุนคิวบ์แมปtimeคือXrTimeที่อธิบายเวลาที่แอปพลิเคชัน ต้องการค้นหาการประมาณแสง
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_ANDROID_light_estimationก่อนใช้ XrLightEstimateGetInfoANDROID typeต้องเป็นXR_TYPE_LIGHT_ESTIMATE_GET_INFO_ANDROIDnextต้องเป็นNULLหรือพอยน์เตอร์ที่ถูกต้องไปยังโครงสร้างถัดไปใน ห่วงโซ่โครงสร้างspaceต้องเป็นแฮนเดิล XrSpace ที่ถูกต้อง
โครงสร้าง XrLightEstimateANDROID มีข้อมูลการประมาณแสง
typedef struct XrLightEstimateANDROID {
XrStructureType type;
void* next;
XrLightEstimateStateANDROID state;
XrTime lastUpdatedTime;
} XrLightEstimateANDROID;
คำอธิบายสมาชิก
typeคือ XrStructureType ของโครงสร้างนี้nextคือNULLหรือตัวชี้ไปยังโครงสร้างถัดไปในห่วงโซ่โครงสร้าง โครงสร้างที่ใช้ได้คือ XrAmbientLightANDROID, XrSphericalHarmonicsANDROID, XrEnvironmentLightingCubemapANDROID และ XrDirectionalLightANDROIDstateคือ XrLightEstimateStateANDROID ที่แสดงสถานะของ การประมาณค่าแสงlastUpdatedTimeคือXrTimeที่แสดงเวลาที่คำนวณค่าประมาณครั้งล่าสุด
หากต้องการรับข้อมูลการประมาณแสงสำหรับคิวบ์แมปแสงสภาพแวดล้อม แสงรอบข้าง ฮาร์มอนิกทรงกลม และ แสงส่องหลัก แอปพลิเคชันสามารถเชื่อมโยงอินสแตนซ์ของโครงสร้างต่อไปนี้ XrEnvironmentLightingCubemapANDROID XrAmbientLightANDROID XrSphericalHarmonicsANDROID และ XrDirectionalLightANDROID ตามลำดับกับ XrLightEstimateANDROID::next
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_ANDROID_light_estimationก่อนใช้ XrLightEstimateANDROID typeต้องเป็นXR_TYPE_LIGHT_ESTIMATE_ANDROIDnextต้องเป็นNULLหรือพอยน์เตอร์ที่ถูกต้องไปยังโครงสร้างถัดไปใน ห่วงโซ่โครงสร้าง ดูเพิ่มเติมที่ XrAmbientLightANDROID, XrDirectionalLightANDROID, XrEnvironmentLightingCubemapANDROID, XrSphericalHarmonicsANDROIDstateต้องเป็นค่า XrLightEstimateStateANDROID ที่ถูกต้อง
โครงสร้าง XrEnvironmentLightingCubemapANDROID มีข้อมูลการประมาณแสงในรูปแบบคิวบ์แมปเกี่ยวกับ แสงแวดล้อมของฉาก
typedef struct XrEnvironmentLightingCubemapANDROID {
XrStructureType type;
void* next;
XrLightEstimateStateANDROID state;
const float* cubemapRightImage;
const float* cubemapLeftImage;
const float* cubemapTopImage;
const float* cubemapBottomImage;
const float* cubemapFrontImage;
const float* cubemapBackImage;
uint32_t resolution;
XrQuaternionf rotation;
XrTime centerExposureTime;
} XrEnvironmentLightingCubemapANDROID;
คำอธิบายสมาชิก
typeคือ XrStructureType ของโครงสร้างนี้nextคือNULLหรือตัวชี้ไปยังโครงสร้างถัดไปในห่วงโซ่โครงสร้าง โครงสร้างที่ถูกต้องคือ XrSphericalHarmonicsANDROID, XrAmbientLightANDROID และ XrDirectionalLightANDROIDstateคือ XrLightEstimateStateANDROID ที่แสดงสถานะของ การประมาณค่าแสงcubemapRightImageคือfloat*ที่แสดงถึงบัฟเฟอร์ R32G32B32_SFLOAT ของ ด้านขวาของคิวบ์แมป โปรดทราบว่านี่คือ HDR ดังนั้นค่าลอยจึงอาจมากกว่า 1.0cubemapLeftImageคือfloat*ที่แสดงถึงบัฟเฟอร์ R32G32B32_SFLOAT ของ ด้านซ้ายของคิวบ์แมป โปรดทราบว่านี่คือ HDR ดังนั้นค่าลอยจึงอาจมากกว่า 1.0cubemapTopImageคือfloat*ที่แสดงถึงบัฟเฟอร์ R32G32B32_SFLOAT ของ ด้านบนของคิวบ์แมป โปรดทราบว่านี่คือ HDR ดังนั้นค่าลอยจึงอาจมากกว่า 1.0cubemapBottomImageคือfloat*ที่แสดงบัฟเฟอร์ R32G32B32_SFLOAT ของ ด้านล่างของคิวบ์แมป โปรดทราบว่านี่คือ HDR ดังนั้นค่าลอยจึงอาจมากกว่า 1.0cubemapFrontImageคือfloat*ที่แสดงบัฟเฟอร์ R32G32B32_SFLOAT ของ ด้านหน้าของคิวบ์แมป โปรดทราบว่านี่คือ HDR ดังนั้นค่าลอยจึงอาจมากกว่า 1.0resolutionคือuint32_tที่แสดงความกว้างและความสูงของรูปภาพของ แต่ละด้านของคิวบ์แมปrotationคือ XrQuaternionf ที่แสดงการหมุนของคิวบ์แมปcenterExposureTimeคือXrTimeที่แสดงเวลาที่บันทึกคิวบ์แมป มีประโยชน์สำหรับการประมาณค่าระหว่างคิวบ์แมป
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_ANDROID_light_estimationก่อนใช้ XrEnvironmentLightingCubemapANDROID typeต้องเป็นXR_TYPE_ENVIRONMENT_LIGHTING_CUBEMAP_ANDROIDnextต้องเป็นNULLหรือพอยน์เตอร์ที่ถูกต้องไปยังโครงสร้างถัดไปใน ห่วงโซ่โครงสร้างstateต้องเป็นค่า XrLightEstimateStateANDROID ที่ถูกต้องcubemapRightImageต้องเป็นตัวชี้ไปยังค่า Float ที่ถูกต้องcubemapLeftImageต้องเป็นตัวชี้ไปยังค่า Float ที่ถูกต้องcubemapTopImageต้องเป็นตัวชี้ไปยังค่า Float ที่ถูกต้องcubemapBottomImageต้องเป็นตัวชี้ไปยังค่า Float ที่ถูกต้องcubemapFrontImageต้องเป็นตัวชี้ไปยังค่า Float ที่ถูกต้องcubemapBackImageต้องเป็นตัวชี้ไปยังค่า Float ที่ถูกต้อง
โครงสร้าง XrAmbientLightANDROID มีข้อมูลการประมาณแสงเกี่ยวกับ แสงแวดล้อมในฉาก
typedef struct XrAmbientLightANDROID {
XrStructureType type;
void* next;
XrLightEstimateStateANDROID state;
XrVector3f intensity;
XrVector3f colorCorrection;
} XrAmbientLightANDROID;
คำอธิบายสมาชิก
typeคือ XrStructureType ของโครงสร้างนี้nextคือNULLหรือตัวชี้ไปยังโครงสร้างถัดไปในห่วงโซ่โครงสร้าง โครงสร้างที่ใช้ได้คือ XrSphericalHarmonicsANDROID, XrEnvironmentLightingCubemapANDROID และ XrDirectionalLightANDROIDstateคือ XrLightEstimateStateANDROID ที่แสดงสถานะของ การประมาณค่าแสงintensityคือXrVector3ที่แสดงถึงความเข้มของแสงแวดล้อม แต่ละองค์ประกอบของเวกเตอร์จะสอดคล้องกับช่องสีแดง สีเขียว และสีน้ำเงินcolorCorrectionคือXrVector3ที่มีค่าในพื้นที่แกมมา คูณสีของภาพที่เรนเดอร์ซึ่งมีการแก้ไขแกมมาด้วยค่าเหล่านี้
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_ANDROID_light_estimationก่อนใช้ XrAmbientLightANDROID typeต้องเป็นXR_TYPE_AMBIENT_LIGHT_ANDROIDnextต้องเป็นNULLหรือพอยน์เตอร์ที่ถูกต้องไปยังโครงสร้างถัดไปใน ห่วงโซ่โครงสร้างstateต้องเป็นค่า XrLightEstimateStateANDROID ที่ถูกต้อง
โครงสร้าง XrSphericalHarmonicsANDROID มีฮาร์มอนิกทรงกลม ที่แสดงถึงแสงของฉาก
typedef struct XrSphericalHarmonicsANDROID {
XrStructureType type;
void* next;
XrLightEstimateStateANDROID state;
XrSphericalHarmonicsKindANDROID kind;
float coefficients[9][3];
} XrSphericalHarmonicsANDROID;
คำอธิบายสมาชิก
typeคือ XrStructureType ของโครงสร้างนี้nextคือNULLหรือตัวชี้ไปยังโครงสร้างถัดไปในห่วงโซ่โครงสร้าง โครงสร้างที่ใช้ได้ ได้แก่ XrAmbientLightANDROID, XrEnvironmentLightingCubemapANDROID, และ XrDirectionalLightANDROIDstateคือ XrLightEstimateStateANDROID ที่แสดงสถานะของ การประมาณค่าแสงkindคือ XrSphericalHarmonicsKindANDROID ที่แอปพลิเคชันร้องขอcoefficientsคืออาร์เรย์floatแบบ 2 มิติที่มีมิติข้อมูลเป็น 9 แถวและ 3 คอลัมน์ คอลัมน์ 3 คอลัมน์ที่สอดคล้องกับแชแนลสีแดง เขียว และน้ำเงิน ตามลำดับ แต่ละแชแนลมีสัมประสิทธิ์ฮาร์มอนิกทรงกลม 9 รายการ
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_ANDROID_light_estimationก่อนใช้ XrSphericalHarmonicsANDROID typeต้องเป็นXR_TYPE_SPHERICAL_HARMONICS_ANDROIDnextต้องเป็นNULLหรือพอยน์เตอร์ที่ถูกต้องไปยังโครงสร้างถัดไปใน ห่วงโซ่โครงสร้างstateต้องเป็นค่า XrLightEstimateStateANDROID ที่ถูกต้องkindต้องเป็นค่า XrSphericalHarmonicsKindANDROID ที่ถูกต้อง
โครงสร้าง XrDirectionalLightANDROID มีข้อมูลการประมาณแสง
typedef struct XrDirectionalLightANDROID {
XrStructureType type;
void* next;
XrLightEstimateStateANDROID state;
XrVector3f intensity;
XrVector3f direction;
} XrDirectionalLightANDROID;
คำอธิบายสมาชิก
typeคือ XrStructureType ของโครงสร้างนี้nextคือNULLหรือตัวชี้ไปยังโครงสร้างถัดไปในห่วงโซ่โครงสร้าง โครงสร้างที่ถูกต้องคือ XrAmbientLightANDROID, XrSphericalHarmonicsANDROID และ XrDirectionalLightANDROIDstateคือ XrLightEstimateStateANDROID ที่แสดงสถานะของ การประมาณค่าแสงintensityคือXrVector3ที่แสดงถึงความเข้มของแสงแบบมีทิศทาง แต่ละองค์ประกอบของเวกเตอร์จะสอดคล้องกับช่องสีแดง สีเขียว และสีน้ำเงินdirectionคือXrVector3ที่แสดงทิศทางของแสง
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_ANDROID_light_estimationก่อนใช้ XrDirectionalLightANDROID typeต้องเป็นXR_TYPE_DIRECTIONAL_LIGHT_ANDROIDnextต้องเป็นNULLหรือพอยน์เตอร์ที่ถูกต้องไปยังโครงสร้างถัดไปใน ห่วงโซ่โครงสร้างstateต้องเป็นค่า XrLightEstimateStateANDROID ที่ถูกต้อง
การแจงนับ XrSphericalHarmonicsKindANDROID จะระบุให้รันไทม์ทราบ ว่าแอปพลิเคชันขอฮาร์มอนิกทรงกลมประเภทใด
typedef enum XrSphericalHarmonicsKindANDROID {
XR_SPHERICAL_HARMONICS_KIND_TOTAL_ANDROID = 0,
XR_SPHERICAL_HARMONICS_KIND_AMBIENT_ANDROID = 1
} XrSphericalHarmonicsKindANDROID;
Enums มีความหมายดังนี้
Enum |
คำอธิบาย |
|
สัมประสิทธิ์ฮาร์มอนิกทรงกลมแสดงฟังก์ชันความสว่างของแสงสภาพแวดล้อม รวมถึงการมีส่วนร่วมจากแสงหลัก |
|
สัมประสิทธิ์ฮาร์มอนิกทรงกลมแสดงฟังก์ชันความสว่างของแสงแวดล้อม โดยไม่รวมการมีส่วนร่วมจากแสงหลัก |
การแจงนับ XrLightEstimateStateANDROID จะระบุต่อรันไทม์ ว่าแอปพลิเคชันขอฮาร์มอนิกทรงกลมประเภทใด
typedef enum XrLightEstimateStateANDROID {
XR_LIGHT_ESTIMATE_STATE_VALID_ANDROID = 0,
XR_LIGHT_ESTIMATE_STATE_INVALID_ANDROID = 1
} XrLightEstimateStateANDROID;
Enums มีความหมายดังนี้
Enum |
คำอธิบาย |
|
การประมาณการการใช้งานไฟถูกต้อง |
|
ค่าประมาณแสงไม่ถูกต้อง |
ตัวอย่างโค้ดสำหรับการประมาณค่าแสง
โค้ดตัวอย่างต่อไปนี้แสดงวิธีรับค่าประมาณแสงที่เป็นไปได้ทั้งหมดจากรันไทม์
XrSession session; // Created at app startup
XrSpace appSpace; // Created previously.
XrLightEstimatorANDROID estimator;
XrLightEstimatorCreateInfoANDROID createInfo = {
.type = XR_TYPE_LIGHT_ESTIMATOR_CREATE_INFO_ANDROID};
CHK_XR(xrCreateLightEstimatorANDROID(session, &createInfo, &estimator));
// 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,
};
XrDirectionalLightANDROID directionalLight = {
.type = XR_TYPE_DIRECTIONAL_LIGHT_ANDROID,
};
XrSphericalHarmonicsANDROID totalSh = {
.type = XR_TYPE_SPHERICAL_HARMONICS_ANDROID,
.kind = XR_SPHERICAL_HARMONICS_KIND_TOTAL_ANDROID,
.next = &directionalLight,
};
XrSphericalHarmonicsANDROID ambientSh = {
.type = XR_TYPE_SPHERICAL_HARMONICS_ANDROID,
.kind = XR_SPHERICAL_HARMONICS_KIND_AMBIENT_ANDROID,
.next = &totalSh,
};
XrAmbientLightANDROID ambientLight = {
.type = XR_TYPE_AMBIENT_LIGHT_ANDROID,
.next = &ambientSh,
};
XrEnvironmentLightingCubemapANDROID lightingCubemap {
.type = XR_TYPE_ENVIRONMENT_LIGHTING_CUBEMAP_ANDROID,
.next = &ambientLight,
}
XrLightEstimateANDROID estimate = {
.type = XR_TYPE_LIGHT_ESTIMATE_ANDROID,
.next = &lightingCubemap,
};
XrResult result = xrGetLightEstimateANDROID(estimator, &info, &estimate);
if (result == XR_SUCCESS &&
estimate.state == XR_LIGHT_ESTIMATE_STATE_VALID_ANDROID) {
// use directionalLight, totalSh, ambientSh, ambientLight,
// lightingCubemap, if each
// struct has a valid state field
}
// When you want to disable light estimation
CHK_XR(xrDestroyLightEstimatorANDROID(estimator));
ประเภทออบเจ็กต์ใหม่
XrLightEstimator
มีการขยายการแจงนับ XrObjectType ด้วยรายการต่อไปนี้
XR_OBJECT_TYPE_LIGHT_ESTIMATOR_ANDROID
มีการขยายการแจงนับ XrStructureType ด้วยรายการต่อไปนี้
XR_TYPE_LIGHT_ESTIMATOR_CREATE_INFO_ANDROIDXR_TYPE_LIGHT_ESTIMATE_GET_INFO_ANDROIDXR_TYPE_LIGHT_ESTIMATE_ANDROIDXR_TYPE_DIRECTIONAL_LIGHT_ANDROIDXR_TYPE_SPHERICAL_HARMONICS_ANDROIDXR_TYPE_AMBIENT_LIGHT_ANDROIDXR_TYPE_ENVIRONMENT_LIGHTING_CUBEMAP_ANDROID
Enums ใหม่
โครงสร้างใหม่
- XrLightEstimatorCreateInfoANDROID
- XrLightEstimateGetInfoANDROID
- XrLightEstimateANDROID
- XrDirectionalLightANDROID
- XrSphericalHarmonicsANDROID
- XrAmbientLightANDROID
- XrSystemLightEstimationPropertiesANDROID
- XrEnvironmentLightingCubemapANDROID
ฟังก์ชันใหม่
ปัญหา
ประวัติเวอร์ชัน
- การแก้ไขครั้งที่ 2, 2025-01-17 (Salar Khan)
- เพิ่มการรองรับคิวบ์แมปการจัดแสงสภาพแวดล้อม
- การแก้ไขครั้งที่ 1, 16-09-2024 (Cairn Overturf)
- คำอธิบายส่วนขยายเริ่มต้น
OpenXR™ และโลโก้ OpenXR เป็นเครื่องหมายการค้าของ The Khronos Group Inc. และจดทะเบียนเป็นเครื่องหมายการค้าในจีน สหภาพยุโรป ญี่ปุ่น และสหราชอาณาจักร