How to properly ResetSeatedZeroPose with SR Mode enabled

erictruitt
Contributor

How to properly ResetSeatedZeroPose with SR Mode enabled

Hi all,

 

Has anyone, using the Vive Pro in SR Mode (pass through video enabled), figured out the proper way to Reset the HMD's "seated zero pose" while keeping the image planes in the correct orientation?

 

The standard solution only reorients the users head and the image planes that display the video feed don't get reoriented along with you.

 

This is my standard solution: 

 

OpenVR.System.ResetSeatedZeroPose();

OpenVR.Compositor.SetTrackingSpace(ETrackingUniverseOrigin.TrackingUniverseSeated);

 

Anyone have a way of doing this that reset's the pass thru video image planes to the updated, correct orientation?

Moderator

Re: How to properly ResetSeatedZeroPose with SR Mode enabled

Hi Eric,

I think you meant is there a setRotation on the pass-through views, which technically you can set by rotating the cameras, but I wouldn't recommend it.

By definition, a pass through view is always correct (ideally) regardless of hmd pose or orientation and will cause disorientation unless that's the intent.

Is this is a seated experience with a rotating chair that you want to fool the viewer into thinking you're facing a different location? I would recommend scanning the room if you want to arbritrarily rotate it since the pass-through isn't 360 degrees anyway.

erictruitt
Contributor

Re: How to properly ResetSeatedZeroPose with SR Mode enabled

Yeah, it's a seated driving simulation and I need to be able to reset the user's head to be in the correct position and rotation when they enter into the simulation, regardless of the tracking origin that OpenVR defaults them to. Also, because of customer requirements, they have to be able to interact with certain virtual objects as well as be able to see their real world environment.

 

The issue is, if you use ResetSeatedZeroPose, the view planes don't see that the Zero Pose has been reset. So, for the sake of an example, say I'm facing North in game and the Pass through video properly placed in front of me. If I turn South, and call ResetSeatedZeroPose, the view planes stay in the same position and rotation in the world (which is now behing the player's view) becuase technically the player object's rotation and position never changed. So yes, technically the view planes are displaying the correct view, just the player can't look at them because they are oriented with the original seated origin that OpenVR started up in.

 

I've attached a picture of the described effect in case I'm still poorly wording my problem. In the picture I turned the HMD slightly after starting into the game and then called ResetSeatedZeroPose. As you can see the view plane orientation gets skewed and the user cannot see the entire view anymore.

Highlighted
liyi_zheng
Pioneer

Re: How to properly ResetSeatedZeroPose with SR Mode enabled

Hi erictruitt,

 

Please replace DualCameraInterface.dll with the attaced file of version 0.7.5.3.

The new dll supports all types of TrackingSpace.