Plattformspezifische Leitfäden
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreale Engine
<ph type="x-smartling-placeholder">
Als Entwickler von AR-Apps möchten Sie für Ihre Nutzer die virtuelle mit der realen Welt verschmelzen. 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 entwickeln, mit der Nutzende Möbel kaufen können, möchten Sie ihnen die Gewissheit geben, dass der Sessel, den sie kaufen möchten, in ihren Raum passt.
Die Depth API hilft der Kamera eines Geräts, die Größe und Form der realen Objekte in einer Szene zu erkennen. Mit diesem Tool können Sie Tiefenbilder oder Tiefenkarten erstellen und so Ihre Apps realistischer gestalten. Mithilfe der Informationen eines Tiefenbilds können Sie immersive und realistische Nutzererfahrungen ermöglichen.
Anwendungsfälle für die Entwicklung mit der Depth API
Die Depth API ermöglicht die Verdeckung von Objekten, verbesserte Immersion und neuartige 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. Sehen Sie sich die Beispielszenen im ARCore Depth Lab an, die verschiedene Möglichkeiten für den Zugriff auf detaillierte Daten zeigen. Diese Unity-App ist auf GitHub als Open Source verfügbar.
Verdeckung aktivieren
Die Verdeckung oder das genaue Rendern eines virtuellen Objekts hinter realen Objekten ist für ein immersives AR-Erlebnis von größter Bedeutung. Stellen Sie sich einen virtuellen Andy vor, den ein Nutzer in einer Szene mit einem Kofferraum neben einer Tür platzieren möchte. Wird der Andy ohne Verdeckung dargestellt, wird er sich unrealistisch mit dem Rand des Stammes überlappen. Wenn Sie die Tiefe einer Szene nutzen und verstehen, wie weit der virtuelle Andy im Verhältnis zu einer Umgebung wie dem Holzstamm ist, können Sie den Andy mit Verdeckung genau rendern, sodass er in seiner Umgebung viel realistischer wirkt.
Szene verändern
Zeigen Sie Ihren Nutzern eine neue, immersive Welt, indem Sie virtuelle Schneeflocken rendern, die sich auf den Armen und Kissen auf dem Sofa niederlassen, oder das Wohnzimmer in einen nebligen Nebel werfen. Sie können „Tiefe“ verwenden, um eine Szene zu erstellen, in der virtuelle Lichter interagieren, sich dahinter verstecken und reale Objekte erneut beleuchtet werden.
<ph type="x-smartling-placeholder">
Entfernung und Schärfentiefe
Müssen Sie zeigen, dass etwas in der Ferne ist? Mit der Depth API können Sie die Entfernungsmessung verwenden und Tiefenschärfeeffekte hinzufügen, z. B. den Hintergrund oder den Vordergrund einer Szene unkenntlich machen.
<ph type="x-smartling-placeholder">
Nutzerinteraktionen mit AR-Objekten ermöglichen
Ermögliche es deinen Nutzern, die Welt über deine App zu berühren, indem du virtuelle Inhalte ermöglichst, durch Kollision und Physik mit der realen Welt zu interagieren. Du kannst virtuelle Objekte über Hindernisse in der realen Welt bewegen oder virtuelle Paintballs treffen und auf einen echten Baum spritzen. Durch die Kombination aus tiefenbasierter Kollision und Spielphysik wird ein Erlebnis zum Leben erweckt.
<ph type="x-smartling-placeholder">
Treffertests verbessern
Die Tiefe kann verwendet werden, um Treffertestergebnisse zu verbessern. Treffertests für Ebenen funktionieren nur auf planaren Oberflächen mit Textur, während Tiefen-Treffertests detaillierter sind und selbst in nicht planaren Bereichen mit wenig Textur funktionieren. Das liegt daran, dass Tiefen-Treffertests Tiefeninformationen aus der Szene verwenden, um die korrekte Tiefe und Ausrichtung eines Punkts zu bestimmen.
Im folgenden Beispiel stehen die grünen Andys für Treffertests auf der Standardebene und die roten Andys für Tiefendaten.
<ph type="x-smartling-placeholder">
Eingeschränkte Gerätekompatibilität
Die Depth API wird nur auf Geräten mit ausreichender Prozessorleistung unterstützt. Sie muss manuell in ARCore aktiviert werden, Tiefe aktivieren:
Einige Geräte haben möglicherweise auch einen Hardware-Tiefensensor, z. B. eine Flugzeit. ToF-Sensor. Weitere Informationen finden Sie auf der Seite Mit ARCore unterstützte Geräte. aktuelle Liste der Geräte, die die Depth API unterstützen, sowie eine Liste der Geräte, über einen unterstützten Hardware-Tiefensensor, z. B. einen ToF-Sensor, verfügen.
Tiefenaufnahmen
Die Depth API verwendet einen Tiefen-aus-Bewegungs-Algorithmus, um Tiefenbilder zu erstellen, die eine 3D-Ansicht der Welt ermöglichen. Jedes Pixel in einem Tiefenbild wird einer Messung zugeordnet, mit der gemessen wird, wie weit die Szene von der Kamera entfernt ist. Dieser Algorithmus nimmt mehrere Gerätebilder aus verschiedenen Blickwinkeln auf und vergleicht sie, um die Entfernung zu jedem Pixel zu schätzen, wenn ein Nutzer sein Smartphone bewegt. Dabei kommt selektiv maschinelles Lernen zum Einsatz, um die Tiefenverarbeitung zu erhöhen – selbst bei minimaler Bewegung des Nutzers. Außerdem wird jede zusätzliche Hardware genutzt, die das Gerät eines Nutzers möglicherweise hat. Wenn das Gerät über einen speziellen Tiefensensor (z. B. ToF) verfügt, führt der Algorithmus automatisch Daten aus allen verfügbaren Quellen zusammen. Dadurch wird das vorhandene Tiefenbild verstärkt und es entsteht Tiefe, auch wenn die Kamera sich nicht bewegt. Außerdem sorgt sie für mehr Tiefe auf Oberflächen mit wenigen oder gar keinen Elementen, z. B. auf weißen Wänden oder in dynamischen Szenen mit sich bewegenden Personen oder Objekten.
Die folgenden Bilder zeigen ein Kamerabild eines Flurs mit einem Fahrrad an der Wand und eine Visualisierung der Tiefenaufnahme, die aus den Kamerabildern erstellt wird. Rote Bereiche näher an der Kamera, Bereiche in Blau weiter entfernt.
Tiefe aus Bewegung
Tiefendaten werden verfügbar, wenn der Nutzer sein Gerät bewegt. Der Algorithmus kann robuste, präzise Tiefenschätzungen in einer Entfernung von 0 bis 65 Metern erhalten. Die genauesten Ergebnisse erhalten Sie, wenn das Gerät einen halben bis etwa fünf Meter von der realen Umgebung entfernt ist. Erlebnisse, die Nutzer dazu ermuntern, ihr Gerät mehr zu bewegen, erzielen immer bessere Ergebnisse.
Tiefenaufnahmen aufnehmen
Mit der Depth API können Sie Tiefenbilder abrufen, die zu jedem Kameraframe passen. Ein aufgenommenes Tiefenbild hat denselben Zeitstempel und dasselbe Sichtfeld wie die Kamera. Gültige Tiefendaten sind erst verfügbar, nachdem der Nutzer begonnen hat, sein Gerät zu bewegen, da die Tiefe durch Bewegung erfasst wird. Oberflächen mit wenigen oder gar keinen Elementen, z. B. weiße Wände, werden mit einer ungenauen Tiefe in Verbindung gebracht.
Weiteres Vorgehen
- Im ARCore Depth Lab werden verschiedene Möglichkeiten für den Zugriff auf detaillierte Daten vorgestellt.