Mit unterstützten OpenXR-Erweiterungen entwickeln

XR‑Geräte, für die der Leitfaden gilt
Dieser Leitfaden hilft Ihnen dabei, Erlebnisse für die folgenden Arten von XR-Geräten zu entwickeln.
XR-Headsets
XR-Brille mit Kabel

Android XR unterstützt OpenXR über die OpenXR 1.1-Spezifikation und eine lange Liste von Erweiterungen von Drittanbietern. Mit diesen Erweiterungen können Sie XR-Apps auf die gewohnte Weise entwickeln. Für einige dieser Funktionen sind Android-Laufzeitberechtigungen erforderlich. Wenn Sie direkt auf den OpenXR-APIs aufbauen möchten, finden Sie die erforderlichen Header-Dateien im jetpack-xr-natives-Repository.

Android XR-Anbietererweiterungen

Name der Erweiterung

Beschreibung

Spatial API-Version

XR_ANDROID_anchor_sharing_export

Anker, die von einer Anwendung über XR_ANDROID_trackables, XR_EXT_spatial_anchor und XR_ANDROID_spatial_anchor_space erstellt werden, sind an eine bestimmte Sitzung gebunden und daher für andere Anwendungen nicht sichtbar. Mit dieser Erweiterung können Anwendungen Anker mit anderen laufenden Anwendungen teilen.

v1

XR_ANDROID_body_tracking

Verwendet die inverse Kinematik, um die Körperposition anhand der Position von Kopf und Händen zu bestimmen.

Berechtigungen: Body Tracking

v2

XR_ANDROID_composition_layer_passthrough_mesh

Für Geräte, die mehrere Modi zum Einblenden der Umgebung unterstützen.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_depth_texture

Mit dieser Erweiterung kann die Anwendung Tiefenkarten der realen Umgebung um das Headset herum anfordern und unterstützte Tiefenauflösungen bei der Erstellung abfragen.

Berechtigungen: SCENE_UNDERSTANDING_FINE

v1

XR_ANDROID_device_anchor_persistence

Diese Erweiterung ermöglicht es, dass die Anwendung bestehen bleibt.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_enumerate_system_extension_properties

Mit dieser Erweiterung können Anwendungen ermitteln, welche Erweiterungen von der aktuellen Systemkonfiguration unterstützt werden.

v3

XR_ANDROID_eye_tracking

Diese Erweiterung ermöglicht es Anwendungen, die Position und Ausrichtung der Augen des Nutzers sowie den Eye-Tracking-Status abzurufen.

Berechtigungen: EYE_TRACKING_FINE

v1

XR_ANDROID_face_tracking

Mit dieser Erweiterung können Anwendungen Gewichte von Blendshapes abrufen und Gesichtsausdrücke in XR-Erlebnissen rendern.

Berechtigungen: FACE_TRACKING

v1

XR_ANDROID_face_tracking_data_source

Mit dieser Erweiterung können Anwendungen Daten zur Mimik-Erkennung aus mehreren Datenquellen abrufen.

Berechtigungen:FACE_TRACKING, RECORD_AUDIO

v3

XR_ANDROID_hand_mesh

Diese Erweiterung ermöglicht die Verwendung von Handtracking-Eingaben, die als dynamisches Hand-Mesh dargestellt werden.

Berechtigungen: HAND_TRACKING

v1

XR_ANDROID_light_estimation

Mit dieser Erweiterung kann die Anwendung Daten anfordern, die die Beleuchtung der realen Umgebung um das Headset herum darstellen.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_light_estimation_cubemap

Diese Erweiterung basiert auf der einfachen XR_ANDROID_light_estimation-Erweiterung.

Berechtigungen: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_mouse_interaction

Diese Erweiterung bietet eine XrPath zum Abrufen von Mauseingaben und definiert eine häufig verwendete Aktionspose für Mausprofile, die sowohl Maus- als auch Trackpad-Geräte umfasst.

v1

XR_ANDROID_passthrough_camera_state

Es kann einige Zeit dauern, bis die Passthrough-Kamera gestartet wird. Sie ist möglicherweise nicht sofort verfügbar.

v1

XR_ANDROID_performance_metrics

