Lighting Estimation-Entwicklerleitfaden für Unity

Lichtschätzung in Ihren eigenen Apps verwenden

Voraussetzungen

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

Außerdem sollten Sie Unity mit dem ARCore SDK für Unity 1.10.0 oder höher installiert und konfiguriert haben. Falls nicht, lesen Sie die Kurzanleitung für Unity für Android.

Beispielanwendung erstellen und ausführen

Ab dem ARCore SDK für Unity 1.10 ist im HelloAR-Beispiel für Unity der Modus für Umgebungs-HDR mit Reflexionen (EnvironmentalHDRWithReflections) standardmäßig aktiviert.

  1. Erstellen Sie auf der Grundlage der Kurzanleitung ein neues Projekt in Unity.

  2. Geben Sie unter Build-Einstellungen > Szenen in Build die Szene aus Assets/GoogleARCore/Examples/HelloAR/Scenes/HelloAR.unity an.

  3. Prüfen Sie, ob Ihr Gerät mit dem Computer verbunden ist, und klicken Sie dann auf Erstellen und ausführen. Unity erstellt aus Ihrem Projekt ein Android-APK, installiert es auf dem Gerät und startet es.

    1. Suchen Sie nach einem Ort mit verschiedenen Licht- und Schattenebenen.

    2. Bewegen Sie das Gerät, um Ebenen für die Platzierung zu identifizieren. Während du dein Gerät bewegst, erkennt die App automatisch flache Oberflächen und zeichnet ein Rautenraster.

    3. Tippe auf das Raster, um einen Android-Roboter auf die Oberfläche zu platzieren.

      Beachten Sie die spekulativen Spitzlichter, Schatten und das Umgebungslicht, das auf dem Modell gerendert wurde.

    4. Füge neue Android-Roboter an verschiedenen Stellen hinzu. Beachten Sie, dass jedes Modell anders an die Beleuchtung angepasst wird.

Beleuchtungsschätzung in Ihrer Szene konfigurieren

Sie können Unity für die Auswahl zwischen zwei Umgebungs-HDR-Modi und dem Modus Umgebungsintensität konfigurieren. Nachdem Sie den Modus für die Schätzung der Beleuchtung festgelegt haben, fügen Sie das Umgebungslicht in der Szene ein. Diese Voreinstellung führt automatisch eine ARCore-Lichtschätzung in Ihrer Szene durch.

  • Wenn der Lichtschätzungsmodus auf Umgebungs-HDR (mit oder ohne Reflexionen) eingestellt ist, aktualisiert die Umgebungslichtkomponente die Drehung und Farbe des Richtungslichts, der Umgebungsprobe (über RenderSettings.ambientProbe) und der Reflexionsprüfung (über RenderSettings.customReflection).

  • Wenn der Lichtschätzungsmodus auf Umgebungsintensität eingestellt ist, legt die Umgebungslichtkomponente das Attribut _GlobalLightEstimation fest, das in ARCore/DiffuseWithLightEstimation und ARCore/SpecularWithLightEstimation und anderen benutzerdefinierten Shadern verwendet wird, um die endgültige Farbausgabe an die Bildfarbe der Kamera anzupassen.

Sie können auch die Beleuchtungsschätzung deaktivieren.

So konfigurieren Sie die Lichtschätzung für neue oder vorhandene Projekte:

  1. Öffnen Sie ein vorhandenes Unity-Projekt.

    Erstellen Sie andernfalls ein neues Unity-Projekt und führen Sie dann einen der folgenden Schritte aus:

    • ARCore for Unity SDK importieren: Wähle Assets > Import Package > Custom Package aus und importiere dann arcore-unity-sdk*.unitypackage mit allen aktivierten Optionen.

    • Neue Sitzungskonfiguration erstellen: Wählen Sie Assets > Create > Google ARCore > SessionConfig aus.

  2. Wenn Sie in einem neuen Unity-Projekt arbeiten, konfigurieren Sie ARCore-Präfabs:

    1. Ziehen Sie die Vorfälschungen ARCore Device und Environmental Light aus dem Ordner Project in die Hierarchie, um sie als GameObjects hinzuzufügen.

    2. Die soeben importierten Voreinstellungen haben bereits eine Kamera und ein Richtungslicht. Löschen Sie die Standardkamera und die standardmäßigen Richtungslicht-GameObjects aus dem Stammverzeichnis derselben Hierarchie.

      Die Hierarchie sollte jetzt so aussehen:

  3. Wählen Sie in der Sitzungskonfiguration den Modus Lichtschätzung aus:

    1. Klicken Sie in Ihrer Projekthierarchie auf das GameObject ARCore-Gerät und doppelklicken Sie dann auf die Sitzungskonfiguration.

    2. Klicken Sie im Sitzungskonfigurations-Inspector auf das Drop-down-Menü Lichtschätzungsmodus und wählen Sie den gewünschten Modus aus oder deaktivieren Sie die Beleuchtungsoptimierung ganz.

      Die Standardeinstellung für neue Projekte ist HDR mit Umgebungsspiegeln.

  4. Wählen Sie den Shader für den Modus zur Beleuchtungsschätzung aus:

    • Wenn Sie den Umgebungs-HDR-Modus verwenden möchten, können Sie einfach integrierte Unity-Shader oder Standard-Shader von Unity verwenden.

    • Wenn Sie den Modus Umgebungsintensität verwenden möchten, müssen Sie einen benutzerdefinierten Shader verwenden, der den Begriff _GlobalLightEstimation in der endgültigen Farbausgabe verwendet, um Ihr virtuelles Objekt zu rendern. Weitere Informationen finden Sie unter ARCore/DiffuseWithLightEstimation- und ARCore/SpecularWithLightEstimation-Shaders.

Schattenqualität anpassen

Wenn Sie den Shader ARCore/TransparentShadow verwenden, der im ARCore SDK für Unity enthalten ist, empfehlen wir die folgenden Qualitätseinstellungen:

Attribut Einstellung
Schatten Harte und weiche Schatten
Schattenauflösung Hohe Auflösung
Schattenprojektion Fit schließen
Schattenabstand 20
Schattenmaskenmodus Entfernungsschattenmaske
Schatten in der Nähe des Ebenenversatzes 0
Schattenkaskaden Keine Kaskaden