Virtuelle Objekte in einer Szene realistisch beleuchten

Die Lighting Estimation API bietet detaillierte Daten, mit denen Sie beim Rendern virtueller Objekte verschiedene Lichtsignale nachahmen können. ARCore unterstützt drei Lichtschätzmodi:

  1. Deaktiviert
  2. Umgebungsintensitätsmodus
  3. HDR-Modus für Umgebung

Voraussetzungen

Machen Sie sich mit den grundlegenden AR-Konzepten und zur Konfiguration einer ARCore-Sitzung vertraut, bevor Sie fortfahren.

Belichtungsschätzung aktivieren

So aktivieren Sie die Schätzung der Beleuchtung in Ihrer App:

  1. Richten Sie ein AR Foundation-Projekt oder ein ARCore-Erweiterungsprojekt ein.
  2. Gehen Sie auf dem Tab Hierarchy zu XR Session Origin > AR Camera.

  1. Wählen Sie unter der Komponente „AR Camera Manager“ die Option Light Estimation aus.
  2. Wählen Sie im Drop-down-Menü Light Estimation die gewünschten Modi aus.

Umgebungs-HDR-Modus aktivieren

Im Umgebungs-HDR-Modus werden die folgenden Einstellungen zur Lichtschätzung aktiviert:

Dieser Modus wird automatisch aktiviert, wenn die folgenden Kriterien erfüllt sind:

Umgebungsintensitätsmodus aktivieren

Die einfache Lichteinschätzung ist automatisch aktiviert, wenn in der Komponente ARCameraManager der Modus „Umgebungsintensität“ ausgewählt ist.

Der Modus „Umgebungsintensität“ aktiviert die folgenden Einstellungen für die Lichtschätzung:

  • Umgebungsfarbe
  • Umgebungsintensität

Informationen zur Beleuchtung in Ihrer Szene verwenden

Sobald Sie die richtigen Beleuchtungseinstellungen festgelegt haben, können Sie die virtuellen Objekte in Ihrer Szene so beleuchten, als ob sie Teil der realen Welt wären.

Bei aktivierter Beleuchtungsschätzung kann die Komponente ARCameraManager ein frameReceived-Ereignis auslösen, mit dem die Lichtverhältnisse der Frames geschätzt werden. Informationen aus frameReceived-Ereignissen werden in ARCameraFrameEventArgs-Structs als ARLightEstimationData gespeichert.

So ändern Sie die Parameter einer Lampe zur Laufzeit:

  1. Erstellen oder ändern Sie das vorhandene Richtlicht in Ihrer Szene.
  2. Fügen Sie ein neues Skript an das Richtungslicht an.

    // 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. Ändere dieses neue Script, um Änderungen der Beleuchtung zu erkennen. Beispiele dafür finden Sie in den BasicLightEstimation.cs- und HDRLightEstimation.cs-Skripts von Unity.

Umgebungsprüfungen in Ihrer Szene verwenden

Führen Sie die folgenden Schritte aus, um Umgebungsprüfungen in Ihrer Szene zu aktivieren.

  1. Aktivieren Sie die automatische Platzierung in den ARSessionOrigin Ihrer Szene.
  2. Fügen Sie dem ARSessionOrigin eine AREnvironmentProbeManager-Komponente hinzu.