ให้แสงวัตถุเสมือนจริงในฉากอย่างสมจริง

Lighting Estimation API จะให้ข้อมูลโดยละเอียดที่ทำให้คุณสามารถเลียนแบบคิวแสงแบบต่างๆ เมื่อแสดงภาพวัตถุเสมือน ARCore รองรับโหมดการประมาณแสง 3 โหมดดังนี้

  1. ปิดใช้
  2. โหมดความเข้มแวดล้อม
  3. โหมด HDR ในสภาพแวดล้อม

ข้อกำหนดเบื้องต้น

ตรวจสอบว่าคุณเข้าใจแนวคิด AR พื้นฐาน และวิธีกำหนดค่าเซสชัน ARCore ก่อนดำเนินการต่อ

เปิดใช้การประมาณการให้แสงสว่าง

ทำตามขั้นตอนต่อไปนี้เพื่อเปิดใช้การประมาณแสงในแอป

  1. ตั้งค่าโปรเจ็กต์ AR Foundation หรือโปรเจ็กต์ ARCore Extensions
  2. ในแท็บ Hierarchy ให้ไปที่ XR Session Origin > AR Camera

  1. ในคอมโพเนนต์ AR Camera Manager ให้เลือก Light Estimation
  2. ในเมนูแบบเลื่อนลง Light Estimation ให้เลือกโหมดที่คุณต้องการใช้

เปิดใช้โหมด HDR ในสภาพแวดล้อม

โหมด HDR ในสภาพแวดล้อมจะเปิดใช้การตั้งค่าการประมาณแสงต่อไปนี้

ระบบจะเปิดใช้โหมดนี้โดยอัตโนมัติเมื่อเป็นไปตามเกณฑ์ต่อไปนี้

เปิดใช้โหมดความเข้มแวดล้อม

ระบบจะเปิดใช้การประมาณแสงพื้นฐานโดยอัตโนมัติเมื่อเลือกโหมดความเข้มสภาพแวดล้อมในคอมโพเนนต์ ARCameraManager

โหมดความเข้มสภาพแวดล้อมจะเปิดใช้การตั้งค่าการประมาณแสงต่อไปนี้

  • สีแอมเบียนท์
  • ความเข้มของสภาพแวดล้อม

ใช้ข้อมูลการจัดแสงในฉาก

เมื่อคุณได้การตั้งค่าแสงที่ถูกต้องแล้ว คุณสามารถจัดแสงให้กับวัตถุเสมือนจริงในฉากราวกับว่าวัตถุนั้นเป็นส่วนหนึ่งของโลกจริงได้

คอมโพเนนต์ ARCameraManager อาจเพิ่มเหตุการณ์ frameReceived ที่ประมาณสภาพแสงของเฟรมเมื่อเปิดการประมาณแสง ข้อมูลจากเหตุการณ์ frameReceived จะจัดเก็บไว้ในโครงสร้าง ARCameraFrameEventArgs เป็น ARLightEstimationData

ทำตามขั้นตอนต่อไปนี้เพื่อเปลี่ยนพารามิเตอร์ของหลอดไฟระหว่างรันไทม์

  1. สร้างหรือแก้ไขแสงทิศทางที่มีอยู่ในฉากของคุณ
  2. แนบสคริปต์ใหม่กับทิศทางแสง

    // 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.
    }
    
  3. แก้ไขสคริปต์ใหม่นี้ให้ตรวจจับการเปลี่ยนแปลงของแสง ดูตัวอย่างวิธีดำเนินการได้จากสคริปต์ BasicLightEstimation.cs และ HDRLightEstimation.cs ของ Unity

ใช้การตรวจสอบสภาพแวดล้อมในฉากของคุณ

ทำตามขั้นตอนต่อไปนี้เพื่อเปิดใช้การตรวจสอบสภาพแวดล้อมในฉาก

  1. เปิดใช้ตำแหน่งอัตโนมัติใน ARSessionOrigin ของฉาก
  2. เพิ่มคอมโพเนนต์ AREnvironmentProbeManager ลงใน ARSessionOrigin