Tiefe sorgt für Realismus

Plattformspezifische Leitfäden

Als Entwickler einer AR-App möchten Sie für Ihre Nutzer das Virtuelle mit dem echten verbinden. Wenn Nutzende ein virtuelles Objekt in ihrer Szene platzieren, möchten sie, dass es so aussieht, als würde es in die reale Welt gehören. Wenn Sie eine App für den Möbelkauf entwickeln, möchten Sie, dass Nutzende sicher sein können, dass der Sessel, den sie kaufen möchten, in ihre Umgebung passen.

Mithilfe der Depth API kann die Kamera eines Geräts die Größe und Form der realen Objekte in einer Szene erkennen. Damit lassen sich Tiefenbilder bzw. Tiefenkarten erstellen und Ihren Apps eine realistischere Note verleihen. Mithilfe der Informationen aus einem Tiefenbild können Sie immersive und realistische User Experiences schaffen.

Anwendungsfälle für die Entwicklung mit der Depth API

Die Depth API ermöglicht eine Objektverdeckung, eine bessere Immersion und neue Interaktionen, die den Realismus von AR-Erlebnissen verbessern. Im Folgenden finden Sie einige Möglichkeiten, wie Sie es in Ihren eigenen Projekten verwenden können. Beispiele für die Tiefe in Aktion finden Sie in den Beispielszenen im ARCore Depth Lab, die verschiedene Möglichkeiten für den Zugriff auf Tiefendaten zeigen. Diese Unity-App ist eine Open-Source-App auf GitHub.

Verdeckung aktivieren

Verdeckung, also das genaue Rendern eines virtuellen Objekts hinter realen Objekten, ist für ein immersives AR-Erlebnis von entscheidender Bedeutung. Stellen Sie sich einen virtuellen Andy vor, den ein Nutzer in einer Szene platzieren möchte, in der sich ein Kofferraum neben einer Tür befindet. Der ohne Verdeckung gerenderte Andy überschneidet sich unrealistisch mit dem Rand des Rumpfs. Wenn Sie die Tiefe einer Szene nutzen und verstehen, wie weit der virtuelle Andy im Verhältnis zu Umgebungen wie dem Holzstamm entfernt ist, können Sie den Andy mit Verdeckung genau rendern, sodass er in seiner Umgebung viel realistischer erscheint.

Szene transformieren

Zeigen Sie Ihren Nutzern eine neue, immersive Welt, indem Sie virtuelle Schneeflocken rendern, die sich auf den Armen und Kissen auf dem Sofa sitzen lassen oder ihr Wohnzimmer in einen nebelverhangenen Nebel werfen. Mit der Funktion „Tiefe“ kannst du eine Szene erstellen, in der virtuelle Lichter interagieren, sich hinter sich verstecken und reale Objekte nachbelichten.

Entfernung und Schärfentiefe

Möchtest du zeigen, dass etwas weit weg ist? Sie können die Entfernungsmessung verwenden und Tiefenschärfeeffekte hinzufügen, z. B. den Hintergrund oder den Vordergrund einer Szene weichzeichnen.

Nutzerinteraktionen mit AR-Objekten ermöglichen

Ermögliche Nutzern, die Welt über deine App zu "berühren", indem du ihnen die Möglichkeit gibst, über Kollision und Physik mit der realen Welt zu interagieren. Du kannst mit virtuellen Objekten reale Hindernisse überwinden oder virtuelle Paintballs auf einen echten Baum schlagen und spritzen lassen. Durch die Kombination aus tiefenbasierten Kollisionen und Spielphysik kannst du ein Erlebnis zum Leben erwecken.

Treffertests verbessern

Die Tiefe kann verwendet werden, um die Treffertestergebnisse zu verbessern. Ebenen-Treffertests funktionieren nur auf planaren Oberflächen mit Textur. Tiefentests sind hingegen detaillierter und funktionieren auch in nicht planaren Bereichen und Bereichen mit niedriger Textur. Dies liegt daran, dass bei Tiefentests von Treffern Tiefeninformationen aus der Szene verwendet werden, um die richtige Tiefe und Ausrichtung eines Punkts zu bestimmen.

