SlideShare une entreprise Scribd logo
1  sur  2
Télécharger pour lire hors ligne
Input and Haptics
OpenXR API Overview
Instances
GetInstanceProcAddr
EnumerateInstanceExtensionProperties
CreateInstance
DestroyInstance
GetInstanceProperties
Sessions
CreateSession
BeginSession
EndSession
DestroySession
OpenXRTM
is a cross-platform API that enables a continuum of real-and-virtual
combined environments generated by computers through human-machine
interaction and is inclusive of the technologies associated with virtual reality,
augmented reality, and mixed reality.
More information and specifications at khronos.org/openxr
API Layers
Various layers can be
enabled to enhance
functionality such as a
validation layer, or tracing
layer.
Input and Haptics
Applications define actions,
the runtime binds actions
to input devices. Action
sets are application-defined
collections of actions.
Instances
Application’s
representation of the
OpenXR runtime.
The CreateInstance
function calls the loader to
determine which installed
OpenXR runtime to
connect to.
View Configurations
Configuration for rendering,
such as MONO or STEREO.
The application queries
the runtime for supported
configurations, then selects
the configuration to use.
Systems
A collection of related devices
in the runtime working
together to enable XR
experiences.
May include VR/AR displays,
input form factors, and
trackable objects.
Swapchains
The OpenXR runtime allows
applications to create multiple
swapchains, into which 2D or
3D images are organized to
present to the user.
Render Loop
A session is created and the
application’s XR rendering
loop begins.
Sessions
An active interaction
between the application
and the runtime.
An application indicates
it wants to render by
beginning a session.
Spaces
Frame of reference, how
to track real and virtual
objects and their relative
motion.
OpenXR defines 3
reference spaces, VIEW,
LOCAL, and STAGE.
Events
Events are messages sent
from the runtime into a
queue from which the
application will read one
at a time.
Helper Functions
Functions to help with
conversions of strings.
Events
PollEvent
Systems
GetSystem
GetSystemProperties
EnumerateEnvironmentBlendModes
API Layers
EnumerateApiLayerProperties
View Configurations
EnumerateViewConfigurations
GetViewConfigurationProperties
EnumerateViewConfigurationViews
LocateViews
Helper Functions
ResultToString StructureTypeToString StringToPath PathToString
Create action and action spaces
xrCreateAction
name = “teleport”
type = XR_INPUT_ACTION_TYPE_BOOLEAN
name = “teleport_ray”
type = XR_INPUT_ACTION_TYPE_POSE
xrCreateActionSpace
action = “teleport_ray”
Render Loop
WaitFrame
BeginFrame
EndFrame
Input and Haptics
CreateAction
DestroyAction
CreateActionSet
DestroyActionSet
GetActionState*
SyncActionData
GetBoundSourceForAction
GetInputSourceLocalizedName
SetInteractionProfileSuggestedBindings
GetCurrentInteractionProfile
ApplyHapticFeedback
StopHapticFeedback
Swapchains
EnumerateSwapchainFormats
CreateSwapchain
DestroySwapchain
EnumerateSwapchainImages
AcquireSwapchainImage
WaitSwapchainImage
ReleaseSwapchainImage
Spaces
EnumerateReferenceSpaces
CreateReferenceSpace
CreateActionSpace
LocateSpace
GetReferenceSpaceBoundsRect
DestroySpace
OpenXR separates the application actions
such as Move, Jump, and Teleport from
the input device: Trigger, Thumbstick, and
Button. This simplifies support for different
or future input devices and maximizes user
accessibility.
Interaction profiles identify a collection of buttons
and other input sources in a physical arrangement
to allow applications and runtimes to coordinate
action to input mapping. Interaction profiles
for well known XR systems are included in the
specification.
Set up interaction profile bindings
xrSetInteractionProfileSuggestedBindings
/interaction_profiles/oculus/touch_controller
	 Action “teleport”
		 -> /user/hand/right/input/a/click
	 Action “teleport_ray”
		 -> /user/hand/right/input/pointer/pose
/interaction_profiles/htc/vive_controller
	 Action “teleport”
		 -> /user/hand/right/input/trackpad/click
	 Action “teleport_ray”
		 -> /user/hand/right/input/pointer/pose Get action states
