Menerangi objek virtual secara realistis dalam adegan

Lighting Estimation API memberikan data mendetail yang memungkinkan Anda meniru berbagai isyarat pencahayaan saat merender objek virtual. ARCore mendukung tiga mode estimasi cahaya:

  1. Nonaktif
  2. Mode Intensitas Standby
  3. Mode HDR lingkungan

Prasyarat

Pastikan Anda memahami konsep AR dasar dan cara mengonfigurasi sesi ARCore sebelum melanjutkan.

Mengaktifkan Estimasi Pencahayaan

Ikuti langkah-langkah berikut untuk mengaktifkan estimasi pencahayaan di aplikasi Anda.

  1. Siapkan project AR Foundation atau project ARCore Extensions.
  2. Di tab Hierarchy, buka XR Session Origin > AR Camera.

  1. Di bagian komponen AR Camera Manager, pilih Light Estimation.
  2. Di menu drop-down Light Estimation, pilih mode yang ingin Anda gunakan.

Mengaktifkan mode HDR Lingkungan

Mode HDR lingkungan mengaktifkan setelan estimasi cahaya berikut:

Mode ini diaktifkan secara otomatis jika kriteria berikut terpenuhi:

Aktifkan mode Intensitas Sekitar

Estimasi cahaya dasar otomatis diaktifkan saat mode Intensitas Sinematik dipilih di komponen ARCameraManager.

Mode Intensitas Standby mengaktifkan setelan estimasi cahaya berikut:

  • Warna Sekitar
  • Intensitas Ambien

Menggunakan informasi pencahayaan di tampilan

Setelah mendapatkan setelan pencahayaan yang benar, Anda dapat menerangi objek virtual di tampilan seolah-olah objek tersebut adalah bagian dari dunia nyata.

Komponen ARCameraManager dapat memicu peristiwa frameReceived yang memperkirakan kondisi pencahayaan bingkai saat estimasi pencahayaan diaktifkan. Informasi dari peristiwa frameReceived disimpan dalam struct ARCameraFrameEventArgs sebagai ARLightEstimationData.

Ikuti langkah-langkah berikut untuk mengubah parameter lampu saat runtime.

  1. Buat atau ubah Directional Light yang ada dalam suasana.
  2. Lampirkan skrip baru ke 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. Ubah skrip baru ini untuk mendeteksi perubahan pencahayaan. Untuk contoh cara melakukannya, lihat skrip BasicLightEstimation.cs dan HDRLightEstimation.cs Unity.

Menggunakan probe lingkungan di tampilan

Ikuti langkah-langkah berikut untuk mengaktifkan probe lingkungan di tampilan Anda.

  1. Aktifkan penempatan otomatis di ARSessionOrigin tampilan Anda.
  2. Tambahkan komponen AREnvironmentProbeManager ke ARSessionOrigin.