Im folgenden Beispiel stehen die grünen Andys für Standardtreffertests und die roten Andys für Tiefentreffertests.

Eingeschränkte Gerätekompatibilität

Die Depth API wird nur auf Geräten unterstützt, deren Prozessorleistung ausreichend ist. Sie muss manuell in ARCore aktiviert werden, wie unter Tiefe aktivieren beschrieben.

Einige Geräte haben auch einen Hardware-Tiefensensor, z. B. einen ToF-Sensor (Time-of-Flight). Auf der Seite Von ARCore unterstützte Geräte finden Sie eine aktuelle Liste der Geräte, die die Depth API unterstützen, sowie eine Liste der Geräte, die einen unterstützten Hardware-Tiefensensor haben, z. B. einen ToF-Sensor.

Tiefenbilder

Die Depth API verwendet einen Bewegungstiefen-Algorithmus, um Tiefenbilder zu erstellen, die eine 3D-Ansicht der Welt ermöglichen. Jedem Bild in einem Tiefenbild wird ein Maß zugeordnet, wie weit die Szene von der Kamera entfernt ist. Dieser Algorithmus nimmt Bilder von mehreren Geräten aus verschiedenen Blickwinkeln auf und vergleicht sie, um die Entfernung zu jedem Pixel zu schätzen, während ein Nutzer sein Smartphone bewegt. Dabei wird selektiv maschinelles Lernen eingesetzt, um die Verarbeitung der Tiefen zu erhöhen – selbst bei minimalen Bewegungen des Nutzers. Außerdem wird ggf. zusätzliche Hardware des Nutzergeräts genutzt. Wenn das Gerät über einen speziellen Tiefensensor wie ToF verfügt, führt der Algorithmus Daten aus allen verfügbaren Quellen automatisch zusammen. Dadurch wird die vorhandene Tiefenaufnahme optimiert und Tiefe auch dann ermöglicht, wenn die Kamera sich nicht bewegt. Auf Oberflächen mit wenigen oder gar keinen Elementen, wie z. B. weißen Wänden, oder in dynamischen Szenen mit sich bewegenden Personen oder Objekten, sorgt die Funktion für eine bessere Tiefe.

Die folgenden Bilder zeigen eine Kameraaufnahme eines Flurs mit einem Fahrrad an der Wand und eine Visualisierung der Tiefenaufnahme, die aus den Kamerabildern erstellt wird. Bereiche in Rot liegen näher an der Kamera, Bereiche in Blau weiter weg.

Tiefe durch Bewegung

Tiefendaten sind verfügbar, wenn der Nutzer sein Gerät bewegt. Der Algorithmus kann zuverlässige und genaue Tiefenschätzungen in einer Entfernung von 0 bis 65 Metern erstellen. Die genauesten Ergebnisse erhalten Sie, wenn das Gerät einen halben bis fünf Meter von der realen Szene entfernt ist. Wenn Nutzer dazu ermutigt werden, das Gerät weiter zu bewegen, erzielen Sie bessere und bessere Ergebnisse.

Tiefenbilder aufnehmen

Mit der Depth API können Sie Bilder mit Tiefendaten abrufen, die jedem Kamerabild entsprechen. Ein erfasstes Tiefenbild hat denselben Zeitstempel und dasselbe Sichtfeld wie die Kamera. Gültige Tiefendaten sind erst verfügbar, nachdem der Nutzer begonnen hat, das Gerät zu bewegen, da die Tiefe durch Bewegung erfasst wird. Oberflächen mit wenigen oder keinen Elementen, z. B. weiße Wände, weisen eine ungenaue Tiefenwirkung auf.

Nächste Schritte

  • Im ARCore Depth Lab werden verschiedene Möglichkeiten für den Zugriff auf Tiefendaten vorgestellt.