Bir sahnedeki sanal nesneleri gerçekçi bir şekilde ışıklandırın

Lighting Estimation API, sanal nesneleri oluştururken çeşitli ışıklandırma ipuçlarını taklit etmenizi sağlayan ayrıntılı veriler sağlar. ARCore, üç farklı ışık tahmini modunu destekler:

  1. Devre dışı
  2. Ortam Yoğunluğu modu
  3. Ortam HDR modu

Ön koşullar

Devam etmeden önce temel AR kavramlarını ve ARCore oturumunu nasıl yapılandıracağınızı anladığınızdan emin olun.

Işık Tahminini Etkinleştir

Uygulamanızda ışıklandırma tahminini etkinleştirmek için bu adımları uygulayın.

  1. AR Foundation projesi veya ARCore Extensions projesi oluşturun.
  2. Hierarchy sekmesinde XR Session Origin > AR Camera adresine gidin.

  1. AR Camera Manager bileşeninin altında Light Estimation öğesini seçin.
  2. Light Estimation açılır menüsünden kullanmak istediğiniz modları seçin.

Ortam HDR modunu etkinleştir

Ortam HDR modu aşağıdaki ışık tahmini ayarlarını etkinleştirir:

Aşağıdaki ölçütler karşılandığında bu mod otomatik olarak etkinleştirilir:

Ambiyans Yoğunluğu modunu etkinleştir

ARCameraManager bileşeninde Ortam Yoğunluğu modu seçildiğinde temel ışık tahmini otomatik olarak etkinleştirilir.

Ambiyans Yoğunluğu modu aşağıdaki ışık tahmini ayarlarını etkinleştirir:

  • Ortam Rengi
  • Ortam Yoğunluğu

Sahnenizde ışıklandırma bilgilerini kullanın

Doğru ışıklandırma ayarlarını elde ettikten sonra, sahnenizdeki sanal nesneleri gerçek dünyanın bir parçası gibi ışıklandırabilirsiniz.

ARCameraManager bileşeni, ışıklandırma tahmini etkinleştirildiğinde karelerin ışık koşullarını tahmin eden bir frameReceived etkinliği oluşturabilir. frameReceived etkinliklerinden alınan bilgiler ARCameraFrameEventArgs yapılarında ARLightEstimationData olarak depolanır.

Çalışma zamanında ışığın parametrelerini değiştirmek için aşağıdaki adımları uygulayın.

  1. Sahnenizde yön ışığı oluşturun veya mevcut yön ışığını değiştirin.
  2. Yön Işığı'na yeni bir komut dosyası ekleyin.

    // 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. Işıktaki değişiklikleri algılamak için bu yeni komut dosyasını değiştirin. Bunun nasıl yapılacağına dair örnekler için Unity'nin BasicLightEstimation.cs ve HDRLightEstimation.cs komut dosyalarına göz atın.

Sahnenizde çevre problarını kullanın

Sahnenizde ortam kontrollerini etkinleştirmek için aşağıdaki adımları uygulayın.

  1. Sahnenizin ARSessionOrigin öğesinde otomatik yerleşimi etkinleştirin.
  2. ARSessionOrigin'e bir AREnvironmentProbeManager bileşeni ekleyin.