xrGetActionStateBoolean (“teleport_ray”)
if (state.currentState) // button is pressed
{
xrLocateSpace (teleport_ray_space,
	 stage_reference_space);
}
Learn more about OpenXR
OpenXR is maintained by the Khronos® Group, a worldwide consortium of
organizations that creates and maintains key standards used across many
industries. Visit Khronos online for resources to help you master OpenXR:
OpenXR Resource Page: khronos.org/openxr
Forums: forums.khronos.org
Slack: https://khr.io/slack
Videos & Presentations: khr.io/library
Khronos Events: khronos.org/events
Khronos Blog: khronos.org/blog
Reference Guides: khr.io/refguides
Khronos Books: khronos.org/developers/books
Khronos Merchandise: khronos.org/store
© 2019 The Khronos® Group Inc.
OpenXR Application Lifecycle
A high level overview of a typical OpenXR application including the order of function calls, creation of objects, session state changes, and the rendering loop.
Refer to the OpenXR specification at khronos.org/openxr for details.
www.khronos.org/openxr
Session States
and
Frame Loop
Applica�on
Started
Decide API and
Extensions usages
Instance
Created
Instance
Destroyed
Applica�on
Completed
Session
System
Unavailable
System
Available
Session
Created
Session
Destroyed
xrDestroyInstance
xrCreateInstance
xrGetInstanceProperties
xrEnumerateApiLayerProperties
xrEnumerateExtensionProperties
xrCreateSession
xrDestroySession
xrDestroySpace
xrDestroyAction
xrDestroyActionSet
xrDestroySwapchain
xrGetSystem
XR_ERROR
_FORM_FACTOR_UNAVAILABLE
xrPollEvent
xrGetSystemProperties
xrEnumerateViewConfigurations
xrGetViewConfigurationProperties
xrEnumerateViewConfigurationViews
xrEnumerateEnvironmentBlendModes
XR_SESSION_STATE
RUNNING or VISIBLE or FOCUSED
Execute Graphics Work
xrReleaseSwapchainImage
xrAcquireSwapchainImage
xrWaitSwapchainImage
xrLocateSpace
xrLocateViews
xrSyncActionData
xrGetActionState*
xrApplyHapticFeedback
xrStopHapticFeedback
xrGetCurrentInteractionProfile
XR_SESSION_STATE
READY
XR_SESSION_STATE
STOPPING
XR_SESSION_STATE
EXITING
XR_SESSION_STATE
LOSS_PENDING
not focused
XR_SESSION_STATE
IDLE
xrWaitFrame
xrBeginFrame
not visible
xrEnumerateReferenceSpaces
xrCreateReferenceSpace
xrCreateActionSpace
xrGetReferenceSpaceBoundsRect
xrEnumerateSwapchainFormats
xrCreateSwapchain
xrEnumerateSwapchainImages
xrCreateActionSet
xrCreateAction
xrSetInteractionProfileSuggestedBindings
xrEndFrame
xrBeginSession
xrEndSession
Handle Ac�ons

Contenu connexe

Tendances

BKK16-315 Graphics Stack Update
BKK16-315 Graphics Stack UpdateBKK16-315 Graphics Stack Update
BKK16-315 Graphics Stack UpdateLinaro
 
Multimedia on android
Multimedia on androidMultimedia on android
Multimedia on androidRamesh Prasad
 
Migrating from OpenGL to Vulkan
Migrating from OpenGL to VulkanMigrating from OpenGL to Vulkan
Migrating from OpenGL to VulkanMark Kilgard
 
The Android graphics path, in depth
The Android graphics path, in depthThe Android graphics path, in depth
The Android graphics path, in depthChris Simmonds
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterRobertLe30
 
Android resource
Android resourceAndroid resource
Android resourceKrazy Koder
 
Scene Graphs & Component Based Game Engines
Scene Graphs & Component Based Game EnginesScene Graphs & Component Based Game Engines
Scene Graphs & Component Based Game EnginesBryan Duggan
 
