Schnellstart: Ausführliche exemplarische Vorgehensweise zum MRTK

In dieser Anleitung erhalten Sie einen ausführlichen Überblick über die Azure Object Anchors MRTK Unity-Beispielanwendung. Sie soll Ihnen einen Einblick in den Entwurf des Beispiels bieten. Durch das Lesen dieses Leitfadens können Entwickler ihr Verständnis für die wichtigsten Azure Object Anchors in dem Beispiel beschleunigen.

Projekt-Layout

Ressourcen, die für das MRTK Azure Object Anchors Unity-Beispiel erstellt wurden, werden in Assets\MixedReality.AzureObjectAnchors gespeichert. Folgende Unterordner sind verfügbar:

  • Symbole
    • Dieser Unterordner enthält einige benutzerdefinierte Symbole, die im gegenüberliegenden Benutzermenü verwendet werden.
  • Materialien
    • Enthält Shader und Materialien für die Visualisierung der Oberflächenrekonstruktion und einen Shader Nur für die Tiefe der in den Tiefenpuffer schreibt, um die Hologramm-Stabilität in der Textumgebung zu unterstützen.
  • Prefabs
    • Enthält eine wiederverwendbare Unity GameObjects. Insbesondere stellt TrackableObjectPrefab das Objekt dar, das erstellt wird, wenn Azure Object Anchors ein Objekt erkennt.
  • Profiles
    • Enthält benutzerdefinierte MRTK-Profile, die die minimal erforderliche Funktionalität von MRTK beschreiben, um die Anwendung zu aktivieren.
  • Szenen
    • Enthält die AOASampleTestScene, die die primäre Szene im Beispiel ist.
  • Skripts
    • Enthält die Skripts, die für das Beispiel geschrieben wurden.

Unity-Szene

Mixed Reality Play Space – hauptsächlich MRTK-Bausteine

  • Einführung in das MRTK für Unity.
  • An die Kamera ist eine Benutzeroberfläche angefügt, die den detaillierten Gesamtstatus des Azure Object Anchors observiert (siehe OverlayDebugText.cs).

Objekt Mixed Reality Play Space – größtenteils in Zusammenhang mit Azure Object Anchors, aber auch mit einigen MRTK-Steuerelementen. Zwei Skripts, TrackableObjectSearch und ObjectTracker, die an das übergeordnete Element angefügt sind, stellen die primäre Schnittstelle mit Azure Object Anchors dar.

  • Menü
    • In erster Linie MRTK-Code, aber die Interaktionen der Benutzeroberfläche sind auf die Azure Object Anchors-Funktionalität ausgerichtet.
    • Das angefügte TrackableObjectMenu-Skript übernimmt die primäre Aufgabe, die MRTK-Benutzeroberflächenereignisse an die entsprechenden Azure Object Anchors weiterzuleiten.
    • MRTK-Handmenü.
  • WorkspaceBoundingBox
    • Enthält MRTK-Skripts, die dem Steuern eines Begrenzungsfelds zugeordnet sind.
    • Es ist auch ein untergeordnetes Objekt ModelVis enthalten, das zum Visualisieren des Azure Object Anchors-Modells verwendet wird, bevor eine Erkennung aufgetreten ist, um die Ausrichtung bei komplizierten Erkennungen zu unterstützen.

Bevor wir uns mit den Skripts befassen, lassen Sie uns zunächst die Menüelemente durchgehen. Auf diese Weise können wir darauf verweisen, wie diese Menüelemente mit den Skripts interagieren.

MRTK-Menüs

Die unteren und rechten Untermenüs werden nicht automatisch angezeigt, sondern mit Search Area Settings bzw. Tracker Settings umschaltet.

  • Suche starten
    • Es beginnt die Suche nach Objekten im angegebenen Suchbereich.
  • Umschalten der räumlichen Zuordnung
    • Zyklen zwischen der Anzeige der räumlichen Zuordnung während der Suche, zeigt immer die räumlichen Zuordnung und niemals räumlichen Zuordnung.
  • Tracker Einstellungen/Suchbereich-Einstellungen
    • Umschalten in die entsprechenden Untermenüs.
  • Ablaufverfolgung starten/Ablaufverfolgung beenden
    • Beginnt oder beendet die Diagnoseablaufverfolgung.
  • Hochladen Ablaufverfolgung
    • Lädt die Diagnoseablaufverfolgung zur Debuganalyse an Microsoft hoch.

