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

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

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

Ön koşullar

Temel artırılmış gerçeklik kavramlarını anladığınızdan emin olun ve devam etmeden önce ARCore oturumunun nasıl yapılandırılacağı hakkında daha fazla bilgi edinin.

Aydınlatma Tahminini Etkinleştir

Uygulamanızda ışık tahminini etkinleştirmek için bu adımları izleyin.

  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:

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

Ambiyans Yoğunluğu modunu etkinleştir

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

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

  • Ambiyans Renkleri
  • Ortam Yoğunluğu

Sahnenizde ışıklandırma bilgilerini kullanma

Doğru ışıklandırma ayarlarını elde ettiğinizde, 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 etkinliklerinden alınan bilgiler ARCameraFrameEventArgs yapıda ARLightEstimationData olarak depolanır.

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

  1. Sahnenizde mevcut Yön Işığı'nı 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. 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 yoklamaları kullanın

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

  1. Sahnenizde ARSessionOrigin otomatik yerleştirmeyi etkinleştirin.
  2. ARSessionOrigin'e bir AREnvironmentProbeManager bileşeni ekleyin.