Realistycznie oświetlone wirtualne obiekty w scenie

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

  1. Wyłączono
  2. Tryb dźwięku otoczenia
  3. Tryb HDR dla środowiska

Wymagania wstępne

Zanim przejdziesz dalej, upewnij się, że rozumiesz podstawowe zagadnienia związane z rozszerzoną rzeczywistością oraz że wiesz, jak skonfigurować sesję ARCore.

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 rozszerzeń ARCore.
  2. Na karcie Hierarchy otwórz XR Session Origin > AR Camera.

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

Włączanie trybu HDR dla środowiska

Tryb HDR otoczenia umożliwia ustawienie tych parametrów oceny światła:

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

Włączanie trybu intensywności dźwięku

Podstawowe oszacowanie światła jest automatycznie włączane, gdy w komponencie ARCameraManager wybrany jest tryb oświetlenia kinowego.

Tryb natężenia światła otoczenia umożliwia ustawienie tych parametrów szacowania światła:

  • Kolor otoczenia
  • Intensywność otoczenia

Korzystanie z informacji o oświetleniu w scenie

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

Komponent ARCameraManager może wywołać zdarzenie frameReceived, które szacuje warunki oświetlenia klatek, gdy włączone jest szacowanie oświetlenia. Informacje z zdarzeń frameReceived są przechowywane w strukturach ARCameraFrameEventArgs jako ARLightEstimationData.

Aby zmienić parametry światła w czasie działania, wykonaj te czynności.

  1. Utwórz lub zmodyfikuj istniejące już oświetlenie kierunkowe w swojej scenie.
  2. Załą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 oświetlenia. Przykłady znajdziesz w skryptach BasicLightEstimation.csHDRLightEstimation.cs w Unity.

Używanie czujników środowiska w scenie

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 ARSessionOrigin.