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:
- Deaktiviert
- Umgebungsintensitätsmodus
- 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.
- Richten Sie ein AR Foundation-Projekt oder ein ARCore-Erweiterungsprojekt 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
- Umgebungsprüfungen sind in einer
AREnvironmentProbeManager
aktiviert - Eine kompatible Kamerakonfiguration wurde ausgewählt
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:
- Erstelle oder ändere das Richtlicht in deiner Szene.
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. }
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
undHDRLightEstimation.cs
.
Umgebungsprüfungen in Ihrer Szene verwenden
Führen Sie die folgenden Schritte aus, um Umgebungsprüfungen in Ihrer Szene zu aktivieren.
- Aktiviere die automatische Platzierung in der Szene
ARSessionOrigin
. - Fügen Sie dem
ARSessionOrigin
eineAREnvironmentProbeManager
-Komponente hinzu.