Die Lighting Estimation API bietet detaillierte Daten, mit denen Sie beim Rendern virtueller Objekte verschiedene Lichthinweise nachahmen können. ARCore unterstützt drei Modi zur Lichtschätzung:
- Deaktiviert
- Umgebungsintensitätsmodus
- HDR-Modus für die Umgebung
Voraussetzungen
Machen Sie sich mit den grundlegenden AR-Konzepten und der Konfiguration einer ARCore-Sitzung vertraut, bevor Sie fortfahren.
Belichtungsschätzung aktivieren
So aktivieren Sie die Lichtschätzung in Ihrer App:
- Richten Sie ein AR Foundation-Projekt oder ein ARCore Extensions-Projekt ein.
- Gehen Sie auf dem Tab Hierarchy zu XR Session Origin > AR Camera.
- Wählen Sie unter der Komponente AR Camera Manager die Option Light Estimation aus.
- 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:
- Lichtrichtung (Hauptlicht)
- Hauptlichtintensität
- Sphärische Umgebungsharmonien
Dieser Modus wird automatisch aktiviert, wenn die folgenden Kriterien erfüllt sind:
- Sphärische Harmonien der Umgebung, Hauptlichtrichtung und/oder die Hauptlichtintensität werden im Modus „Lichtschätzung“ ausgewählt, der vom AR-Kameramanager bereitgestellt wird
- Umgebungsproben sind in einer
AREnvironmentProbeManager
aktiviert. - Eine kompatible Kamerakonfiguration ist ausgewählt.
Modus für die Umgebungsintensität aktivieren
Die grundlegende Lichtschätzung wird automatisch aktiviert, wenn in der Komponente ARCameraManager
der Modus „Umgebungsintensität“ ausgewählt ist.
Im Modus „Umgebungsintensität“ sind die folgenden Einstellungen für die Lichtschätzung verfügbar:
- Atmosphärisches Licht
- Umgebungsintensität
Beleuchtungsinformationen in einer Szene verwenden
Sobald Sie die richtigen Beleuchtungseinstellungen gefunden haben, können Sie die virtuellen Objekte in Ihrer Szene so 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
-Structs als ARLightEstimationData
gespeichert.
So ändern Sie die Parameter einer Lampe zur Laufzeit:
- Erstellen oder ändern Sie das vorhandene Richtungslicht in Ihrer Szene.
Hängen Sie dem Richtungslicht 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. }
Ändern Sie dieses neue Script so, dass es Änderungen bei der Beleuchtung erkennt. Beispiele dazu finden Sie in den Scripts
BasicLightEstimation.cs
undHDRLightEstimation.cs
von Unity.
Umgebungssensoren in der Szene verwenden
Führen Sie die folgenden Schritte aus, um Umgebungsprüfungen in Ihrer Szene zu aktivieren.
- Aktiviere die automatische Platzierung in der
ARSessionOrigin
deiner Szene. - Fügen Sie der
ARSessionOrigin
die KomponenteAREnvironmentProbeManager
hinzu.