SlideShare uma empresa Scribd logo
1 de 2
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しようUnity Technologies Japan K.K.
 
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説Unity Technologies Japan K.K.
 
TDPT + VMCプロトコル on WebRTC
TDPT + VMCプロトコル on WebRTCTDPT + VMCプロトコル on WebRTC
TDPT + VMCプロトコル on WebRTChironroinakae
 
「宴」実装時に得られたUnityプログラムノウハウ
「宴」実装時に得られたUnityプログラムノウハウ「宴」実装時に得られたUnityプログラムノウハウ
「宴」実装時に得られたUnityプログラムノウハウRyohei Tokimura
 
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方Daisaku Mochizuki
 
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMERエピック・ゲームズ・ジャパン Epic Games Japan
 
C++からWebRTC (DataChannel)を利用する
C++からWebRTC (DataChannel)を利用するC++からWebRTC (DataChannel)を利用する
C++からWebRTC (DataChannel)を利用する祐司 伊藤
 
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜Mikito Yoshiya
 
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法Yoshifumi Kawai
 
HoloLensで音声認識をする方法を色々試してみた
HoloLensで音声認識をする方法を色々試してみたHoloLensで音声認識をする方法を色々試してみた
HoloLensで音声認識をする方法を色々試してみたTakahiro Miyaura
 
Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編OESF Education
 
サウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解した
サウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解したサウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解した
サウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解したTakaaki Ichijo
 
Photon Fusionのはじめの一歩
Photon Fusionのはじめの一歩Photon Fusionのはじめの一歩
Photon Fusionのはじめの一歩聡 大久保
 
C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26Yoshihisa Ozaki
 

Mais procurados (20)

最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
 
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
 
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
 
猫でも分かるUE4を使ったARコンテンツ作り方 初級編 ver 1.0.0
猫でも分かるUE4を使ったARコンテンツ作り方 初級編 ver 1.0.0猫でも分かるUE4を使ったARコンテンツ作り方 初級編 ver 1.0.0
猫でも分かるUE4を使ったARコンテンツ作り方 初級編 ver 1.0.0
 
TDPT + VMCプロトコル on WebRTC
TDPT + VMCプロトコル on WebRTCTDPT + VMCプロトコル on WebRTC
TDPT + VMCプロトコル on WebRTC
 
「宴」実装時に得られたUnityプログラムノウハウ
「宴」実装時に得られたUnityプログラムノウハウ「宴」実装時に得られたUnityプログラムノウハウ
「宴」実装時に得られたUnityプログラムノウハウ
 
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方
 
UE4のモバイル向け機能や最新情報などを改めて紹介!2019
UE4のモバイル向け機能や最新情報などを改めて紹介!2019UE4のモバイル向け機能や最新情報などを改めて紹介!2019
UE4のモバイル向け機能や最新情報などを改めて紹介!2019
 
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
 
C++からWebRTC (DataChannel)を利用する
C++からWebRTC (DataChannel)を利用するC++からWebRTC (DataChannel)を利用する
C++からWebRTC (DataChannel)を利用する
 
Photonのサービス選択の勘どころ
Photonのサービス選択の勘どころPhotonのサービス選択の勘どころ
Photonのサービス選択の勘どころ
 
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
 
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
 
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法
 
HoloLensで音声認識をする方法を色々試してみた
HoloLensで音声認識をする方法を色々試してみたHoloLensで音声認識をする方法を色々試してみた
HoloLensで音声認識をする方法を色々試してみた
 
Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編
 
サウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解した
サウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解したサウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解した
サウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解した
 
Photon Fusionのはじめの一歩
Photon Fusionのはじめの一歩Photon Fusionのはじめの一歩
Photon Fusionのはじめの一歩
 
C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26
 

Semelhante a 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 - Building distributed systems on the shoulders of gia...
apidays LIVE Australia - Building distributed systems on the shoulders of gia...apidays LIVE Australia - Building distributed systems on the shoulders of gia...
apidays LIVE Australia - Building distributed systems on the shoulders of gia...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
 

Semelhante a 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 - Building distributed systems on the shoulders of gia...
apidays LIVE Australia - Building distributed systems on the shoulders of gia...apidays LIVE Australia - Building distributed systems on the shoulders of gia...
apidays LIVE Australia - Building distributed systems on the shoulders of gia...
 
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
 

Mais 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.
 

Mais 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
 
OpenCL 3.0 Reference Guide
OpenCL 3.0 Reference GuideOpenCL 3.0 Reference Guide
OpenCL 3.0 Reference Guide
 
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
 

Último

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Último (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

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