Diese Erweiterung bietet APIs zum Aufzählen und Abfragen verschiedener Leistungszähler des aktuellen XR-Geräts.

v1

XR_ANDROID_raycast

Mit dieser Erweiterung kann die Anwendung Raycasts für Trackables in der Umgebung ausführen.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_recommended_resolution

Mit dieser Erweiterung kann die Laufzeit die Anwendung benachrichtigen, wenn sich die empfohlene Auflösung ändert.

v1

XR_ANDROID_recommended_settings

Die Standardumgebung des Nutzers kann sich in verschiedenen Zuständen befinden, die durch eine Kombination aus einem Mischmodus und einer Eingabemodalität bestimmt werden.

v1

XR_ANDROID_scene_meshing

Diese Erweiterung soll Meshes bereitstellen, die die physischen Objekte in der Umgebung des Nutzers ungefähr darstellen.

v1

XR_ANDROID_spatial_anchor_space

Mit der Funktion xrCreateSpatialAnchorEXT, die in der Erweiterung XR_EXT_spatial_anchor definiert ist, können Anwendungen räumliche Anker mit einem XrSpatialEntityEXT-Handle erstellen, um sie darzustellen.

Im Gegensatz dazu wird mit dieser Erweiterung ein räumlicher Anker erstellt, der stattdessen durch ein XrSpace-Handle dargestellt wird.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_annotation_tracking

Diese Erweiterung bietet die Möglichkeit, Annotationen für die Erweiterung XR_EXT_spatial_entity zu verfolgen. Damit können Anwendungen Overlays auf physische oder virtuelle Objekte legen, die durch Laufzeitreferenzen definiert werden.

Berechtigungen: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_spatial_component_subsumed_by

Diese Erweiterung basiert auf XR_EXT_spatial_entity und bietet eine neue Komponente für XR_SPATIAL_CAPABILITY_PLANE_TRACKING_EXT, um die XrSpatialEntityIdEXT verfügbar zu machen, die die aktuelle Entität umfasst.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_discovery_raycast

Diese Erweiterung basiert auf XR_EXT_spatial_entity und bietet Raycast-Funktionen für vorhandene räumliche Funktionen.

Berechtigungen: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_spatial_entity_bound_anchor

Mit dieser Erweiterung können Anwendungen Anker erstellen und an räumliche Einheiten anhängen.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_object_tracking

Diese Erweiterung basiert auf XR_EXT_spatial_entity und definiert eine räumliche Funktion zum Verfolgen einer Reihe vordefinierter physischer Objekte, ohne dass ein Eingabedatensatz aus der Anwendung erforderlich ist.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_trackables

Diese Erweiterung ermöglicht der Anwendung den Zugriff auf Trackables aus der physischen Umgebung.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_image

Mit dieser Erweiterung können planare Bilder verfolgt werden, die durch Gruppen von Referenzbildern als Eingabe angegeben werden.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_trackables_marker

Diese Erweiterung ermöglicht das Tracking physischer Marker.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_object

Diese Erweiterung ermöglicht das Tracking physischer Objekte.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_qr_code

Mit dieser Erweiterung können physische QR-Codes getrackt und QR-Code-Daten decodiert werden.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_unbounded_reference_space

Mit dieser Erweiterung können Anwendungen einen XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID-Referenzbereich erstellen.

v1

Erweiterungen von Drittanbietern

Name der Erweiterung

Beschreibung

Spatial API-Version

XR_MND_headless

Einige Anwendungen müssen möglicherweise auf XR-Interaktionsgeräte zugreifen, ohne Bildinhalte auf dem Display oder den Displays zu präsentieren.

v1

XR_KHR_binding_modification

Diese Erweiterung fügt eine optionale Struktur hinzu, die in die XrInteractionProfileSuggestedBinding::next-Kette aufgenommen werden kann, die an xrSuggestInteractionProfileBindings übergeben wird, um zusätzliche Informationen zur Änderung des Standardbindungsverhaltens anzugeben.

v1

XR_EXT_debug_utils

Aufgrund der Beschaffenheit der OpenXR-Schnittstelle sind für den Entwickler und die Anwendung nur sehr wenige Fehlerinformationen verfügbar.

v1

XR_EXT_hand_tracking

