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

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

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

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

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

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

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

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

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

เปิดใช้โหมด Environmental 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