What and Why Flutter? What is a Widget in Flutter?
What and Why Flutter? What is a Widget in Flutter?What and Why Flutter? What is a Widget in Flutter?
What and Why Flutter? What is a Widget in Flutter?MohammadHussain595488
 
Android internals By Rajesh Khetan
Android internals By Rajesh KhetanAndroid internals By Rajesh Khetan
Android internals By Rajesh KhetanRajesh Khetan
 
Building beautiful apps using google flutter
Building beautiful apps using google flutterBuilding beautiful apps using google flutter
Building beautiful apps using google flutterAhmed Abu Eldahab
 
Android Components & Manifest
Android Components & ManifestAndroid Components & Manifest
Android Components & Manifestma-polimi
 
Introduction to Android and Android Studio
Introduction to Android and Android StudioIntroduction to Android and Android Studio
Introduction to Android and Android StudioSuyash Srijan
 

Tendances (20)

Design and Concepts of Android Graphics
Design and Concepts of Android GraphicsDesign and Concepts of Android Graphics
Design and Concepts of Android Graphics
 
BKK16-315 Graphics Stack Update
BKK16-315 Graphics Stack UpdateBKK16-315 Graphics Stack Update
BKK16-315 Graphics Stack Update
 
Linux device drivers
Linux device drivers Linux device drivers
Linux device drivers
 
Multimedia on android
Multimedia on androidMultimedia on android
Multimedia on android
 
OpenCL 3.0 Reference Guide
OpenCL 3.0 Reference GuideOpenCL 3.0 Reference Guide
OpenCL 3.0 Reference Guide
 
Migrating from OpenGL to Vulkan
Migrating from OpenGL to VulkanMigrating from OpenGL to Vulkan
Migrating from OpenGL to Vulkan
 
The Android graphics path, in depth
The Android graphics path, in depthThe Android graphics path, in depth
The Android graphics path, in depth
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutter
 
Android resource
Android resourceAndroid resource
Android resource
 
Scene Graphs & Component Based Game Engines
Scene Graphs & Component Based Game EnginesScene Graphs & Component Based Game Engines
Scene Graphs & Component Based Game Engines
 
Explore Android Internals
Explore Android InternalsExplore Android Internals
Explore Android Internals
 
OpenGL SC 2.0 Quick Reference
OpenGL SC 2.0 Quick ReferenceOpenGL SC 2.0 Quick Reference
OpenGL SC 2.0 Quick Reference
 
What and Why Flutter? What is a Widget in Flutter?
What and Why Flutter? What is a Widget in Flutter?What and Why Flutter? What is a Widget in Flutter?
What and Why Flutter? What is a Widget in Flutter?
 
Android internals By Rajesh Khetan
Android internals By Rajesh KhetanAndroid internals By Rajesh Khetan
Android internals By Rajesh Khetan
 
AndroidManifest
AndroidManifestAndroidManifest
AndroidManifest
 
Android framework design and development
Android framework design and developmentAndroid framework design and development
Android framework design and development
 
Android Layout.pptx
Android Layout.pptxAndroid Layout.pptx
Android Layout.pptx
 
Building beautiful apps using google flutter
Building beautiful apps using google flutterBuilding beautiful apps using google flutter
Building beautiful apps using google flutter
 
Android Components & Manifest
Android Components & ManifestAndroid Components & Manifest
Android Components & Manifest
 
Introduction to Android and Android Studio
Introduction to Android and Android StudioIntroduction to Android and Android Studio
Introduction to Android and Android Studio
 

Similaire à OpenXR 0.90 Overview Guide

Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScriptYakov Fain
 
Developing a Real-time Engine with Akka, Cassandra, and Spray
Developing a Real-time Engine with Akka, Cassandra, and SprayDeveloping a Real-time Engine with Akka, Cassandra, and Spray
Developing a Real-time Engine with Akka, Cassandra, and SprayJacob Park
 
apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...
apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...
apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...apidays
 
Ajax tutorial
Ajax tutorialAjax tutorial
Ajax tutorialKat Roque
 
Gatekeeper Exposed
Gatekeeper ExposedGatekeeper Exposed
Gatekeeper ExposedSynack
 
Escape from Mars
Escape from MarsEscape from Mars
Escape from MarsJorge Ortiz
 
