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 Modi zur Lichtschätzung:

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

Vorbereitung

Machen Sie sich mit den grundlegenden AR-Konzepten vertraut. und Konfigurieren einer ARCore-Sitzung beschrieben, bevor du fortfährst.

Belichtungsschätzung aktivieren

Führen Sie die folgenden Schritte aus, um die Belichtungsschätzung in Ihrer App zu aktivieren.

  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 Umgebungsmodus „HDR“ werden die folgenden Einstellungen für die Lichtschätzung aktiviert:

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

Umgebungsintensitätsmodus aktivieren

Die einfache Lichtschätzung wird automatisch aktiviert, wenn in der Komponente ARCameraManager der Umgebungsintensitätsmodus ausgewählt ist.

Der Umgebungsintensitätsmodus aktiviert die folgenden Einstellungen für die Lichtschätzung:

  • Atmosphärisches Licht
  • Umgebungsintensität

Beleuchtungsinformationen in einer Szene verwenden

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

Die Komponente ARCameraManager kann ein frameReceived-Ereignis auslösen, das die Lichtverhältnisse der Frames schätzt, wenn die Lichtschätzung aktiviert ist. Informationen aus frameReceived-Ereignissen werden in ARCameraFrameEventArgs-Strukturen als ARLightEstimationData gespeichert.

So ändern Sie die Parameter einer Lampe während der Laufzeit:

  1. Erstelle oder ändere das Richtlicht in deiner Szene.
  2. Hänge an die Lichtsteuerung ein neues Script 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. Passen Sie das neue Script an, um Änderungen in der Beleuchtung zu erkennen. Beispiele dafür finden Sie in den Skripts von Unity für BasicLightEstimation.cs und HDRLightEstimation.cs.

Umgebungsprüfungen in Ihrer Szene verwenden

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

  1. Aktiviere die automatische Platzierung in der Szene ARSessionOrigin.
  2. Fügen Sie dem ARSessionOrigin eine AREnvironmentProbeManager-Komponente hinzu.