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 uzantıları projesi oluşturun.
  2. Hierarchy sekmesinde XR Session Origin > AR Camera'ye 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 ARCameraFrameEventArgs yapılarında ARLightEstimationData olarak 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önlü ışığa 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ı, ışıklandırmadaki değişiklikleri algılayacak şekilde 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 ortam probları kullanma

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

  1. Sahenizin ARSessionOrigin bölümünde otomatik yerleşimi etkinleştirin.
  2. ARSessionOrigin öğesine bir AREnvironmentProbeManager bileşeni ekleyin.