ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

0 Shares

Einer der Hauptfaktoren, der ein Augmented-Reality-Gerät von einem Standard-Heads-up-Display wie Google Glass unterscheidet, ist die dimensionale Tiefenwahrnehmung. Dies kann entweder von RGB-Kameras, Infrarot-Tiefenkameras oder beiden erstellt werden, je nachdem, welche Genauigkeit Sie anstreben.

Dieses Verständnis der Tiefe ermöglicht es unseren Augmented-Reality-Geräten, die Positionen verwendbarer Oberflächen zu kennen. Das Ergebnis dieses Verständnisses ist, dass wir virtuelle Objekte auf reale Objekte in der realen Welt platzieren können. Oder zumindest wird die funktionale Illusion erzeugt.

Im vorherigen Tutorial zum Erstellen einer mobilen AR-App für Android haben wir unseren AppController erstellt, um die gesamte Verarbeitung und den Ablauf der Anwendung zu verwalten. In dieser Lektion verwenden wir von der Kamera generierte Punktwolkendaten, um Ebenen zu erstellen, mit denen der Benutzer angeben kann, wo sich eine brauchbare Oberfläche befindet.

Wir werden das, was wir in Lektion zwei über Fertighäuser gelernt haben, darauf aufbauen und ein Fertighaus erstellen, das klein anfängt. Wenn mehr von der realen Oberfläche erkannt wird, werden mehr Kopien des Fertighauses instanziiert und angehängt, um die nutzbare virtuelle Oberfläche zu vergrößern. Das klingt vielleicht etwas komplex, aber Google und Unity haben beide gute Arbeit geleistet, um die Implementierung des Systems zu vereinfachen.

Schritt 1: Erstellen Sie eine flache Ebene

Wenn für unsere Zwecke eine reale Oberfläche erkannt wird, benötigen wir eine Möglichkeit, dies im virtuellen Raum darzustellen. In diesem Fall erstellen wir eine flache Ebene, die verwendet werden kann. Und obwohl diese Lösung nicht in jeder Situation funktioniert, da auf vielen Oberflächen möglicherweise Objekte vorhanden sind, funktioniert dies in den meisten Fällen.

Klicken Sie auf das Menü “Erstellen”, wählen Sie “3D-Objekt” und klicken Sie dann auf “Ebene”. Benennen Sie das Objekt VisualTrackedPlane oder etwas, an das Sie sich erinnern werden.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

Als nächstes schauen Sie sich die Verwandeln Komponente des Objekts in der Inspektorund stellen Sie sicher, dass die Position des Objekts ist 0, 0, 0. Überprüfen Sie auch, ob die Skala ist 1, 1, 1. Wenn dieses Objekt einen Versatz aufweist und Ihr Fertighaus instanziiert wurde, wird es immer auch versetzt.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

Schritt 2: Wenden Sie die Textur an

Jetzt müssen wir eine Textur auswählen, damit die virtuelle Oberfläche für den Benutzer sichtbar ist. In dem Mesh Renderer Komponente, klicken Sie auf den Pfeil neben Materialien.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

Klicken Sie nach dem Erweitern auf den kleinen Donut neben dem ersten Material des Objekts, um das anzuzeigen Wählen Sie Material Fenster.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

In dem Wählen Sie Material Wählen Sie im Fenster das Material “PlaneGrid”.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

Schritt 3: Fügen Sie die Plane Renderer-Klasse zum Objekt hinzu

Kommen wir nun zum Kern dieses Lernexperiments. Wir werden die bereitgestellte Klasse “Tracked Plane Visualizer” in unserem Fertighaus verwenden, um die Oberfläche so zu sehen, wie sie erkannt und dann erweitert wird. Klicken Sie auf die Schaltfläche “Komponente hinzufügen”, geben Sie “Verfolgt” in das Suchfeld ein und klicken Sie dann auf “Verfolgter Ebenen-Visualizer”.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

Schritt 4: Verwandeln Sie unser Objekt in ein Fertighaus

Um ein Fertighaus zu erstellen, wählen Sie im Feld “VisualTrackedPlane” aus Hierarchie Fenster, und ziehen Sie es dann in den Ordner “Prefabs” in Ihrem Projekte Fenster.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

Löschen Sie nun die “VisualTrackedPlane” aus dem Hierarchie Aussicht.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

Schritt 5: Aktualisieren Sie den AppController