Mit dieser Erweiterung können Anwendungen die einzelnen Gelenke von Handtracking-Eingaben ermitteln.

Berechtigungen: HAND_TRACKING

v1

XR_EXT_performance_settings

Diese Erweiterung definiert eine API für die Anwendung, um der Laufzeit Leistungshinweise zu geben und damit die Laufzeit leistungsbezogene Benachrichtigungen an die Anwendung zurücksenden kann. So können beide Seiten einen geeigneten Kompromiss zwischen benötigter CPU- und GPU-Leistung, thermischer Nachhaltigkeit und einem durchgehend guten Nutzererlebnis während der gesamten Sitzung finden.

v1

XR_FB_display_refresh_rate

Auf Plattformen, die eine dynamische Anpassung der Aktualisierungsrate des Displays unterstützen.

v1

XR_FB_swapchain_update_state

Mit dieser Erweiterung kann die Anwendung bestimmte veränderliche Zustände ändern und abfragen, die einem Swapchain zugeordnet sind.

v1

XR_FB_foveation

Foveation im Kontext von XR ist eine Rendering-Technik, mit der der Bereich eines Bildes in der Nähe des Brennpunkts oder der Fovea des Auges mit einer höheren Auflösung als Bereiche in der Peripherie dargestellt werden kann.

v1

XR_FB_foveation_configuration

Auf Facebook-HMDs können Entwickler Foveation-Profile erstellen, die von der Laufzeit für die optischen Eigenschaften und die Leistung generiert werden.

v1

XR_FB_foveation_vulkan

Für die Vulkan-Grafik-API muss ein Bild auf die Swapchain angewendet werden, um ein Foveationsmuster anzuwenden.

v1

XR_FB_space_warp

Diese Erweiterung bietet Unterstützung für die Space Warp-Technologie in Anwendungen.

v1

XR_KHR_opengl_es_enable

Diese Erweiterung muss von Laufzeiten bereitgestellt werden, die Anwendungen unterstützen, die OpenGL ES-APIs für das Rendern verwenden.

v1

XR_KHR_android_create_instance

Wenn die Anwendung ein XrInstance-Objekt auf Android-Systemen erstellt.

v1

XR_KHR_android_surface_swapchain

Eine häufige Aktivität in XR ist das Ansehen eines Bildstreams.

v1

XR_KHR_android_thread_settings

Damit XR angenehm ist, müssen Anwendungen Frames schnell und konsistent liefern.

v1

XR_KHR_composition_layer_color_scale_bias

Farbskala und Bias werden auf eine Ebenenfarbe angewendet, nachdem sie in die Darstellung mit vormultipliziertem Alpha konvertiert wurde.

v1

XR_KHR_composition_layer_cube

Diese Erweiterung fügt einen zusätzlichen Ebenentyp hinzu, der das direkte Sampling aus Cubemaps ermöglicht.

v1

XR_KHR_composition_layer_cylinder

Diese Erweiterung fügt einen zusätzlichen Layer-Typ hinzu, bei dem die XR-Laufzeit eine Textur aus einer Swapchain auf die Innenseite eines Zylinderabschnitts abbilden muss. Das lässt sich am besten mit einem gekrümmten Fernsehbildschirm vergleichen.

v1

XR_KHR_composition_layer_depth

Diese Erweiterung definiert einen zusätzlichen Layer-Typ, mit dem Anwendungen Tiefenbilder zusammen mit Farbbildern in Projektionslayern einreichen können.

v1

XR_KHR_composition_layer_equirect

Diese Erweiterung fügt einen zusätzlichen Layer-Typ hinzu, bei dem die XR-Laufzeit ein equirektangulär codiertes Bild aus einer Swapchain auf die Innenseite einer Kugel abbilden muss.

v1

XR_KHR_composition_layer_equirect2

Diese Erweiterung fügt einen zusätzlichen Layer-Typ hinzu, bei dem die XR-Laufzeit ein equirektangulär codiertes Bild aus einer Swapchain auf die Innenseite einer Kugel abbilden muss.

Diese Erweiterung verwendet eine andere Parametrisierung, die eher der Formulierung von XR_KHR_composition_layer_cylinder entspricht, ist aber funktional äquivalent zu XR_KHR_composition_layer_equirect.

v1

