Realistycznie oświetlone wirtualne obiekty w scenie

Interfejs Lighting Estimation API udostępnia szczegółowe dane, które pozwalają naśladować różne sygnały oświetleniowe podczas renderowania obiektów wirtualnych. ARCore obsługuje 3 tryby szacowania światła:

  1. Wyłączono
  2. Tryb intensywności otoczenia
  3. Tryb HDR w środowisku środowiskowym

Wymagania wstępne

Upewnij się, że znasz podstawowe pojęcia związane z AR. i dowiedz się, jak skonfigurować sesję ARCore, zanim przejdziesz dalej.

Włącz oszacowanie oświetlenia

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

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

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

Włącz środowiskowy tryb HDR

Środowy tryb HDR umożliwia włączenie tych ustawień szacowania ilości światła:

Ten tryb włącza się automatycznie, gdy są spełnione te kryteria:

Włącz tryb intensywności otoczenia

Podstawowe szacowanie jasności jest automatycznie włączone po wybraniu trybu intensywności otoczenia w komponencie ARCameraManager.

Tryb intensywności otoczenia włącza następujące ustawienia szacowania ilości światła:

  • Kolor otoczenia
  • Intensywność otoczenia

Używaj w scenie informacji o oświetleniu

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

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

Aby zmienić parametry oświetlenia w czasie działania, wykonaj te czynności:

  1. Utwórz lub zmodyfikuj istniejące już oświetlenie kierunkowe.
  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łady znajdziesz w skryptach BasicLightEstimation.cs i HDRLightEstimation.cs na platformie Unity.

Użyj w scenie sond środowiskowych

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

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