Commit graph

87385 commits

Author SHA1 Message Date
Ada
7c3fa5b175 OpenXrInputPlugin: Correct HMD-head bone offset 2025-04-01 09:04:46 +10:00
Ada
167c9c433f OpenXrInputPlugin: Adjust hand and head-to-eyes offsets
Hands are now basically perfect (on Vive controllers, at least,
palm pose/grip surface would really help but it's not well supported)
Head now bends properly at the bottom of the head bone and the HMD view
isn't stuck at the bottom of the head bone.

TODO: The current solution doesn't account for avatar scale or the
actual positions of their eyes. The pull-forward offset for the view
might also be too far, I'll need to get feedback on it.
2025-04-01 09:04:46 +10:00
Ada
fedd4c8c1c OpenXrContext: Don't try and fail to initialize on Wayland 2025-04-01 09:04:46 +10:00
Ada
d21dee44fb OpenXrInputPlugin: Oculus touch and WMR controller profiles 2025-04-01 09:04:46 +10:00
Ada
524665f54c Revert OpenVrDisplayPlugin getPlayAreaRect hack 2025-04-01 09:04:46 +10:00
Ada
cedc5be526 OpenXrInputPlugin: User-friendly input actions
Replaces the raw controller button inputs with named OpenXR actions.
There's a lot of engine components that expect raw controller inputs
like the VR teleport script. Those will have to be refactored later,
but for now this works well enough and is perfectly usable. A small
issue I've hit is the LY input working for the teleport script,
but not for smooth locomotion. I've hacked around this by having
the "walk" action bound both to LX/LY and to the Translate actions.
It's a bit janky for teleports, but it's functional.

TODO: Feedback on intuitive bindings for other controller types besides
just the HTC Vive controllers.
2025-04-01 09:04:46 +10:00
Ada
dc3a508051 OpenXrInputPlugin: Make actions more generic
This still isn't ideal and it uses the Vive controller settings,
but this should work on most controllers thanks to OpenXR's built-in
action remapping and standardised button names.
2025-04-01 09:04:46 +10:00
Ada
7ece6e7a0c OpenXrInputPlugin: Hack for Vive controllers
This aught to be replaced with a proper set of XR input profiles,
at the moment this is *just* enough to get hardcoded button inputs
working with the existing Vive controller config.
2025-04-01 09:04:46 +10:00
af00bf5667 Make sure add-apt-repository is available. 2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
2d0db677aa pr_build: Get GCC 13 on Ubuntu using the ppa:ubuntu-toolchain-r/test. 2025-04-01 09:04:46 +10:00
1101a2aeb4 Install missing xcb/glx.h dependency. 2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
760b846bb1 OpenXrDisplayPlugin: Use C++20 std::format. 2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
aa6facf7e6 OpenXrInputPlugin: Use C++20 map iterators. 2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
710da838d8 OpenXr: Use C++20 std::optional. 2025-04-01 09:04:46 +10:00
HifiExperiments
c8557f5c78 OpenXr: Platform improvements.
Add missing includes on Windows.
Include GLX only on Linux.

Move openxr_platform.h include to OpenXrContext.h. To make this
possible, certain names from GLX/X11 need to be undefined in order to be
now includable in OpenXrInput.h.

Add Overte e.V. copyright.

Co-authored-by: Lubosz Sarnecki <lubosz@gmail.com>
2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
661fe08f08 GLMHelpers: Fix build with C++20 on GCC.
When enabling C++20 the lerp function seems to be redefined on GCC (not
on MSVC), don't redefine it using a CMake definition.
2025-04-01 09:04:46 +10:00
05c6a5e5d7 OpenXr: Enable C++20 for OpenXR plugin.
Enabling it globally causes issue with WebRTC.

Co-authored-by: Lubosz Sarnecki <lubosz@gmail.com>
2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
7abc7be287 OpenXrContext: Add Windows platform and bindings. 2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
89ba66c317 OpenXrInputPlugin: Improve haptic feedback mapping. 2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
7e31a1e49b controllers: Improve openxr_index.json mapping. 2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
0505658a39 controllers: openxr: Use actions for walking.
This makes the Y thumbstick axis work.
2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
2db3168612 OpenXrInput: Improve mapping for the Index controller.
* Add thumbstick click and touch.
* Add face and trigger touch.

Use left primary / secondary instead of face button names.
2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
d9cd2fd3d5 OpenGlDisplayPlugin: Add possibility to present frames only once.
Don't present frame more than once in OpenXrDisplayPlugin.
2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
be3e12b18c OpenXrContext: Improve errors when runtime is not available. 2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
473bd4d64e plugins: Add OpenXR plugin.
Add OpenXrDisplayPlugin and OpenXrInputPlugin.
Add controller bindings for the Valve Index controller.
2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
bb2dd63b99 Application: Improve scoping. 2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
fff2127e66 Application: Maintain orientation of eye offset matrix. 2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
4b9998e53e Context: Maintain orientation of eye offset matrix. 2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
f6d724241c HmdDisplayPlugin: Fix whitespace. 2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
8fcafa32d1 UserInputMapper: Make error an error. 2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
43d56eed85 Camera: Init default values. 2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
3d51b10bcb ports: Add openxr-loader.
Copy from vcpkg repository.
Add OpenXR to hifi-client-deps.
2025-04-01 09:04:46 +10:00
Lubosz Sarnecki
881fbf5641 ports: Add jsoncpp.
The build demands it but it's missing.
Copy from upstream vcpkg repo.

Fixes the following error:
```
Computing installation plan...
error: while looking for jsoncpp:x64-linux:
overte-files/vcpkg/cfe0a2a0/ports/jsoncpp: error: jsoncpp does not exist
```
2025-04-01 09:04:46 +10:00
b38237cb8d Update Changelog for 2025.03.3. 2025-03-25 16:45:37 +01:00
371eb74723
Merge pull request from overte-org/fix/audio_lock2
Initialize AudioClient properties earlier.
2025-03-24 19:40:18 +01:00
e55a2ff6f3 Initialize AudioClient properties earlier. 2025-03-24 08:10:07 +01:00
cba6f29f77
Merge pull request from JulianGro/remove_highcharts
Rip out Highcharts proprietary graphing code.
2025-03-17 18:51:15 +01:00
4a6a2a31db
Merge pull request from Armored-Dragon/fix/remove_highcharts-ad_suggestion
Removed extra code no longer required.
2025-03-17 18:29:02 +01:00
armored-dragon
65cdd8b97f
Removed extra code no longer required. 2025-03-17 11:54:39 -05:00
056da70dc2
Merge pull request from HifiExperiments/changelog
2025.3.2 changelog
2025-03-17 11:00:25 +01:00
5ee31d6055 Rip out Highcharts proprietary graphing code.
This completely removes the graphing functionality of the Domain server control panel. I really don't think anyone actually uses this though, if people are even aware of its existence. The statistics themselves, without the pretty graphing, are still functional.
2025-03-17 10:45:59 +01:00
HifiExperiments
9301eaf24c split 3.1 / 3.2 2025-03-15 16:14:04 -07:00
HifiExperiments
5384c6a067 2025.3.2 changelog 2025-03-15 14:03:43 -07:00
d09a927a82
Merge pull request from overte-org/fix/TAA_transparencies
Fix for blurry/noisy transparencies on TAA
2025-03-14 19:06:01 +01:00
7c59a6360a Added a comment about transparencies 2025-03-14 18:55:28 +01:00
44c600a184
Merge pull request from HifiExperiments/staticPlumbers
fix long startup times
2025-03-14 18:11:43 +01:00
HifiExperiments
b4f7c24b3e possible fix for long startup times 2025-03-13 23:21:44 -07:00
ac344e26bb Initial fix for blurry/noisy transparencies on TAA 2025-03-12 00:51:56 +01:00
5b6cda34dc
Merge pull request from ada-tv/fix/gl-swapinterval
Fix VR Preview on Linux with Mesa drivers
2025-03-02 20:59:57 +01:00
c137c0c5eb
Merge pull request from JulianGro/fedora41
Update GitHub Actions server packaging
2025-03-02 20:57:46 +01:00