So, I'm busy integrating NoloVR into my SteamVR driver and I've come up with some strangeness that maybe someone knows something about:
When I use the rotation quaternion supplied by the Nolo runtime I have to do a bit of manipulation to it before I can use it as a rotation quaternion for SteamVR.
To make it easier to understand and experiment with I convert the quaternion to euler (roll, yaw & pitch), then I perform the following:
roll = M_PI_2 - roll;
yaw = M_PI - yaw;
pitch = M_PI - pitch;
before converting it back to quaternion and passing it to SteamVR. If I don't do this, up is down, left is right and tilt is fine. Anyone know why this is? This is using the values supplied by 0.60 and 0.70 drivers.
The "Visualizer" demo in both drivers messes up the axes of rotation and position so it doesn't work very well at all...