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

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. แนบสคริปต์ใหม่กับ Directional Light

    // 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