Nachdem wir unser Fertighaus erstellt haben, müssen wir unsere AppController-Klasse aktualisieren, um mit dem neuen Fertighaus arbeiten zu können. Der Code für die aktualisierte Version kann aus Pastebin kopiert und eingefügt werden. Wenn Sie den Code durchsehen, werden Sie drei Stellen mit “// Lektion 4” bemerken. Diese Abschnitte sind der neue Code, der in diesem Teil des Tutorials hinzugefügt wurde. Wir werden diese Änderungen nun durchgehen, damit sie leicht zu verstehen sind.

Das TrackedPlaneVisualizer Die in Schritt 3 hinzugefügte Klasse ist eine Klasse aus dem HelloAR_-Beispiel, das mit ARCore geliefert wird. Aus diesem Grund müssen wir den dazugehörigen Namespace hinzufügen, damit wir ihn verwenden können.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

Wie Sie im folgenden Beispiel sehen können, müssen wir als Nächstes eine öffentliche GameObject-Deklaration hinzufügen, damit wir eine Verknüpfung zwischen unserem AppController und dem zuvor erstellten Fertighaus herstellen können.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

Schließlich haben wir einen Codeblock, der das schwere Heben übernimmt.

Zuerst sehen wir in Zeile 40, wie die Session-Klasse die aufruft GetTrackables Funktion vom generischen Typ TrackedPlane. Diese Funktion sucht nach einer Liste verfolgbarer Objekte und einem Filter, der auf neu gesetzt ist. Diese Codezeile sucht nach neu erstellten verfolgbaren Ebenen und fügt sie der Liste m_NewPlanes hinzu.

Als nächstes nehmen wir die Gesamtzahl der neuen Flugzeuge, die in der m_NewPlanes.Count Referenz, und wir instanziieren eine Kopie unseres Fertighauses für jede. Endlich bekommen wir die TrackedPlaneVisualizer Komponente und führen Sie die Initialisierungsfunktion für jedes neue Fertighaus aus. Dadurch werden Farbe und Drehung des Fertighauses festgelegt.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

Schritt 6: Führen Sie unseren Test auf unserem mobilen Gerät aus

Wir sind bereit, unsere App zu erstellen und zu testen. Drücken Sie Strg + Umschalt + B. die Build-Einstellungen. Klicken Sie auf die Schaltfläche “Offene Szenen hinzufügen”, um die Szene hinzuzufügen, in der wir uns befinden. Alle anderen Einstellungen sollten vor einigen Lektionen einsatzbereit sein. Klicken Sie auf “Erstellen und ausführen”.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

Wenn der Erstellen Sie Android Fenster erscheint, geben Sie ein NRARCore in das Feld oder einen Namen, den Sie sich für Ihre APK-Datei merken, und klicken Sie auf die Schaltfläche “Speichern”.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

Jetzt wird der Erstellungsprozess durchlaufen. Folgen Sie dem grünen Fortschrittsbalken.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

Wenn es fertig ist, wird die Anwendung automatisch auf Ihrem Telefon ausgeführt. Bei der ersten Ausführung wird möglicherweise um Erlaubnis zur Verwendung der Kamera gebeten. Wählen Sie “Ja”. Andernfalls funktioniert es nicht, da die Kamera verwendet werden muss.

Wenn Sie die Kamera auf den Boden oder andere Oberflächen um Sie herum richten, wird ein zufällig gefärbtes rautenförmiges Gitter angezeigt. Dies ist das ARCore-System, das uns wissen lässt, dass die Oberfläche, auf die wir schauen, verwendbar ist.

Aufregendes Zeug, oder? Und je mehr Sie lernen, desto besser wird es.

ARCore 101: Erstellen einer mobilen AR-Anwendung in Unity, Teil 4 (Aktivieren der Oberflächenerkennung)

In diesem Teil des Tutorials haben wir ein größtenteils transparentes Fertighaus erstellt, das unsere Oberflächen darstellt. Anschließend haben wir unserem AppController Funktionen hinzugefügt, die die Ebenen aktualisieren, sobald neue Ebenen entstehen. Auf diese Weise kann die Oberfläche vergrößert werden, wenn mehr Fläche entdeckt wird, und unseren Benutzern viel Platz geben, um virtuelle Objekte in der Welt um sie herum zu platzieren. Das heißt, sobald wir die Möglichkeit hinzugefügt haben, der Welt digitale Objekte hinzuzufügen. Und das, zusammen mit der Skalierung unserer Objekte, werden wir in der nächsten Lektion behandeln.

Weiter oben: Teil 5 In Kürze erhältlich, bleiben Sie dran!

0 Shares