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 Ambien
  3. Mode HDR lingkungan

Prasyarat

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

Aktifkan Estimasi Pencahayaan

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

  1. Siapkan project AR Foundation atau project Ekstensi ARCore.
  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:

Mengaktifkan mode Intensitas Standby

Estimasi cahaya dasar otomatis diaktifkan saat Mode Intensitas Standby dipilih di komponen ARCameraManager.

Mode Intensitas Sekitar mengaktifkan setelan perkiraan cahaya berikut:

  • Warna Sekitar
  • Intensitas Ambien

Gunakan informasi pencahayaan di ruang pandang Anda

Setelah mendapatkan setelan pencahayaan yang tepat, Anda dapat menerangi objek virtual dalam adegan seolah-olah objek tersebut adalah bagian dari dunia nyata.

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

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

  1. Buat atau modifikasi Directional Light yang ada dalam adegan Anda.
  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 pemeriksaan lingkungan di scene Anda

Ikuti langkah-langkah berikut untuk mengaktifkan pemeriksaan lingkungan di scene Anda.

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