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

Prasyarat

Pastikan Anda memahami konsep dasar AR 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 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 Anda ingin gunakan.

Mengaktifkan mode HDR Lingkungan

Mode HDR lingkungan mengaktifkan setelan estimasi cahaya berikut:

Mode ini diaktifkan secara otomatis saat kriteria berikut terpenuhi:

Aktifkan mode Intensitas Sekitar

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

Mode Intensitas Sekitar mengaktifkan setelan estimasi cahaya berikut:

  • Warna Sekitar
  • Intensitas Sekitar

Gunakan informasi pencahayaan di adegan Anda

Setelah mendapatkan setelan pencahayaan yang tepat, Anda dapat menerangi objek virtual di adegan 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 struktur 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 pemeriksaan lingkungan di suasana Anda

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

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