Azure Durable Functions (2019-03-30)
Azure Durable Functions (2019-03-30) Azure Durable Functions (2019-03-30)
Azure Durable Functions (2019-03-30) Paco de la Cruz
 
Functional, Type-safe, Testable Microservices with ZIO and gRPC
Functional, Type-safe, Testable Microservices with ZIO and gRPCFunctional, Type-safe, Testable Microservices with ZIO and gRPC
Functional, Type-safe, Testable Microservices with ZIO and gRPCNadav Samet
 
Ft10 de smet
Ft10 de smetFt10 de smet
Ft10 de smetnkaluva
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Codemotion
 
Making Swift even safer
Making Swift even saferMaking Swift even safer
Making Swift even saferDenis Fileev
 
Foomo / Zugspitze Presentation
Foomo / Zugspitze PresentationFoomo / Zugspitze Presentation
Foomo / Zugspitze Presentationweareinteractive
 
Pascarello_Investigating JavaScript and Ajax Security
Pascarello_Investigating JavaScript and Ajax SecurityPascarello_Investigating JavaScript and Ajax Security
Pascarello_Investigating JavaScript and Ajax Securityamiable_indian
 
Building Massively Scalable application with Akka 2.0
Building Massively Scalable application with Akka 2.0Building Massively Scalable application with Akka 2.0
Building Massively Scalable application with Akka 2.0Knoldus Inc.
 
Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)Paco de la Cruz
 
Xamarin Workshop Noob to Master – Week 5
Xamarin Workshop Noob to Master – Week 5Xamarin Workshop Noob to Master – Week 5
Xamarin Workshop Noob to Master – Week 5Charlin Agramonte
 
droidQuery: The Android port of jQuery
droidQuery: The Android port of jQuerydroidQuery: The Android port of jQuery
droidQuery: The Android port of jQueryPhDBrown
 

Similaire à OpenXR 0.90 Overview Guide (20)

Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScript
 
Developing a Real-time Engine with Akka, Cassandra, and Spray
Developing a Real-time Engine with Akka, Cassandra, and SprayDeveloping a Real-time Engine with Akka, Cassandra, and Spray
Developing a Real-time Engine with Akka, Cassandra, and Spray
 
Java rmi
Java rmiJava rmi
Java rmi
 
Android workshop
Android workshopAndroid workshop
Android workshop
 
apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...
apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...
apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...
 
Ajax tutorial
Ajax tutorialAjax tutorial
Ajax tutorial
 
Gatekeeper Exposed
Gatekeeper ExposedGatekeeper Exposed
Gatekeeper Exposed
 
Escape from Mars
Escape from MarsEscape from Mars
Escape from Mars
 
Azure Durable Functions (2019-03-30)
Azure Durable Functions (2019-03-30) Azure Durable Functions (2019-03-30)
Azure Durable Functions (2019-03-30)
 
Unit v
Unit vUnit v
Unit v
 
Functional, Type-safe, Testable Microservices with ZIO and gRPC
Functional, Type-safe, Testable Microservices with ZIO and gRPCFunctional, Type-safe, Testable Microservices with ZIO and gRPC
Functional, Type-safe, Testable Microservices with ZIO and gRPC
 
Ft10 de smet
Ft10 de smetFt10 de smet
Ft10 de smet
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...
 
Making Swift even safer
Making Swift even saferMaking Swift even safer
Making Swift even safer
 
Foomo / Zugspitze Presentation
Foomo / Zugspitze PresentationFoomo / Zugspitze Presentation
Foomo / Zugspitze Presentation
 
Pascarello_Investigating JavaScript and Ajax Security
Pascarello_Investigating JavaScript and Ajax SecurityPascarello_Investigating JavaScript and Ajax Security
Pascarello_Investigating JavaScript and Ajax Security
 
Building Massively Scalable application with Akka 2.0
Building Massively Scalable application with Akka 2.0Building Massively Scalable application with Akka 2.0
Building Massively Scalable application with Akka 2.0
 
Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)
 
Xamarin Workshop Noob to Master – Week 5
Xamarin Workshop Noob to Master – Week 5Xamarin Workshop Noob to Master – Week 5
Xamarin Workshop Noob to Master – Week 5
 
