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

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

  1. ปิดใช้
  2. โหมดความสว่างของโหมดแอมเบียนท์
  3. โหมด HDR ของสภาพแวดล้อม

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

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

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

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

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

  1. เลือก Light Estimation ในส่วนคอมโพเนนต์ AR Camera Manager
  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