
Game Development with OpenXR Christoph Haag [email protected] 01/02/2020 1 Game Development with OpenXR ● OpenXR from a user/game developer vie ● !etting "tarted ith OpenXR – #ist of $%amples – C simple e%ample – !odot $ngine &lugin ● 'O(Os 2 OpenXR from a user/game developer view ● *R +nputs – Headset, Controller position/rotation -.pose/0 – 1uttons, touch, force, touchpad, thumbstic2, 3 ● *R Output – "tereoscopic, tailored to hard are parameters – #enses -distortion0 – $xtremel4 sensitive to latency/stutter ● *endor *R runtime – Hard are drivers -5"1 data → pose, button events) – &resentation of 7rames -distorted, as4nc) – &rovide 8&+ -vendor specific or OpenXR0 – 'hin2: libinput/X.org/;ayland ) OpenXR Runtimes/Hardware today ● ;indo s – Oculus -beta0 => Rift, Rift ", ?uest – ;indo s @R A()( onl4B => ;indo s @R ● #inu% – @onado => ● OpenH@(, 7#O"", often reverse engineered C incomplete drivers ● Dative drivers in development -psmove, psvr, hydra, O"*R H(E0 ● libsurvive < OpenXR from a user/game developer view ● (erived from *ulkan spec – +nherits some 8&+ concepts – "imilar loader/header la4out -provided b4 Ehronos: OpenXRG"(E0 ● libopenxrHloader.so ● openxr.h, open%rHplatform.h – $xtensions -EHR/$X', )( 8&+ support, unusual display configurations, input ...0 – 8&+ #a4ers -validation, ...0 ● Do compile time references to specific runtime, only loader ● 8t runtime, loader finds C dispatches to any OpenXR compliant runtime F Code Examples ● https://github.com/KhronosGroup/OpenXR-"(EG"ource/tree/master/src/tests/hello_xr – CJJ, abstracted, cross platform, OpenG#/*ul2an/()( ● https://github.com/$picGames/5nreal$ngine/tree/release/$ngine/&lugins/Runtime/OpenXR – CJJ, integrated/abstracted, indo s onl4 ● https://github.com/@icrosoft/OpenXRG"(EG*isual"tudio – CJJ, indo s onl4, ()( ● https://github.com/Kherico/OpenXRG"amples/ – CJJ, abstracted, indo s onl4, OpenG# ● https://gitlab.freedesktop.org/xrdesktop/gxr – C, glib, linux onl4, *ulkan ith OpenGL memor4 object ● https://gitlab.freedesktop.org/monado/demos/xrgears – CJJ, mildl4 abstracted, linux onl4, *ul2an ● https://gitlab.freedesktop.org/monado/demos/openxrGsimple-e%ample – C, no abstraction, linux only, OpenGL I Simple example ● gcc app.c Go app Mp2gGcon9g GGlibs GGcNags glx open%rM ● XR_R5D'+@$HO"OD=/path/open%rHmonadoGdev.json ./app ● "4mlin2: /etc/%dg/open%r/1/activeHruntime.json – ./app ● "imple e%ample: code C live demo L Godot Plugin ● live demo C code P !ODOs ● &ac2aging OpenXR #oader/Headers in Distributions – #i2e *ul2an #oader/Headers ● 8ction binding UI for godot – "hared 5+ ith Open*R pluginR – https://github.com/!odot*R/godotHopenvr/issues/L1 Q !ODOs ● !raphics Binding – glXGetCurrentConte%t-0S – glXGetCurrent(ra able-0 ● ;indo s Port – Some Tde9nes – Graphics binding – 'esting 10 Game Development with OpenXR "ny #uestions$ 7ossXR Conference 2020 https://fossxr.dev/ https://twitter.com/7ossXR/ 11.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages11 Page
-
File Size-