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

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

  1. Devre dışı
  2. Ambiyans Yoğunluğu modu
  3. Çevresel 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 Tahmini'ni etkinleştirme

Uygulamanızda ışıklandırma tahminini etkinleştirmek için aşağıdaki 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'ı seçin.
  2. Light Estimation açılır menüsünde, kullanmak istediğiniz modları seçin.

Çevre HDR modunu etkinleştirme

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

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

Ambiyans Yoğunluğu modunu etkinleştirme

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

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

  • Ambiyans Renkleri
  • Ambiyans Yoğunluğu

Sahnenizde ışık bilgilerini kullanma

Doğru ışıklandırma ayarlarını yaptıktan sonra sahnenizdeki sanal nesneleri gerçek dünyanın bir parçasıymış gibi aydınlatabilirsiniz.

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

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

  1. Sahnenizdeki mevcut yönlü ışığı oluşturun veya 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. Bu yeni komut dosyasını ışıktaki değişiklikleri algılayacak şekilde değiştirin. Bunu nasıl yapacağınıza dair örnekler için Unity'nin BasicLightEstimation.cs ve HDRLightEstimation.cs komut dosyalarına göz atın.

Sahnenizde ortam probları kullanma

Sahnenizde ortam kontrollerini etkinleştirmek için bu adımları uygulayın.

  1. Sahnenizde ARSessionOrigin otomatik yerleştirmeyi etkinleştirin.
  2. ARSessionOrigin öğesine bir AREnvironmentProbeManager bileşeni ekleyin.