Bei Treffertests werden virtuelle Objekte in der realen Welt platziert

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.

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.