Commit graph

87467 commits

Author SHA1 Message Date
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
armored-dragon
d8103eb7dd
Explicitly return false. 2025-03-31 13:06:27 -05:00
armored-dragon
228fa85a0f
Fix not scrolling to bottom on page change. 2025-03-28 15:38:36 -05:00
armored-dragon
3453102359
Only bypass the distance check on load. 2025-03-27 11:28:31 -05:00
b38237cb8d Update Changelog for 2025.03.3.
Some checks failed
Master API-docs CI Build and Deploy / Build and deploy API-docs (push) Has been cancelled
Master Doxygen CI Build and Deploy / Build and deploy Doxygen documentation (push) Has been cancelled
2025-03-25 16:45:37 +01:00
armored-dragon
ce787d5803
Add check to see if hudRayPick intersects. 2025-03-24 16:24:36 -05:00
371eb74723
Merge pull request #1378 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
Alezia Kurdis
14f1fa01f7
Exclude Grid from Local EntityList
Exclude Grid from Local EntityList
2025-03-21 21:43:24 -04:00
Alezia Kurdis
c6e5ae153d
Add method to get the local entity ID
Add method to get the local entity ID to be able to exclude it from the entity list in create app
2025-03-21 21:41:54 -04:00
Alezia Kurdis
c61f21fd1d
initialize the local Entity filter at page load
initialize the local Entity filter at page load
2025-03-20 21:26:50 -04:00
Alezia Kurdis
79aafbcb26
Local Entities in Create app Entity List
Local Entities in Create app Entity List
2025-03-19 21:23:26 -04:00
Alezia Kurdis
a00986ecce
Local Entities in Create app Entity List
Local Entities in Create app Entity List
2025-03-19 21:20:40 -04:00
Alezia Kurdis
eb5aabe813
Local Entities in Create app Entity List
Local Entities in Create app Entity List
2025-03-19 21:19:31 -04:00
Alezia Kurdis
6795d13a39
Add icon for Local Entity
Add icon for Local Entity
2025-03-19 21:17:27 -04:00
Alezia Kurdis
5e213fa038
Add "Local Entity" icon
Add "Local Entity" icon for possible next phase.
2025-03-17 14:32:58 -04:00
cba6f29f77
Merge pull request #1371 from JulianGro/remove_highcharts
Some checks failed
Master API-docs CI Build and Deploy / Build and deploy API-docs (push) Has been cancelled
Master Doxygen CI Build and Deploy / Build and deploy Doxygen documentation (push) Has been cancelled
Rip out Highcharts proprietary graphing code.
2025-03-17 18:51:15 +01:00
4a6a2a31db
Merge pull request #9 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