OpenXR Development
Recently active
Hi, after going through the forums, back and forth between Meta Support, they couldn't help me, so I am going to put all the information together here.Hand Tracking seems to work but it's incredibly shaky when staying still. I managed to reproduce this on a Quest Pro and Quest 2 on Link and Standalone. This seems to be exclusive to OpenXR apps, it doesn't happen in the Home environment nor Apps such as First Hand Experience app or at least it's not as noticeable. I managed to reproduce this in the new Aura sample app that got released on App Lab on Standalone. As well as other two barebones OpenXR apps via Link. Here's two videos showing the issue: (I made sure to be in lit environment, so it's not bad lighting)Video #1: https://youtu.be/wBfFyP7Tl10Video #2: https://youtu.be/08E-BWR4CD0 Version v49 (49.0.0.206.357) on Standalone (Quest Pro)I also tried both the latest PTC version (50.0.0.165.257) and the stable version (49.0.0.170.358) of Oculus
Hi,I have already developed a C++ app using Oculus SDK & OpenGL and would like to add eyetracking and handtracking to it (for Meta Quest Pro using Quest/Air Link).How could I process ?1 - can I add eyetracking and handtracking extension using OpenXR without doing any rendering in it (keeping rendering done with Oculus SDK) ?2- or must I convert the rendering process to do it via OpenXR ?I hope you can help me.
I am using Unity version 2021.3.14, Oculus integration v.51 and OpenXR 1.7.0.I was on the OculusXR Plug-In before and switched to the OpenXR-Plug-In. Before, Passthrough over Link worked, it was rendered in the classes when I activated the Playmode in Editor.Now, it gives me this error and does not render Passthrough when I start Playmode:"Failed to initialize Insight Passthrough. Passthrough will be unavailable. Error Failure_OperationFailed."Also, albeit probably unrelated, I am getting this error when stopping the Playmode since I have switched to the OpenXR-Plug-In:"InputSubsystem not found."Please help, it is very difficult to debug Passthrough-related things if I can only see the Passthrough in builds.
Has anyone ever tried using Meta Quest Pro to recognize AR objects, similar to the scanning function of ARkit on the iPhone?
I'm interested in reaching into the "XR_META_performance_metrics" OpenXR extension and retrieving the motion_to_photon_latency metric, through Unity (not necessarily but I assume that it would be the simplest way?).However, I'm unsure as to how I can do that. I'm able to access all enabled extensions in Unity through OpenXRRuntime.IsExtensionEnabled(extensionName) but I can't seem to figure out the next step of accessing info related to the extension.Any help / direction towards something would be appreciated! Thanks!
can i see my mods
I have a project that uses the deprecated vrapi that I'm attempting to convert over to OpenXR. There seems to be an issue I'm running into while trying to set up Vulkan. My understanding is that `XR_KHR_vulkan_enable2` is the preferred extension to use while `XR_KHR_vulkan_enable` is deprecated. In other words, I should be able to use `XR_KHR_vulkan_enable2` on its own without requiring `XR_KHR_vulkan_enable` functions.The specific issue I'm running into is, when I call `xrCreateSession`, among the log messages I see some warnings:VulkanLoader::LoadDeviceFunctions: Failed to load vkCmdDebugMarkerInsertEXT, likely vkDevice created without xrGetVulkanDeviceExtensionsKHR/vrapi_GetDeviceExtensionsVulkanVulkanLoader::LoadDeviceFunctions: Failed to load vkDebugMarkerSetObjectTagEXT, likely vkDevice created without xrGetVulkanDeviceExtensionsKHR/vrapi_GetDeviceExtensionsVulkanVulkanLoader::LoadDeviceFunctions: Failed to load vkGetMemoryFdKHR, likely vkDevice created without xrGetVulkanDeviceE
I am trying to get the physical width and height of the device to create the swapchains.With the old Native VrApi that is currently deprecated, I could use VRAPI_SYS_PROP_DISPLAY_PIXELS_WIDE and VRAPI_SYS_PROP_DISPLAY_PIXELS_HIGH to retreive the correct physical screen resolution.When tested on the Meta Quest 2, the results were 1,832 and 1920.I am moving my code to use Native OpenXR.Using the OpenXR Runtime when I query for typedef struct XrViewConfigurationView { XrStructureType type; void* XR_MAY_ALIAS next; uint32_t recommendedImageRectWidth; uint32_t maxImageRectWidth; uint32_t recommendedImageRectHeight; uint32_t maxImageRectHeight; uint32_t recommendedSwapchainSampleCount; uint32_t maxSwapchainSampleCount; } XrViewConfigurationView; and for typedef struct XrSystemGraphicsProperties { uint32_t maxSwapchainImageHeight; uint32_t maxSwapchainImageWidth; uint32_t maxLayerCount; } XrSystemGraphicsProperties; The recommended width and
Hi, I'm using Meta Quest Pro to develop an application that supports dynamic foveation.I found that there are some functions that can get the coordinates of foveated center as shown below: XrFoveationEyeTrackedStateMETA foveationState{XR_TYPE_FOVEATION_EYE_TRACKED_STATE_META}; foveationState.next = nullptr; CHECK_XRCMD(xrGetFoveationEyeTrackedStateMETA_(m_session, &foveationState)); and get the values through foveationState.foveationCenter[eye].x and foveationState.foveationCenter[eye].y. However, these functions didn't work as expected as I always get (0, 0) from (foveationState.foveationCenter[eye].x , foveationState.foveationCenter[eye].y). The official document doesn't have the description of this part, does anyone know how to get the foveated information from these functions?
Hi!I had this all working with the legacy OVR system, but I've switched to the OpenXR backend and now it doesn't work any more. Very interested in any help, suggestions, pointers.I'm using OpenXR as the backend, and am only referencing using a built apk on the device, not use of link in any way.TryGetBoundaryPoints doesn't return any points. The only way I've gotten boundary points is with:OVRPlugin.GetBoundaryGeometry2(OVRPlugin.BoundaryType.PlayArea, IntPtr.Zero, ref pointsCountThat's great, it works fine, but if the boundary changes and I call it again I get the same points as before. I've tried everything I can think of including shutting down OpenXR and then starting it up again. No dice.The only "solution" that is working for me now is on any event where the boundary may have changed like resuming focus, I save game and reload the scene. That way I get the new boundary points. While it works, it isn't ideal.Help!Damon
Hi everyone, I just wanted to share an observation, as I've been working on Rift + Quest since 2016. I LOVE the way the reset view button works on Quest standalone apps. It's a dedicated button that, when you hold it for 3 seconds, after a twirly thing pops up and goes away, your local tracking space is reset to 0,0,0 and default orientation is now the direction your HMD is facing in real life. Perfect. Couldn't be any better. But, when doing the same exact think over Link / AirLink, it brings up a popup menu which a) takes you out of the action and ruins immersion for nothing, and b) is completely superfluous as all you want to do is click Reset View. Quest proved people are used to doing it the easy / fast way, so why not apply some consistency in how the Oculus button works over Link? SteamVR does it the same way and it's SO frustrating, because otherwise we could use it for any game, and depend on it. Instead, we're forced to jump through hoops to press one button just to click a m
Hi- is there a way to get eye tracking data such as eye position, rotation, pupil size, etc. from a Quest Pro using Unity? I'm unsure how to get this specific data.
Hello, I am working through this hello_xr Sample App (https://developer.oculus.com/documentation/native/android/mobile-build-run-hello-xr-app/) but running into build errors.About my enviornment:Windows 11I am getting stuck at the step where I need to build. When I try building the project, I get a bunch of errors like:Build command failed. Error while executing process C:\Users\jackd\AppData\Local\Android\Sdk\cmake\3.10.2.4988404\bin\ninja.exe with arguments {-C C:\Git\OpenXR\OpenXR-SDK-Source\src\tests\hello_xr\.cxx\Debug\4q165j76\armeabi-v7a XrApiLayer_api_dump XrApiLayer_core_validation hello_xr} ninja: Entering directory `C:\Git\OpenXR\OpenXR-SDK-Source\src\tests\hello_xr\.cxx\Debug\4q165j76\armeabi-v7a' [1/36] Generating C:/Git/OpenXR/OpenXR-SDK-Source/src/tests/hello_xr/.cxx/Debug/4q165j76/armeabi-v7a/include/openxr/openxr_platform.h FAILED: include/openxr/openxr_platform.h cmd.exe /C "cd /D C:\Git\OpenXR\OpenXR-SDK-Source\src\tests\hello_xr\.cxx\Debug\4q165j76\armea
When I reset view/origin for roomscale for Oculus (PC), it seems that the whole play area is relocated, ie. instead of being wherever I was relative to my boundary, OpenXR gives pose just like I would be in the centre of the play area. And there is no way to learn where play area should be.As my game relies heavily on actual location within the boundary, resetting view/origin breaks a lot. One could argue that the player should not reset view. Or that's it not consistent with other APIs.If I do the same thing with Oculus SDK or VRAPI, I get still results against the play area. Well, that's not entirely true, as the origin might be offset, ie. not at 0,0,0 but there's enough information to know where I am relative to the actual boundary. With OpenXR, there's no play area anchoring and resetting moves us around.I use resetting view for the menu to show stuff in front of the player, works especially well on Quest where resetting happens without any popups.Some details: I have two referenc
It looks like a recent update to the Oculus Browser may have broken getting input for the A and B buttons with WebXR/THREE.js. Has anyone seen a similar issue or can confirm? I tested on Both a Quest 2 and a Quest Pro and both reproduce the issue.Here's some example code which used to work:https://github.com/fbriggs/lifecast_public/blob/main/web/lifecast_res/LifecastVideoPlayer8.js#L571The most important parts of the code are:renderer = new THREE.WebGLRenderer({antialias: false,powerPreference: "high-performance",depth: true});...vr_controller0 = renderer.xr.getController(0);vr_controller1 = renderer.xr.getController(1);...vr_controller.button_A = vr_controller.gamepad.buttons[4].value > 0;vr_controller.button_B = vr_controller.gamepad.buttons[5].value > 0;
There's a brilliant little single-file VrApi demo over at https://github.com/makepad/hello_quest which I forked and adapted for the OpenXR runtime, perhaps this is useful to somebody: https://github.com/iamtommo/hello_quest_openxr
The grip button no longers work for my OpenXR based app with the v46 update.
Hello all,I've been trying to enable OpenXR hand tracking feature with Quest 2. However, I keep getting:XR_EXT_hand_tracking is not available from the OpenXR runtime or any upsteam API layer. in the logs and the hand tracking ext is nowhere among the extensions and layers.Tried to fix the issue on OpenXR forum, but the issue doesn't seem to be on their side as WMR runtime successfully loads the extension. Logs:[OXRTK] 2022-08-21 16:36:49 -0400: OpenXR Toolkit - GA-1 (v1.1.4) [OXRTK] 2022-08-21 16:36:49 -0400: dllHome is "C:\Program Files\OpenXR-Toolkit" [OXRTK] 2022-08-21 16:36:49 -0400: OpenXR-Toolkit layer is active [OXRTK] 2022-08-21 16:36:49 -0400: Runtime supports extension: XR_KHR_D3D11_enable [OXRTK] 2022-08-21 16:36:49 -0400: Runtime supports extension: XR_KHR_D3D12_enable [OXRTK] 2022-08-21 16:36:49 -0400: Runtime supports extension: XR_KHR_opengl_enable [OXRTK] 2022-08-21 16:36:49 -0400: Runtime supports extension: XR_KHR_vulkan_enable [OXRTK] 2022-08-21 16:36:49 -0
With deprecated Oculus API, it was possible to submit multisample textures. Now, with OpenXR, xrEnumerateViewConfigurationViews() tells that maxSwapchainSampleCount is 1. It means it's impossible to create multisample swapchain images (XrSwapchainCreateInfo.sampleCount must be 1). Is that correct? So, the only option is to render to other multisample framebuffer, then do `blit` to swapchain image?
when running the hello_xr example, if I even so much as add a java file (specifically an empty activity) I can no longer run the example. I'm fairly early into investigating the issue here, but I figured I would check and see if anyone had success mixing standard android development with the OpenXR sdk. We have some existing java code we would like to reuse and have had absolutely no success whatsoever adding openxr to an existing project, or vice-versa. Any guidance would be appreciated.
So I initially followed the guide for hand tracking and set up the hand with the OVRHandPrefab under each hand anchors. I then followed the interaction guide which added the interaction hands into the scene. I set the left and right hands up in the same way. However, only one hand is coming up as part of the OVRinteraction as shown in the image. Not sure what I've done wrong tbh. Left - has black hand from initial setup and interaction hand.Right - has only black hand.
okay this is a really weird ticket but this is my final atempt to understand how it all works, so basicly i bought a old quest from ebay to try to mod just to play around with... and i had an idea to swap its stock cameras out for higher resolution cameras and possibly even thermal cameras (a passion project iv been wanting to do with a HMD) back the the point tho i know litterally nothing about how these smaller cameras work on the hardware side of things. and is there part spisific software that is behind it? IE if i where to somehow find a camera that has the SAME conector and plug it into the board. asuming that camera ran off the same voltage and everythign would it theroriticly just use those cameras for the passthrough feature (ITS FINE BY ME if the XR overlay no longer works so like it cant identify the controlers or boundarys etc. my ONLY goal is to basicly swap cameras out for a diffrent kind of camera.) i reallly can not find a darn thing on the internet about this so far so
Hello, i'm working on adding oculus quest 2 support to my engine in first time, but i can't use xrCreateSwapchainAndroidSurfaceKHR as i get linking errors due to missing definition. Does the oculus_loader support the function and this extension? How can I get an android surface to display an image?
I can record video and take photos as long as it's not on the applab but as soo as I have a draft version on applab it won't let me record video. So I guess there is a secret menu where I can change that?Or in a nutshell: how/where can I enable taking photos and/or video?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.