From a04295ee812c1e773b33121d20c3ba53ccc2d129 Mon Sep 17 00:00:00 2001 From: skyace65 Date: Sun, 30 Mar 2025 10:09:57 -0400 Subject: [PATCH] Update OpenXR Settings page --- tutorials/xr/img/openxr_settings.webp | Bin 12120 -> 28838 bytes tutorials/xr/openxr_settings.rst | 89 ++++++++++++++++++++++---- 2 files changed, 75 insertions(+), 14 deletions(-) diff --git a/tutorials/xr/img/openxr_settings.webp b/tutorials/xr/img/openxr_settings.webp index fcd393b29017caa185f2fc94c79f93e07bf598fe..76467c812459bb9f1d26966a8c2ec3f3075ec201 100644 GIT binary patch literal 28838 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 a0%I}YRFFQi=hPHUgYu!^)uECN@P7bIbo4m@ literal 12120 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 Oz#Ej3;S|#ez!wV0cqaS+ diff --git a/tutorials/xr/openxr_settings.rst b/tutorials/xr/openxr_settings.rst index 8585ca550..2decd667f 100644 --- a/tutorials/xr/openxr_settings.rst +++ b/tutorials/xr/openxr_settings.rst @@ -9,8 +9,11 @@ we will only discuss the settings in the core of Godot here. .. image:: img/openxr_settings.webp +General settings +---------------- + Enabled -------- +~~~~~~~ This setting enables the OpenXR module when Godot starts. This is required when the Vulkan backend is used. @@ -21,12 +24,12 @@ This also needs to be enabled to get access to the action map editor. You can use the ``--xr-mode on`` command line switch to force this to on. Default Action Map ------------------- +~~~~~~~~~~~~~~~~~~ This specifies the path of the action map file that OpenXR will load and communicate to the XR Runtime. Form Factor ------------ +~~~~~~~~~~~ This specifies whether your game is designed for: @@ -36,7 +39,7 @@ This specifies whether your game is designed for: If the device on which you run your game does not match the selection here, OpenXR will fail to initialise. View Configuration ------------------- +~~~~~~~~~~~~~~~~~~ This specifies the view configuration your game is designed for: @@ -51,7 +54,7 @@ If the device on which you run your game does not match the selection here, Open These may be supported in the near future. Reference Space ---------------- +~~~~~~~~~~~~~~~ Within XR all elements like the player's head and hands are tracked within a tracking volume. At the base of this tracking volume is our origin point, which maps our virtual space to the real space. @@ -60,7 +63,7 @@ depending on the XR system used. In OpenXR these scenarios are well defined and selected by setting a reference space. Local -~~~~~ +^^^^^ The local reference space places our origin point at the player's head by default. Some XR runtimes will do this each time your game starts, others will make the position persist over sessions. @@ -83,7 +86,7 @@ so your game can react accordingly. You should **not** call ``center_on_hmd`` when using this reference space. Stage -~~~~~ +^^^^^ The stage reference space is our default reference space and places our origin point at the center of our play space. For XR runtimes that allow you to draw out a guardian boundary this location and its orientation is often set by the user. @@ -111,7 +114,7 @@ In Godot you can do this by calling the ``center_on_hmd`` function on the :ref:` Any other XR tracked elements such as controllers or anchors will also be adjusted accordingly. Local Floor -~~~~~~~~~~~ +^^^^^^^^^^^ The local floor reference space is similar to the local reference space as it positions the origin point where the player is. In this mode however the height of the player is kept. @@ -146,7 +149,7 @@ so your game can react accordingly. You should **not** call ``center_on_hmd`` when using this reference space. Environment Blend Mode ----------------------- +~~~~~~~~~~~~~~~~~~~~~~ The environment blend mode defines how our rendered output is blended into "the real world" provided this is supported by the headset. @@ -166,7 +169,7 @@ If a mode is selected that is not supported by the headset, the first available .. _doc_openxr_settings_foveation_level: Foveation Level ---------------- +~~~~~~~~~~~~~~~ Sets the foveation level used when rendering provided this feature is supported by the hardware used. Foveation is a technique where the further away from the center of the viewport we render content, the lower resolution we render at. @@ -182,7 +185,7 @@ The higher the level, the better the performance gains, but also the more reduct This feature is disabled if post effects are used such as glow, bloom, or DOF. Foveation Dynamic ------------------ +~~~~~~~~~~~~~~~~~ When enabled the foveation level will be adjusted automatically depending on current GPU load. It will be adjusted between low and the select foveation level in the previous setting. @@ -192,7 +195,7 @@ It is therefore best to combine this setting with foveation level set to high. **Compatibility renderer only** Submit Depth Buffer -------------------- +~~~~~~~~~~~~~~~~~~~ If enabled an OpenXR supplied depth buffer will be used while rendering which is submitted alongside the rendered image. The XR runtime can use this for improved reprojection. @@ -203,7 +206,7 @@ The XR runtime can use this for improved reprojection. it is advised to leave this setting off unless it provides noticeable benefits for your use case. Startup Alert -------------- +~~~~~~~~~~~~~ If enabled, this will result in an alert message presented to the user if OpenXR fails to start. We don't always receive feedback from the XR system as to why starting fails. If we do, we log this to the console. @@ -219,7 +222,19 @@ or if you're handling the failure condition yourself by checking ``OpenXRInterfa Extensions ---------- -This subsection provides access to various optional OpenXR extensions. +This subsection allows you to enable to various optional OpenXR extensions. Keep in +mind that the extensions will only work if the OpenXR runtime (SteamVR, Oculus, etc) +the project is ran with supports them. + +Debug Utils +~~~~~~~~~~~ + +Enabling this will log debug messages from the XR runtime. + +Debug Message Types +~~~~~~~~~~~~~~~~~~~ + +This allows you to choose which debug messages are logged. Hand Tracking ~~~~~~~~~~~~~ @@ -233,6 +248,36 @@ If your game only supports controllers this should be turned off. See the chapter on :ref:`hand tracking ` for additional details. +Hand Tracking Unobstructed Data Source +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Enabling this means hand tracking may use the exact position of fingers, usually +what a headset camera sees. + +Hand Tracking Controller Data Source +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Enabling this means hand tracking may use the controller itself, and infer where +fingers are based on controller input or sensors on the controller. + +Hand Interaction Profile +~~~~~~~~~~~~~~~~~~~~~~~~ + +Enabling this extension allows the use of two new hand tracking poses. Pinch pose +which is the location between the thumb and index finger pointing forward, and poke +pose which is at the tip of the index finger. + +This also allows 3 more gesture based inputs. Pinch, when the user pinches their +thumb and index finger together. Aim activation, when the index finger is fully +extended. And Grasps, when the user makes a fist. + +When a hand interaction profile and controller interaction profile are supplied, the +runtime will switch between profiles depending on if optical tracking is used or if +the user is holding a controller. + +If only a hand interaction profile is supplied any runtime should use hand +interaction even if a controller is being held. + Eye Gaze Interaction ~~~~~~~~~~~~~~~~~~~~ @@ -253,3 +298,19 @@ and set its ``tracker`` property to ``/user/eyes_ext`` and set its ``pose`` property to ``eye_pose``. Now you can add things to this controller node such as a raycast, and control things with your eyes. + +Binding Modifiers +----------------- + +These control whether or not binding modifiers can be used. Binding modifiers are +used to apply thresholds or offset values. + +Analog Threshold +~~~~~~~~~~~~~~~~ + +Allow analog threshold binding modifiers. + +Dpad Binding +~~~~~~~~~~~~ + +Allow D-pad binding modifiers.