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łączanie szacowania oświetlenia

Aby włączyć szacowanie oświetlenia w 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 nieaktywnego

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ść światła otoczenia

Korzystanie z informacji o oświetleniu w scenie

Gdy uzyskasz prawidłowe ustawienia oświetlenia, możesz oświetlać wirtualne obiekty w scenie tak, jakby były częścią rzeczywistego świata.

Komponent ARCameraManager może wywołać zdarzenie frameReceived, które szacuje warunki oświetlenia w ramkach, gdy włączona 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 światło kierunkowe w 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 tego, jak to zrobić, znajdziesz w skryptach BasicLightEstimation.csHDRLightEstimation.cs Unity.

Używanie czujników środowiska w scenie

Aby włączyć próbki środowiska w scenie, wykonaj te czynności.

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