Realistycznie oświetlone wirtualne obiekty w scenie

Interfejs Lighting Estimation API udostępnia szczegółowe dane, które umożliwiają naśladowanie różnych sygnałów świetlnych podczas renderowania obiektów wirtualnych. ARCore obsługuje 3 tryby szacowania światła:

  1. Wyłączono
  2. Tryb intensywności otoczenia
  3. Tryb środowiskowy HDR

Wymagania wstępne

Zanim przejdziesz dalej, upewnij się, że znasz podstawowe pojęcia związane z AR i wiesz, jak skonfigurować sesję ARCore.

Włącz Oszacowanie oświetlenia

Aby włączyć w aplikacji oszacowanie oświetlenia, wykonaj te czynności.

  1. Skonfiguruj projekt AR Foundation lub projekt rozszerzeń ARCore.
  2. Na karcie Hierarchy przejdź do: XR Session Origin > AR Camera.

  1. W komponencie AR Camera Manager kliknij Light Estimation.
  2. W menu Light Estimation wybierz tryby, których chcesz używać.

Włącz środowiskowy tryb HDR

Tryb środowiskowego HDR pozwala włączyć te ustawienia oceny światła:

Ten tryb jest włączany automatycznie, gdy są spełnione te kryteria:

Włącz tryb intensywności oświetlenia

Oszacowanie podstawowego oświetlenia jest automatycznie włączone po wybraniu trybu intensywności otoczenia w komponencie ARCameraManager.

Tryb intensywności otoczenia włącza te ustawienia szacowania oświetlenia:

  • Kolor otoczenia
  • Intensywność otoczenia

Używanie informacji o oświetleniu w scenie

Po wybraniu odpowiednich ustawień oświetlenia możesz oświetlić wirtualne obiekty tak, jakby były częścią rzeczywistego świata.

Gdy włączone jest oszacowanie oświetlenia, komponent ARCameraManager może wywoływać zdarzenie frameReceived, które szacuje warunki oświetlenia klatek. Informacje ze zdarzeń frameReceived są przechowywane w strukturach ARCameraFrameEventArgs jako ARLightEstimationData.

Wykonaj te czynności, aby zmienić parametry lampki w czasie działania.

  1. Utwórz lub zmodyfikuj oświetlenie kierunkowe w scenie.
  2. Dołącz nowy skrypt do światła kierunkowego.

    // 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. Zmodyfikuj ten nowy skrypt, aby wykrywać zmiany w oświetleniu. Przykładowe instrukcje znajdziesz w skryptach BasicLightEstimation.cs i HDRLightEstimation.cs na platformie Unity.

Używaj sond środowiskowych w scenie

Aby włączyć sondy środowiska w scenie, wykonaj te czynności.

  1. Włącz automatyczne umieszczanie w sekcji ARSessionOrigin sceny.
  2. Dodaj komponent AREnvironmentProbeManager do ARSessionOrigin.