Plattformspezifische Leitfäden
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
AR-Inhalte müssen korrekt platziert und skaliert werden, damit sie sich in eine Szene einfügen. Wie reale Objekte sollten auch virtuelle Objekte, die weiter entfernt sind, kleiner erscheinen. Sie können einen Treffertest (oder einen Raycast in AR Foundation für Unity) durchführen, um die korrekte Platzierung eines 3D-Objekts in Ihrer Szene zu bestimmen. Durch die korrekte Platzierung wird sichergestellt, dass die AR-Inhalte in der richtigen (scheinbaren) Größe gerendert werden.
Bei Treffertests werden Schnittpunkte zwischen der 3D-Geometrie der realen Welt und einem virtuellen Strahl ermittelt, der aus einem Ursprung und einer Richtung besteht. Am häufigsten werden Strahlen mit der Kamera des Geräts als Ursprung verwendet. ARCore enthält jedoch eine API zum Ausführen von Treffertests mit einem beliebigen Strahl in Weltraumkoordinaten.
Stellen Sie sich vor, dass ein Strahl von der Kamera des Geräts eines Nutzers ausgeht und sich so lange nach vorne erstreckt, bis er auf die 3D-Geometrie der Szene trifft, z. B. auf einen Boden, eine Wand oder ein Objekt. In diesem Fall erhalten Sie eine Liste mit Treffergebnissen oder Schnittpunkten mit der erkannten Szenengeometrie. Die Liste ist nach Entfernung vom Gerät sortiert, wobei die nächste Kreuzung zuerst angezeigt wird. Das ist wichtig, da Objekte, die hinter anderen Objekten verdeckt sind, in der Regel nicht sichtbar sind. Daher ist das erste Ergebnis meist das wichtigste.

Inhalt eines Treffergebnisses
Ein einzelnes Treffergebnis wird als Liste mit den folgenden Informationen für jedes Ergebnis zurückgegeben:
- Entfernung vom Ursprung des Strahls in Metern
- Pose (Position und Ausrichtung) des Treffergebnisses
- Die 3D-Geometrie, auf die Sie getroffen haben, in Form eines Trackable
Anschließend können Sie das gewünschte Treffergebnis verwenden, um Ihre 3D-Inhalte mithilfe eines Ankers realistisch zu platzieren.
Arten von Treffergebnissen
Es gibt vier Arten von Treffergebnissen: Tiefen-, Ebenen-, Feature-Point- und Instant-Placement-Ergebnisse. Jede Art hat ihre eigenen Anwendungsfälle und Kompromisse, wie in der folgenden Tabelle dargestellt.
. Auf Geräten ohne Tiefenunterstützung, Geräten mit Tiefenunterstützung, die noch keine Tiefendaten haben, oder in Sitzungen, in denen die Tiefenunterstützung deaktiviert wurde, werden stattdessen Ebenen-Treffergebnisse verwendet.| Art des Treffergebnisses | Beschreibung | Ausrichtung | Anwendungsfall |
|---|---|---|---|
| Tiefe | Verwendet Tiefeninformationen aus der gesamten Szene, um die korrekte Tiefe und Ausrichtung eines Punkts zu bestimmen | Senkrecht zur 3D-Oberfläche | Ein virtuelles Objekt auf einer beliebigen Oberfläche platzieren (nicht nur auf Böden und Wänden) |
| Ebene | Trifft auf horizontale und/oder vertikale Oberflächen, um die korrekte Tiefe und Ausrichtung eines Punkts zu bestimmen | Senkrecht zur 3D-Oberfläche | Ein Objekt auf einer Ebene (Boden oder Wand) mit der vollständigen Geometrie der Ebene platzieren. Korrekte Skalierung sofort erforderlich. Fallback für den Tiefen-Treffertest |
| Feature-Point | Verwendet visuelle Features um den Punkt einer Nutzereingabe, um die korrekte Position und Ausrichtung eines Punkts zu bestimmen | Senkrecht zur 3D-Oberfläche | Ein Objekt auf einer beliebigen Oberfläche platzieren (nicht nur auf Böden und Wänden) |
| Instant Placement (Persistent Raycast) | Verwendet den Bildschirmbereich, um Inhalte zu platzieren. Verwendet zunächst die von der App bereitgestellte geschätzte Tiefe. Funktioniert sofort, aber Pose und tatsächliche Tiefe ändern sich, sobald ARCore die tatsächliche Szenengeometrie bestimmen kann. | +Y nach oben, entgegen der Schwerkraft | Ein Objekt auf einer Ebene (Boden oder Wand) mit der vollständigen Geometrie der Ebene platzieren, wenn eine schnelle Platzierung entscheidend ist und die Erfahrung eine unbekannte anfängliche Tiefe und Skalierung tolerieren kann. |
Gerätekompatibilität
Treffertests funktionieren auf allen Geräten mit ARCore-Unterstützung. Für Tiefen-Treffertests sind jedoch Geräte mit Tiefenunterstützung erforderlich.
AR-Inhalte mit Treffergebnissen platzieren
Sobald Sie ein Treffergebnis haben, können Sie seine Pose als Eingabe verwenden, um AR-Inhalte in Ihrer Szene zu platzieren.