Focus 3 - Version 3.1

Hi everyone !

After testing the new release (3.1) on Focus 3, I have an eye misplacement problem.
I didn’t make any changes in the source code, this is the raw code from the zip file.

In the picture below, we can clearly see that there is a misalignment between right and left eye.
The two red lines are parallels, and the steamvr grids behind AND the IPD adjustment are not aligned (and of course the HMD was on a table, flat, horizontal).
Of course also, it’s not the IPD itself (I’ve tried all the settings)

Is there a way to fix this ? Human eyes get used after a while, but when you remove the headsets you have a strange feeling :-) :-)

Thanks for the help !

We’re reviewing internally, will post as we know more.

We have observed that the error is not happening in the sample created by HTC here GitHub - ViveSoftware/Wave-CloudXR-Sample
The codebased is structured differently but it does exactly the same thing that the sample provided in Nvidia CloudXR SDK 3.1
The only difference that explains the issue is the way the projection is set.
You see this in the HTC sample
for (int i=0; i<2; ++i) {
WVR_GetClippingPlaneBoundary((WVR_Eye)i, &l, &r, &t, &b);
if(l < 0) l *= -1;
if(r < 0) r *= -1;
if(t < 0) t *= -1;
if(b < 0) b *= -1;
mDeviceDesc.proj[i][0] = -l;
mDeviceDesc.proj[i][1] = r;
mDeviceDesc.proj[i][2] = -b;
mDeviceDesc.proj[i][3] = t;
the sign check is the one that resolves the issue.
I would guess top and bottom are inverted, and on some (but not all models) Vive Focus they are different.
Let us know if this works for you
Best regards,
Alexis Vartanian - TechViz CTO

Will review this change for an upcoming release. Seems awfully strange their own call is returning data that has to be conditionally flipped around, when they could just do that internally. Must be some secondary issue.

Hi, thanks, indeed with the previous build it works !
So it means that depending of the Vive Focus 3 S/N, the behaviour is not the same ?

so to clarify, is the ‘working’ case the 3.0 sample (which I think used older code for setup), or the HTC-customized sample )(we’d want to emulate what they are doing…)

To summarize
HTC-customized sample OK
CloudXR 3.1 WaveVR SDK sample KO
CloudXR 3.1 WaveVR SDK sample + sign check/flip OK

However, best would be that you reproduce the issue on your side.

Best regards,

Unfortunately, the HMD that did not show the issue has been delivered to a customer so we have no chance to find out why. My hypothesis is that the FOV is not symmetrical horizontally on some devices. We are adding a live display of the FOV values in our software to test that in case this happen again.
Anyway, we believe the WaveVR API is strange and the code fix should be used.
Best regards,