droidQuery: The Android port of jQuery
droidQuery: The Android port of jQuerydroidQuery: The Android port of jQuery
droidQuery: The Android port of jQuery
 

Plus de The Khronos Group Inc.

Vulkan Ray Tracing Update JP Translation
Vulkan Ray Tracing Update JP TranslationVulkan Ray Tracing Update JP Translation
Vulkan Ray Tracing Update JP TranslationThe Khronos Group Inc.
 
Vulkan Update Japan Virtual Open House Feb 2021
Vulkan Update Japan Virtual Open House Feb 2021Vulkan Update Japan Virtual Open House Feb 2021
Vulkan Update Japan Virtual Open House Feb 2021The Khronos Group Inc.
 
Vulkan Ray Tracing Update Japan Virtual Open House Feb 2021
Vulkan Ray Tracing Update Japan Virtual Open House Feb 2021Vulkan Ray Tracing Update Japan Virtual Open House Feb 2021
Vulkan Ray Tracing Update Japan Virtual Open House Feb 2021The Khronos Group Inc.
 
OpenCL Overview Japan Virtual Open House Feb 2021
OpenCL Overview Japan Virtual Open House Feb 2021OpenCL Overview Japan Virtual Open House Feb 2021
OpenCL Overview Japan Virtual Open House Feb 2021The Khronos Group Inc.
 
Vulkan ML Japan Virtual Open House Feb 2021
Vulkan ML Japan Virtual Open House Feb 2021Vulkan ML Japan Virtual Open House Feb 2021
Vulkan ML Japan Virtual Open House Feb 2021The Khronos Group Inc.
 
glTF Overview Japan Virtual Open House Feb 2021
glTF Overview Japan Virtual Open House Feb 2021glTF Overview Japan Virtual Open House Feb 2021
glTF Overview Japan Virtual Open House Feb 2021The Khronos Group Inc.
 
Khronos Overview Japan Virtual Open House Feb 2021
Khronos Overview Japan Virtual Open House Feb 2021Khronos Overview Japan Virtual Open House Feb 2021
Khronos Overview Japan Virtual Open House Feb 2021The Khronos Group Inc.
 

Plus de The Khronos Group Inc. (20)

Vulkan Ray Tracing Update JP Translation
Vulkan Ray Tracing Update JP TranslationVulkan Ray Tracing Update JP Translation
Vulkan Ray Tracing Update JP Translation
 
Vulkan ML JP Translation
Vulkan ML JP TranslationVulkan ML JP Translation
Vulkan ML JP Translation
 
OpenCL Overview JP Translation
OpenCL Overview JP TranslationOpenCL Overview JP Translation
OpenCL Overview JP Translation
 
glTF overview JP Translation
glTF overview JP TranslationglTF overview JP Translation
glTF overview JP Translation
 
Khronos Overview JP Translation
Khronos Overview JP TranslationKhronos Overview JP Translation
Khronos Overview JP Translation
 
Vulkan Update Japan Virtual Open House Feb 2021
Vulkan Update Japan Virtual Open House Feb 2021Vulkan Update Japan Virtual Open House Feb 2021
Vulkan Update Japan Virtual Open House Feb 2021
 
Vulkan Ray Tracing Update Japan Virtual Open House Feb 2021
Vulkan Ray Tracing Update Japan Virtual Open House Feb 2021Vulkan Ray Tracing Update Japan Virtual Open House Feb 2021
Vulkan Ray Tracing Update Japan Virtual Open House Feb 2021
 
OpenCL Overview Japan Virtual Open House Feb 2021
OpenCL Overview Japan Virtual Open House Feb 2021OpenCL Overview Japan Virtual Open House Feb 2021
OpenCL Overview Japan Virtual Open House Feb 2021
 
Vulkan ML Japan Virtual Open House Feb 2021
Vulkan ML Japan Virtual Open House Feb 2021Vulkan ML Japan Virtual Open House Feb 2021
Vulkan ML Japan Virtual Open House Feb 2021
 
glTF Overview Japan Virtual Open House Feb 2021
glTF Overview Japan Virtual Open House Feb 2021glTF Overview Japan Virtual Open House Feb 2021
glTF Overview Japan Virtual Open House Feb 2021
 