XR_KHR_convert_timespec_time

Diese Erweiterung bietet zwei Funktionen zum Konvertieren zwischen der monotonen Zeit von „timespec“ und XrTime.

v1

XR_KHR_vulkan_enable

Diese Erweiterung ermöglicht die Verwendung der Vulkan-Grafik-API in einer OpenXR-Laufzeit.

v1

XR_KHR_vulkan_enable2

Diese Erweiterung ermöglicht die Verwendung der Vulkan-Grafik-API in einer OpenXR-Laufzeit.

v1

XR_KHR_loader_init

Auf einigen Plattformen muss der Loader mit plattformspezifischen Parametern initialisiert werden, bevor er geladen werden kann.

v1

XR_KHR_loader_init_android

Unter Android müssen bei einigen Loader-Implementierungen zusätzliche Informationen bei der Initialisierung angegeben werden.

v1

XR_KHR_swapchain_usage_input_attachment_bit

Mit dieser Erweiterung kann eine Anwendung angeben, dass Swapchain-Bilder so erstellt werden sollen, dass sie als Eingabe-Attachments verwendet werden können. Zum Zeitpunkt der Erstellung dieses Dokuments betrifft dies nur Vulkan-Swapchains.

v1

XR_EXT_dpad_binding

Mit dieser Erweiterung kann die Anwendung ein oder mehrere digitale Aktionen an ein Touchpad oder einen Thumbstick binden, als wäre es ein Steuerkreuz. Dazu werden zusätzliche Komponentenpfade definiert, um Bindungen vorzuschlagen.

v1

XR_EXT_uuid

Diese Erweiterung definiert eine UUID (Universally Unique Identifier) gemäß RFC 4122.

v1

XR_FB_composition_layer_depth_test

Diese Erweiterung ermöglicht die Komposition von Ebenen, die auf Tiefe getestet wurden.

v1

XR_EXT_eye_gaze_interaction

Diese Erweiterung bietet eine XrPath zum Abrufen von Blickrichtungseingaben von einem Eyetracker, um Blickrichtung-Interaktionen zu ermöglichen.

Berechtigungen: EYE_TRACKING_FINE

v1

XR_EXT_hand_interaction

Diese Erweiterung definiert vier häufig verwendete Aktionsposen für alle Profile für die Interaktion mit Nutzerhänden, einschließlich Handtracking-Geräten und Motion-Controller-Geräten.

v1

XR_KHR_visibility_mask

Diese Erweiterung unterstützt die Bereitstellung einer Zeichnungsmaske pro Ansicht für Anwendungen.

v1

XR_META_foveation_eye_tracked

Beim Foveated Rendering mit Blickrichtungserkennung wird eine geringere Pixeldichte in der Peripherie des Blickfelds des Nutzers gerendert.

Berechtigungen: EYE_TRACKING_FINE

v1

XR_FB_hand_tracking_aim

Die XR_EXT_hand_tracking-Erweiterung bietet eine Liste von Handgelenksposen, die die aktuelle Konfiguration der erfassten Hände darstellen. Diese Erweiterung fügt eine Ebene der Gestenerkennung hinzu, die vom System verwendet wird.

Berechtigungen: HAND_TRACKING

v1

XR_EXT_palm_pose

Mit dieser Erweiterung wird ein neuer Standard-Pose-Identifier für Interaktionsprofile mit dem Namen „palm_ext“ definiert.

v1

XR_VARJO_foveated_rendering

Varjo-Headsets bieten extrem hohe Pixeldichten im mittleren Bereich des Displays.

Berechtigungen: EYE_TRACKING_FINE

v1

XR_VARJO_quad_views

Diese Erweiterung fügt einen neuen Ansichtskonfigurationstyp hinzu: XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO bis XrViewConfigurationType, der von xrEnumerateViewConfigurations zurückgegeben werden kann, um anzugeben, dass die Laufzeit vier Viewports unterstützt.

v1

XR_META_vulkan_swapchain_create_info

Mit dieser Erweiterung kann eine Vulkan-basierte Anwendung zusätzliche VkImageCreateFlags oder VkImageUsageFlags durchlaufen, indem sie eine XrVulkanSwapchainCreateInfoMETA-Struktur an die XrSwapchainCreateInfo-Struktur anhängt, wenn xrCreateSwapchain aufgerufen wird.