Nachverfolgungseinstellungen

  • Hohe Genauigkeit
    • Wenn diese Option aktiviert ist, wird ObjectInstanceTrackingMode auf HighLatencyAccuratePosition festgelegt.
    • Wenn diese Option deaktiviert ist, wird ObjectInstanceTrackingMode auf LowLatencyCoarsePosition festgelegt.
  • Gelockerte Vertikale Ausrichtung
    • Wenn diese Option aktiviert ist, wird AllowedVerticalOrientationInDegrees auf 10 Grad festgelegt. Dieses Funktion ermöglicht die Erkennung von Objekten, die sich auf Rampen befinden.
    • Wenn diese Option deaktiviert ist, wird AllowedVerticalOrientationInDegrees auf 0 Grad festgelegt.
  • Zulassen von Skalierungsänderung
    • Wenn diese Option aktiviert ist, wird MaxScaleChange auf 0,1 festgelegt. Dieses Funktion ermöglicht Azure Object Anchors, die Skalierung des Objekts basierend auf den Anpassungen der HoloLens-Nachverfolgung anzupassen.
    • Wenn diese Option deaktiviert ist, wird MaxScaleChange auf 0 festgelegt.
  • Schieberegler "Abdeckungsverhältnis"
    • Passt das Verhältnis der Abdeckung an, das für die Objekterkennung erforderlich ist, um eine Übereinstimmung zu berücksichtigen. Niedrigere Werte erhöhen die Erkennungshäufigkeit. Diese Funktion kann für schwer zu erkennende Objekte wünschenswert sein, kann aber auch zu einer erhöhten Erkennung falsch-positiver Objekte führen.

Suchbereichseinstellungen

  • Sperrsuchbereich
    • Wenn diese Option aktiviert ist, wird verhindert, dass der Benutzer den Suchbereich ändert.
  • Suchbereich automatisch anpassen
    • Wenn diese Option aktiviert ist, können Skripts den Suchbereich verschieben, um den Erkennungsprozess zu verfeinern.
  • Zyklusnetz
    • Durchläuft die Gitternetze für .ou Objekte, die erkannt werden können, und auch ohne Gitternetz.

Skripts

  • AutonomousSearchArea.cs
    • Dieses Skript ist an WorkspaceBoundingBox angefügt. Das Skript versucht, zu skalieren und WorkspaceBoundingBox automatisch zu platzieren. Es wird aktiviert, wenn Auto-Adjust Search Area aktiviert ist.
  • ObjectAnchorsSubscription.cs
    • Dieses Skript umschließt die Informationen, die zum Hochladen von Diagnosedaten erforderlich sind.
  • ObjectTracker.cs
    • Dieses Skript ist eine Brücke zwischen Unity und den Erkennungsaspekten des Azure Object Anchors SDK.
  • ObjectTrackerDiagnostics.cs
    • Dieses Skript verwaltet das Diagnosefeature des Azure Object Anchors SDK.
  • OverlayDebugText.cs
    • Dieses Skript ist an die Hauptkamera angefügt. Es ist dafür verantwortlich, den Gesamtzustand des Beispiels anzuzeigen und dem Benutzer die Azure Object Anchors anzuzeigen.
  • PositionDebugInfo.cs
    • Dieses Skript erzwingt lediglich, dass dem Benutzer der an ein erkanntes Objekt angefügte Debugtext angezeigt wird.
  • SearchAreaController.cs
    • Dieses Skript verwaltet den Zustand des WorkspaceBoundingBox, das verwendet wird, um anzugeben, wo Azure Object Anchors nach Objekten suchen sollen.
  • SearchAreaModelVisualization.cs
    • Dieses Skript aktiviert die Cycle Mesh Funktionalität unter Search Area Settings.
  • SpatialMappingController.cs
    • Dieses Skript verwaltet, wann die räumliche Zuordnung basierend auf der Interaktion mit Toggle Spatial Mapping unter Main Menu aktiviert werden soll.
  • TextToSpeech.cs
    • Dieses Skript verwendet einen Text und setzt ihn in eine Sprache um.
  • TrackableObjectData.cs
    • Dieses Skript stellt die Daten für Objekte dar, die nachverfolgt werden können.
  • TrackableObjectDataLoader.cs
    • Mit diesem Skript werden die .ou Dateien geladen und in TrackableObjectData Elemente umgearbeitet.
  • TrackableObjectMenu.cs
    • Die meisten Benutzerinteraktionen fließen von der Benutzeroberfläche zu diesem Skript und dann zum entsprechenden Skript. Beispielsweise, wenn TrackableObjectMenu über ToggleSpatialMapping verfügt, das an SpatialMappingController geroutet wird.
  • TrackableObjectSearch.cs
    • Dieses Skript führt eine geringe Verwaltung des Suchbereichs durch. Insbesondere die Interaktion, bei der der Benutzer in den Raum tippt und das Suchfeld vor dem Benutzer platziert wird. Außerdem wird das Innere des Suchfelds während der Suche oder während der Erkennung eines Objekts nicht gerendert, um zu verhindern, dass das vollständige Rendering das Objekt einblendet.
  • TrackedObject.cs
    • Ein Primäres Skript auf der TrackableObjectPrefab. Es behält den Visualisierungszustand eines Objekts bei, das von der Azure Object Anchors erkannt wurde.
  • TrackedObjectData.cs
    • Dieses Skript enthält Informationen zu einem Objekt, das von Azure Object Anchors derzeit nachverfolgt wird.

Prefabs

  • TrackableObjectPrefab
    • Das Prefab, das erstellt wird, wenn ein Objekt von AzureObjectAnchors erkannt wird. Ein untergeordnetes Objekt dieses Prefabs, LogicalCenter, stellt die Mitte des Objekts dar und ist ein geeigneter Startort, wenn versucht wird, untergeordneten Inhalt an erkannte Objekte anfügen. Der im Beispiel angezeigte Informationstext wird an diesen logischen Mittelpunkt angefügt.

Nächste Schritte