Khronos Overview Japan Virtual Open House Feb 2021
Khronos Overview Japan Virtual Open House Feb 2021Khronos Overview Japan Virtual Open House Feb 2021
Khronos Overview Japan Virtual Open House Feb 2021
 
SYCL 2020 Specification
SYCL 2020 SpecificationSYCL 2020 Specification
SYCL 2020 Specification
 
OpenVX 1.3 Reference Guide
OpenVX 1.3 Reference GuideOpenVX 1.3 Reference Guide
OpenVX 1.3 Reference Guide
 
SYCL 1.2.1 Reference Card
SYCL 1.2.1 Reference CardSYCL 1.2.1 Reference Card
SYCL 1.2.1 Reference Card
 
OpenCL 2.2 Reference Guide
OpenCL 2.2 Reference GuideOpenCL 2.2 Reference Guide
OpenCL 2.2 Reference Guide
 
OpenGL 4.6 Reference Guide
OpenGL 4.6 Reference GuideOpenGL 4.6 Reference Guide
OpenGL 4.6 Reference Guide
 
glTF 2.0 Reference Guide
glTF 2.0 Reference GuideglTF 2.0 Reference Guide
glTF 2.0 Reference Guide
 
OpenVX 1.2 Reference Guide
OpenVX 1.2 Reference GuideOpenVX 1.2 Reference Guide
OpenVX 1.2 Reference Guide
 
WebGL 2.0 Reference Guide
WebGL 2.0 Reference GuideWebGL 2.0 Reference Guide
WebGL 2.0 Reference Guide
 
OpenVX 1.1 Reference Guide
OpenVX 1.1 Reference GuideOpenVX 1.1 Reference Guide
OpenVX 1.1 Reference Guide
 

Dernier

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 