v1

XR_FB_hand_tracking_mesh

Die XR_EXT_hand_tracking-Erweiterung bietet eine Liste von Handgelenksposen, aber keinen Mechanismus zum Rendern eines Hand-Mesh mit Skin.

Berechtigungen: HAND_TRACKING

v1

XR_FB_composition_layer_image_layout

Für diese Erweiterung wird kein neuer Typ für die Kompositionsebene definiert.

v1

XR_KHR_maintenance1

XR_KHR_maintenance1 fügt eine Reihe kleinerer Funktionen hinzu, die in der ursprünglichen OpenXR 1.0-Version absichtlich ausgelassen oder übersehen wurden.

v1

XR_FB_composition_layer_settings

Mit dieser Erweiterung können Anwendungen die Verwendung von Verarbeitungsoptionen wie Schärfen oder Supersampling auf einer Kompositionsebene anfordern.

v1

XR_KHR_locate_spaces

Diese Erweiterung führt die Funktion xrLocateSpacesKHR ein.

v1

XR_EXT_local_floor

Die OpenXR-Kernspezifikation enthält zwei weltverankerte Referenzraumtypen XrSpace in XrReferenceSpaceType.

v1

XR_EXT_spatial_marker_tracking

Diese Erweiterung basiert auf XR_EXT_spatial_entity und ermöglicht es Anwendungen, Marker in ihrer Umgebung zu erkennen und zu verfolgen.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_persistence

Mit dieser Erweiterung können Anwendungen räumliche Einheiten über Anwendungssitzungen hinweg erkennen und in Beziehung setzen.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_anchor

Diese Erweiterung basiert auf XR_EXT_spatial_entity und ermöglicht es Anwendungen, räumliche Anker zu erstellen.

Berechtigungen: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_plane_tracking

Diese Erweiterung baut auf XR_EXT_spatial_entity auf und definiert die räumliche Funktion für die Ebenenverfolgung für das Framework für räumliche Einheiten.

v1

XR_EXT_spatial_entity

Diese Erweiterung führt die Konzepte und Grundlagen für das Erkennen von Szenen und räumliches Denken in OpenXR ein.

v1

XR_EXT_future

In XR-Systemen gibt es bestimmte Vorgänge, die lange dauern und nicht innerhalb eines normalen Frame-Loops abgeschlossen werden können.

v1

XR_FB_color_space

XR-Geräte verwenden möglicherweise einen Farbraum, der sich von dem vieler Monitore unterscheidet, die in der Entwicklung verwendet werden.

v1

XR_EXT_composition_layer_inverted_alpha

Diese Erweiterung bietet ein Flag, das bei Anwendung auf eine Kompositionsebene die Interpretation des Alphawerts in den Swapchain-Bildern der Ebene umkehrt.

v1

XR_EXT_frame_synthesis

Diese Erweiterung bietet Unterstützung für die Framesynthese in Anwendungen auf Grundlage zusätzlicher von der Anwendung bereitgestellter Daten.

v3

XR_QCOM_trackables_image_operations

Bietet Qualcomm-Bildverfolgungsoperationen für Trackables.

v3

XR_QCOM_trackables_qr_code_operations

Stellt Qualcomm-QR-Code-Tracking-Vorgänge für Trackables bereit.

v3

XR_EXT_user_presence

Mit dieser Erweiterung wird ein neues Ereignis eingeführt, das ausgelöst wird, wenn das System eine Änderung der Nutzeranwesenheit erkennt.

v3

XR_KHR_extended_struct_name_lengths

Diese Erweiterung erhöht die maximale Größe von Struct-Namen und bietet eine neue Funktion für den Zugriff auf diese neuen erweiterten Namen.

v3

XR_EXT_interaction_profile_battery_state_display

XR_EXT_interaction_profile_battery_state_display bietet einen Mechanismus, mit dem Anwendungen den Akku-Status von Geräten abfragen können, die mit Interaktionsprofilen verwendet werden.

v3


OpenXR™ und das OpenXR-Logo sind Marken von The Khronos Group Inc. und sind als Marke in China, der Europäischen Union, Japan und dem Vereinigten Königreich eingetragen.