Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can not seem to make sure the window shows up in the same place #68

Open
KRDucky opened this issue Dec 7, 2023 · 3 comments
Open

Can not seem to make sure the window shows up in the same place #68

KRDucky opened this issue Dec 7, 2023 · 3 comments

Comments

@KRDucky
Copy link

KRDucky commented Dec 7, 2023

We are trying to set up DesktopPlus on multiple flight simulators so that it shows up in the same location every time. We are mirroring iPads with Mirroring360.

Is there a config file or something for the window that shows in VR that we can place where we want it and replicate it across each device?

@elvissteinjr
Copy link
Owner

Positions for non-dashboard overlays are relative to their origin point. On a stable tracking system, the Play Area origin shouldn't move between launches. To have this fixed between devices you'd have to have SteamVR use the same room setup data for each if it's a lighthouse tracking system. Though this still wouldn't work if we're talking about multiple physical locations for the devices.

The Seated Position origin uses the SteamVR seated position as its origin point. That's the one applications and the user can recalibrate during runtime. That would've been my first thought here, but that's likely problematic as well, as I wouldn't expect the HMD position during calibration to always line up with the one in previous sessions.

This seems like a non-trivial problem with multiple devices involved if you only want a single config. On a single device I'd just hope for the room setup to not shift (outside of some rare glitches it never does for me).
There isn't any support for some kind of reference point setup if that's the question. Even if there was, that'd take a one per-location setup if play area origin doesn't shift (for that you may also set up the overlay manually once), or once per SteamVR session if it does.
SteamVR tracker as tracking reference would probably work but seems overkill and expensive for this purpose.

In short, it all depends on what SteamVR's tracking sees.
I might need more details about the setup to get a better idea of this scenario but I think the options to automate this are limited.

@KRDucky
Copy link
Author

KRDucky commented Jul 2, 2024

would it be possible to "pin" it in position in the scene? As it currently stands, the window follows the headset view instead of staying where we place it. Could you also break down what each origination position option does? I understand the play area and HMD ones but what about the others?

@elvissteinjr
Copy link
Owner

I don't think there's a lot to add to each origin, but here:

  • Play Area:
    This is essentially absolute positioning in SteamVR's standing coordinate space. This shouldn't be moving, though applications are able to modify it at runtime (i.e. OVR Advanced Settings) but normal games and such aren't supposed to. May shift between launches if room setup was redone or tracking system isn't stable (my experience with lighthouse tracking is that it's pretty stable however, as said). Pretty much just feeds the configured overlay transform straight into IVROverlay::SetOverlayTransformAbsolute().
  • HMD Floor Position:
    Position of the HMD as the zero-point, without any rotation. On the NewUI branch there's also the option to have this spin with the user.
  • Seated Position:
    SteamVR's seated position as the zero-point. Essentially IVRSystem::GetSeatedZeroPoseToStandingAbsoluteTrackingPose() offset by overlay transform.
  • HMD/Left & Right Controller/Tracker:
    The tracked device's transform as the zero-point. Essentially IVRSystem::GetDeviceToAbsoluteTrackingPose() offset by overlay transform.
  • Theater Screen (NewUI branch only):
    Display overlay as the SteamVR Theater Screen. There's no positioning happening with this one in Desktop+ as it's handled by SteamVR.

So the default Play Space origin should be doing what you want, unless external applications modify the tracking space or is otherwise shifting, As Desktop+ sees it, overlays of that origin are not moving.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants