Skip to content

Conversation

@pushrax
Copy link

@pushrax pushrax commented Jun 29, 2018

The existing WorldFromDriver rotation offset applies directly to qWorldFromDriverRotation and does not affect vecWorldFromDriverTranslation, which means any changes to vecWorldFromDriverTranslation originating from the true device driver will effectively cause the rotation offset to be applied relative to a different origin in client space.

In particular, when a lighthouse-tracked device loses tracking and comes up facing a different lighthouse than before, the WorldFromDriver transform will switch, and any calibrated translation offset needs to be adjusted to take this into account. This is fairly annoying when it occurs, and requires either switching the profile, cycling the devices tracking and bringing them up facing the original lighthouse, or restarting SteamVR with the devices facing the original lighthouse.

This PR introduces a new offset, which is effectively applied to the universe transform instead of the WorldFromDriver transform. It does this by applying the rotation offset to the incoming vecWorldFromDriverTranslation as well as qWorldFromDriverRotation.

I'm opening this without any client changes, since I want to gauge your interest in merging before continuing work.

@pushrax
Copy link
Author

pushrax commented Jun 29, 2018

This would probably require a protocol version bump too, which is really unfortunate. Would it be better to add a new IPC method instead?

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

Successfully merging this pull request may close these issues.

1 participant