Android XR unterstützt Apps, die mit OpenXR erstellt wurden, durch die Unterstützung der OpenXR 1.1-Spezifikation und ausgewählter Anbietererweiterungen. OpenXR ist ein offener Standard, mit dem Sie immersive und interaktive Erlebnisse mit einer Reihe von APIs auf einer Vielzahl von XR-Geräten erstellen können.
Features
Android XR unterstützt Funktionen, mit denen Sie Apps entwickeln können, die die einzigartigen Funktionen von XR-Geräten mithilfe von OpenXR voll ausschöpfen. Zu diesen Funktionen gehören:
- Framework für räumliche Entitäten
- Eine einheitliche Grundlage für das Verständnis von Szenen und räumliches Denken. Ermöglicht Anwendungen, physische räumliche Entitäten in der Umgebung (einschließlich Ebenen, 3D-Meshes, Begrenzungsrahmen, Bildern, Markierungen und Annotationen) zu erkennen, abzufragen und zu verfolgen, die Erkennung mithilfe räumlicher Grenzen zu filtern, Entitätsarchetypen abzufragen, räumliche Anker zu erstellen, die an Entitäten angehängt sind, Raycasting für räumliche Entitäten und Meshes durchzuführen und räumliche Entitäten über Anwendungssitzungen hinweg beizubehalten.
- Räumliche Container
- Eine plattformübergreifende API für räumliche Fenster (
XR_EXT_spatial_containerundXR_EXT_spatial_container_self_rendering), mit der Anwendungen darstellbare räumliche 3D-Container (sowohl begrenzt als auch immersiv) mithilfe von OpenXR-Swapchains und Kompositionsebenen erstellen und rendern können. So können Nutzer mehrere räumliche Container gleichzeitig verwenden. - Geospatial und Geospatial-Anker
- Ermöglicht Anwendungen, die Position relativ zur Erde mithilfe des Visual Positioning Service (VPS) und GPS von Google zu verfolgen, sich bei Google Cloud-Diensten zu authentifizieren und Georäumliche Anker und Oberflächenanker an bestimmten Breiten-, Längen- und Höhengraden zu platzieren.
- Trackables
- Unterstützt die Ebenenerkennung, also die Fähigkeit, flache Oberflächen in der Umgebung zu identifizieren und zu verfolgen, sodass virtuelle Objekte in Bezug auf die reale Welt platziert werden können, und Anker, also virtuelle Referenzpunkte, die an realen Objekten oder Orten angebracht werden können, sodass virtuelle Inhalte auch dann genau positioniert und ausgerichtet bleiben, wenn sich der Nutzer bewegt.
- Raycasting
- Eine Technik, mit der der Schnittpunkt zwischen einem virtuellen Strahl und Objekten oder Weltnetzen in der Szene bestimmt wird, um Interaktionen wie das Auswählen und Bearbeiten virtueller Elemente zu ermöglichen.
- Ankerpersistenz
- Die Möglichkeit, Anker über mehrere Sitzungen hinweg zu speichern und wiederherzustellen, sodass virtuelle Inhalte dauerhaft und konsistent in der Umgebung platziert werden können.
- Objekt-Tracking
- Die Möglichkeit, Maus, Tastatur und andere physische Objekte in der realen Welt zu verfolgen.
- Bild- und Markierungs-Tracking
- Die Fähigkeit, planare Referenzbilder und physische Markierungen (wie AprilTags und ArUco-Markierungen) in der Umgebung zu erkennen und zu verfolgen.
- QR-Code-Tracking
- Die Möglichkeit, QR-Codes in der physischen Umgebung zu verfolgen und ihre Daten zu decodieren.
- Tiefentexturen
- Die Erstellung von Tiefenkarten, die Informationen über die Entfernung zwischen der Kamera und Objekten in der Szene liefern, was realistischere Verdeckungs- und Interaktionseffekte ermöglicht.
- Passthrough
- Die Möglichkeit, reale Kameraaufnahmen mit virtuellen Inhalten zu kombinieren, um eine Mixed-Reality-Umgebung zu schaffen, in der die physische und die digitale Welt nahtlos ineinander übergehen.
- Globales Passthrough-Dimmen
- Ermöglicht es Anwendungen, die globale Passthrough-Dimmstufe festzulegen und abzufragen, um virtuelle Inhalte mit der physischen Umgebung zu verschmelzen, und Ereignisse zu empfangen, wenn sich die Dimmstufe ändert.
- Weiche Kanten im Darstellungsbereich
- Macht den von der Laufzeit angewendeten weichen Randbereich verfügbar, damit Anwendungen UI-Elemente im sicheren Bereich platzieren können, ohne dass sie von der weichen Kante am Rand beeinträchtigt werden.
- Szenen-Meshing
- Die Möglichkeit, ein 3D-Mesh der Umgebung zu erfassen, das für Physik, Verdeckung und andere weltbezogene Interaktionen verwendet werden kann.
- Passthrough für Kompositionsebene
- Ermöglicht einen Polygon-Passthrough-Kompositionsebenenausschnitt, mit dem reale Objekte in eine Szene eingefügt werden können.
- Gesichtstracking
- Die Möglichkeit, die Gesichtszüge des Nutzers anhand von visuellen und Audio-Datenquellen zu verfolgen, um realistischere und ausdrucksstärkere Avatare und virtuelle Charaktere zu erstellen.
- Eye-Tracking
- Liefert die Position und Ausrichtung des Auges des Nutzers, um die Augenhaltung für Avatare realistischer zu gestalten.
- Handtracking
- Die Möglichkeit, die Position und Bewegung der Hände des Nutzers zu verfolgen.
- Hand-Mesh
- Stellt die Hände des Nutzers als Low-Poly-Mesh genau dar. Optimiert für die Bereitstellung von Plattform zu Anwendung, um die bestmögliche Leistung zu erzielen. Dies ist eine Alternative zu anderen Erweiterungen, die eine Bindepose und Mischgewichtungen verwenden.
- Körper-Tracking
- Schätzt die Positionen und Proportionen der Körpergelenke des Nutzers anhand von Kopf- und Handtracking-Eingaben.
- Lichteinschätzung
- Wird für Beleuchtungsmodelle (einschließlich gerichteter, Umgebungs-, sphärischer harmonischer und Cubemap-Beleuchtung) verwendet, um die realen Lichtverhältnisse des Nutzers zu berücksichtigen.
Unterstützte Eingabegeräte
Android XR unterstützt auch die folgenden Eingabegeräte.
- Interaktion mit den Händen
- Die Erkennung bestimmter Handgesten wie Zusammenziehen, Wischen und Zeigen, sodass Nutzer über Gesten und Handbewegungen mit virtuellen Objekten interagieren können.
- Blickinteraktion
- Die Fähigkeit, die Augenbewegungen des Nutzers zu verfolgen, sodass er virtuelle Objekte mit seinem Blick auswählen und mit ihnen interagieren kann.
- 6DoF-Bewegungscontroller
- Die Möglichkeit, die Position und Bewegung der Controller sowie die Steuerkreuz- und Tastenbelegungen zum Auslösen von Aktionen oder Hover-Ereignissen in der App zu verfolgen.
- Mausinteraktion
- Die Möglichkeit für Nutzer, mit Objekten über einen Mauszeiger im 3D-Raum zu interagieren
Unterstützte Leistungsfunktionen
Android XR unterstützt die folgenden leistungsbezogenen Funktionen.
- Eye-Tracking-Foveation
- Ermöglicht einer App, Inhalte mit höherer Auflösung nur am Fokuspunkt der Augen zu rendern.
- Space Warp
- Verwendet Geschwindigkeitsvektoren und Tiefentexturinformationen, um Zwischenframes zu generieren, was die Framerate effektiv erhöht, die erforderlich ist, damit Nutzer in Ihre Erlebnisse eintauchen können
- Frame-Synthese
- Verwendet von der Anwendung bereitgestellte Bewegungsvektoren und Frame-Daten, um Zwischenframes zu synthetisieren und so die visuelle Glätte und die Frameraten zu verbessern.
- Leistungsmesswerte
- Stellt Android XR-Leistungsmesswerte zur Laufzeit des aktuellen XR-Geräts, des Compositors und der XR-App bereit. Dazu gehören CPU-Frametime, GPU-Frametime, GPU-Auslastung, CPU-Frequenz, Bilder pro Sekunde und mehr.
Eine vollständige Liste der unterstützten Funktionen und Erweiterungen finden Sie in der OpenXR-Funktionsübersicht.
Unterstützte Engines
Die folgenden Engines werden für die OpenXR-Entwicklung mit Android XR unterstützt.
Unity
Dank der Unity-Unterstützung von Android XR, die auf OpenXR basiert, können Entwickler mit Unity 6 Inhalte erstellen. Weitere Informationen zum Erstellen von XR-Apps mit Unity finden Sie in der Unity-Übersicht.
Unreal Engine
Unreal Engine unterstützt Android XR über den OpenXR-Standard, sodass Sie die Standardtools und ‑workflows in Unreal Engine 5 verwenden können. Weitere Informationen zum Erstellen von XR-Apps mit Unreal Engine finden Sie in der Unreal Engine-Übersicht.
Godot
Godot unterstützt Android XR über die OpenXR-Integration. So können Sie XR-Apps für Android mit dem Standard-Godot-Workflow erstellen und exportieren. Weitere Informationen zum Erstellen von XR-Apps mit Godot finden Sie in der Godot-Übersicht.
OpenXR™ und das OpenXR-Logo sind Marken von The Khronos Group Inc. und in China, der Europäischen Union, Japan und dem Vereinigten Königreich als Marken eingetragen.