Lighting Estimation API จะให้ข้อมูลโดยละเอียดที่ทำให้คุณสามารถเลียนแบบคิวแสงแบบต่างๆ เมื่อแสดงภาพวัตถุเสมือน ARCore รองรับโหมดการประมาณแสง 3 โหมดดังนี้
ข้อกำหนดเบื้องต้น
ตรวจสอบว่าคุณเข้าใจแนวคิด AR พื้นฐาน และวิธีกำหนดค่าเซสชัน ARCore ก่อนดำเนินการต่อ
เปิดใช้การประมาณการให้แสงสว่าง
ทำตามขั้นตอนต่อไปนี้เพื่อเปิดใช้การประมาณแสงในแอป
- ตั้งค่าโปรเจ็กต์ AR Foundation หรือโปรเจ็กต์ ARCore Extensions
- ในแท็บ Hierarchy ให้ไปที่ XR Session Origin > AR Camera
- ในคอมโพเนนต์ AR Camera Manager ให้เลือก Light Estimation
- ในเมนูแบบเลื่อนลง Light Estimation ให้เลือกโหมดที่คุณต้องการใช้
เปิดใช้โหมด HDR ในสภาพแวดล้อม
โหมด HDR ในสภาพแวดล้อมจะเปิดใช้การตั้งค่าการประมาณแสงต่อไปนี้
- ทิศทางแสงหลัก
- ความเข้มของแสงหลัก
- เสียงแวดล้อมแบบทรงกลม
ระบบจะเปิดใช้โหมดนี้โดยอัตโนมัติเมื่อเป็นไปตามเกณฑ์ต่อไปนี้
- เลือกค่าฮาร์โมนิกทรงกลม ทิศทางแสงหลัก และ/หรือความเข้มของแสงหลักในโหมดการประมาณแสงที่ตัวจัดการกล้อง AR มีให้
- มีการเปิดใช้การตรวจสอบสภาพแวดล้อมใน
AREnvironmentProbeManager
- เลือกการกำหนดค่ากล้องที่เข้ากันได้แล้ว
เปิดใช้โหมดความเข้มแวดล้อม
ระบบจะเปิดใช้การประมาณแสงพื้นฐานโดยอัตโนมัติเมื่อเลือกโหมดความเข้มสภาพแวดล้อมในคอมโพเนนต์ ARCameraManager
โหมดความเข้มสภาพแวดล้อมจะเปิดใช้การตั้งค่าการประมาณแสงต่อไปนี้
- สีแอมเบียนท์
- ความเข้มของสภาพแวดล้อม
ใช้ข้อมูลการจัดแสงในฉาก
เมื่อคุณได้การตั้งค่าแสงที่ถูกต้องแล้ว คุณสามารถจัดแสงให้กับวัตถุเสมือนจริงในฉากราวกับว่าวัตถุนั้นเป็นส่วนหนึ่งของโลกจริงได้
คอมโพเนนต์ ARCameraManager
อาจเพิ่มเหตุการณ์ frameReceived
ที่ประมาณสภาพแสงของเฟรมเมื่อเปิดการประมาณแสง ข้อมูลจากเหตุการณ์ frameReceived
จะจัดเก็บไว้ในโครงสร้าง ARCameraFrameEventArgs
เป็น ARLightEstimationData
ทำตามขั้นตอนต่อไปนี้เพื่อเปลี่ยนพารามิเตอร์ของหลอดไฟระหว่างรันไทม์
- สร้างหรือแก้ไขแสงทิศทางที่มีอยู่ในฉากของคุณ
แนบสคริปต์ใหม่กับทิศทางแสง
// Sample Lighting Estimation script Light light; void Awake () { light = GetComponent<Light>(); } void OnEnable() { if (cameraManager != null) cameraManager.frameReceived += FrameChanged; } void OnDisable() { if (cameraManager != null) cameraManager.frameReceived -= FrameChanged; } void FrameChanged(ARCameraFrameEventArgs args) { // Modify `light` parameters using ARCameraFrameEventArgs. }
แก้ไขสคริปต์ใหม่นี้ให้ตรวจจับการเปลี่ยนแปลงของแสง ดูตัวอย่างวิธีดำเนินการได้จากสคริปต์
BasicLightEstimation.cs
และHDRLightEstimation.cs
ของ Unity
ใช้การตรวจสอบสภาพแวดล้อมในฉากของคุณ
ทำตามขั้นตอนต่อไปนี้เพื่อเปิดใช้การตรวจสอบสภาพแวดล้อมในฉาก
- เปิดใช้ตำแหน่งอัตโนมัติใน
ARSessionOrigin
ของฉาก - เพิ่มคอมโพเนนต์
AREnvironmentProbeManager
ลงในARSessionOrigin