Dernier (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

OpenXR 0.90 Overview Guide

  • 1. Input and Haptics OpenXR API Overview Instances GetInstanceProcAddr EnumerateInstanceExtensionProperties CreateInstance DestroyInstance GetInstanceProperties Sessions CreateSession BeginSession EndSession DestroySession OpenXRTM is a cross-platform API that enables a continuum of real-and-virtual combined environments generated by computers through human-machine interaction and is inclusive of the technologies associated with virtual reality, augmented reality, and mixed reality. More information and specifications at khronos.org/openxr API Layers Various layers can be enabled to enhance functionality such as a validation layer, or tracing layer. Input and Haptics Applications define actions, the runtime binds actions to input devices. Action sets are application-defined collections of actions. Instances Application’s representation of the OpenXR runtime. The CreateInstance function calls the loader to determine which installed OpenXR runtime to connect to. View Configurations Configuration for rendering, such as MONO or STEREO. The application queries the runtime for supported configurations, then selects the configuration to use. Systems A collection of related devices in the runtime working together to enable XR experiences. May include VR/AR displays, input form factors, and trackable objects. Swapchains The OpenXR runtime allows applications to create multiple swapchains, into which 2D or 3D images are organized to present to the user. Render Loop A session is created and the application’s XR rendering loop begins. Sessions An active interaction between the application and the runtime. An application indicates it wants to render by beginning a session. Spaces Frame of reference, how to track real and virtual objects and their relative motion. OpenXR defines 3 reference spaces, VIEW, LOCAL, and STAGE. Events Events are messages sent from the runtime into a queue from which the application will read one at a time. Helper Functions Functions to help with conversions of strings. Events PollEvent Systems GetSystem GetSystemProperties EnumerateEnvironmentBlendModes API Layers EnumerateApiLayerProperties View Configurations EnumerateViewConfigurations GetViewConfigurationProperties EnumerateViewConfigurationViews LocateViews Helper Functions ResultToString StructureTypeToString StringToPath PathToString Create action and action spaces xrCreateAction name = “teleport” type = XR_INPUT_ACTION_TYPE_BOOLEAN name = “teleport_ray” type = XR_INPUT_ACTION_TYPE_POSE xrCreateActionSpace action = “teleport_ray” Render Loop WaitFrame BeginFrame EndFrame Input and Haptics CreateAction DestroyAction CreateActionSet DestroyActionSet GetActionState* SyncActionData GetBoundSourceForAction GetInputSourceLocalizedName SetInteractionProfileSuggestedBindings GetCurrentInteractionProfile ApplyHapticFeedback StopHapticFeedback Swapchains EnumerateSwapchainFormats CreateSwapchain DestroySwapchain EnumerateSwapchainImages AcquireSwapchainImage WaitSwapchainImage ReleaseSwapchainImage Spaces EnumerateReferenceSpaces CreateReferenceSpace CreateActionSpace LocateSpace GetReferenceSpaceBoundsRect DestroySpace OpenXR separates the application actions such as Move, Jump, and Teleport from the input device: Trigger, Thumbstick, and Button. This simplifies support for different or future input devices and maximizes user accessibility. Interaction profiles identify a collection of buttons and other input sources in a physical arrangement to allow applications and runtimes to coordinate action to input mapping. Interaction profiles for well known XR systems are included in the specification. Set up interaction profile bindings xrSetInteractionProfileSuggestedBindings /interaction_profiles/oculus/touch_controller Action “teleport” -> /user/hand/right/input/a/click Action “teleport_ray” -> /user/hand/right/input/pointer/pose /interaction_profiles/htc/vive_controller Action “teleport” -> /user/hand/right/input/trackpad/click Action “teleport_ray” -> /user/hand/right/input/pointer/pose Get action states xrGetActionStateBoolean (“teleport_ray”) if (state.currentState) // button is pressed { xrLocateSpace (teleport_ray_space, stage_reference_space); }
  • 2. Learn more about OpenXR OpenXR is maintained by the Khronos® Group, a worldwide consortium of organizations that creates and maintains key standards used across many industries. Visit Khronos online for resources to help you master OpenXR: OpenXR Resource Page: khronos.org/openxr Forums: forums.khronos.org Slack: https://khr.io/slack Videos & Presentations: khr.io/library Khronos Events: khronos.org/events Khronos Blog: khronos.org/blog Reference Guides: khr.io/refguides Khronos Books: khronos.org/developers/books Khronos Merchandise: khronos.org/store © 2019 The Khronos® Group Inc. OpenXR Application Lifecycle A high level overview of a typical OpenXR application including the order of function calls, creation of objects, session state changes, and the rendering loop. Refer to the OpenXR specification at khronos.org/openxr for details. www.khronos.org/openxr Session States and Frame Loop Applica�on Started Decide API and Extensions usages Instance Created Instance Destroyed Applica�on Completed Session System Unavailable System Available Session Created Session Destroyed xrDestroyInstance xrCreateInstance xrGetInstanceProperties xrEnumerateApiLayerProperties xrEnumerateExtensionProperties xrCreateSession xrDestroySession xrDestroySpace xrDestroyAction xrDestroyActionSet xrDestroySwapchain xrGetSystem XR_ERROR _FORM_FACTOR_UNAVAILABLE xrPollEvent xrGetSystemProperties xrEnumerateViewConfigurations xrGetViewConfigurationProperties xrEnumerateViewConfigurationViews xrEnumerateEnvironmentBlendModes XR_SESSION_STATE RUNNING or VISIBLE or FOCUSED Execute Graphics Work xrReleaseSwapchainImage xrAcquireSwapchainImage xrWaitSwapchainImage xrLocateSpace xrLocateViews xrSyncActionData xrGetActionState* xrApplyHapticFeedback xrStopHapticFeedback xrGetCurrentInteractionProfile XR_SESSION_STATE READY XR_SESSION_STATE STOPPING XR_SESSION_STATE EXITING XR_SESSION_STATE LOSS_PENDING not focused XR_SESSION_STATE IDLE xrWaitFrame xrBeginFrame not visible xrEnumerateReferenceSpaces xrCreateReferenceSpace xrCreateActionSpace xrGetReferenceSpaceBoundsRect xrEnumerateSwapchainFormats xrCreateSwapchain xrEnumerateSwapchainImages xrCreateActionSet xrCreateAction xrSetInteractionProfileSuggestedBindings xrEndFrame xrBeginSession xrEndSession Handle Ac�ons