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

Projection not working #99

Open
robsonswiss opened this issue Dec 7, 2016 · 10 comments
Open

Projection not working #99

robsonswiss opened this issue Dec 7, 2016 · 10 comments

Comments

@robsonswiss
Copy link

Description of issue

Hi, similar to the native OSVR unity titles, center_proj_x doesn't translate from the config to rendering. It remains at 0.5 no matter what is set in the config, I believe steamvr does support projection offset as well so not sure if you can look into this and fix it?

Steps to reproduce the problem

Change center_proj_x from 0.5 to 0.1-0.9, no change in projection is observed.

System configuration

GTX980
Windows 10 64bit Pro
Latest SteamVR
Latest SteamVR-OSVR

Nothing is really shown in vrserver.txt, using default HDK2 render manager extended mode config file.

@godbyk
Copy link
Contributor

godbyk commented Dec 7, 2016

While that information could be used by RenderManager (though it may not be at the moment), the last time I checked, SteamVR itself never requests that information from the SteamVR-OSVR driver.

@robsonswiss
Copy link
Author

Do you know by any chance how it's done by DK1 and DK2 users with the oculus plugin?
I can't really understand how HDK users are fine with the double vision on distant objects.

@robsonswiss
Copy link
Author

Not just DK1 and DK2, I understand also CV1 adjusts the camera position based on the hardware IPD setting. Apparently it was a bug until they recently fixed it. I'm really surprised dev's don't seem to pick this up and the consumers have to point it out. If you can't adjust IPD correctly you won't have the correct depth (apparently off scale and 2D VR is acceptable), double vision (No pain no gain...) etc.

@russell-taylor
Copy link

This information is used by RenderManager and hence by all render paths that use it.

The IPD issue is understood by the OSVR developers; it affects both the projection (which is currently handled) and the distortion correction (which requires a redo of the sampling from the new position and is on our ToDo list once we have distortion correction working well from the standard IPD location).

@robsonswiss
Copy link
Author

Hi Russel, I just sent a long reply on the other issue so I'll keep this one short, if projection is currently handled, where does it get the IPD information from?
And can you also tell me what "standatd IPD location" is referring to?

@russell-taylor
Copy link

IPD is passed to RenderManager in the RenderParams struct https://github.com/sensics/OSVR-RenderManager/blob/master/osvr/RenderKit/RenderManager.h#L330 which is passed to https://github.com/sensics/OSVR-RenderManager/blob/master/osvr/RenderKit/RenderManager.h#L385 in the get/present rendering approach. By "standard IPD location", I meant "the location of the center of projection of an eye that is located at the expected location with respect to the lens". Note that even for someone with an IPD that matches the design, the center of projection of their eye moves as they change their gaze across the scene, which will have some impact on distortion correction.

@robsonswiss
Copy link
Author

Okay it's a hard coded value of 63mm :(. Perhaps I don't understand the complexity of getting this adjustable and functional, but I think having accurate IPD rendering should be quite high on the list of priorities. Having a fixed value essentially excludes at least 60% of users from having a quality experience and with the HDK2 more around 80%. I actually thought the HDK2 adjusted in the driver board's firmware to compensate for this.

Do you know when you guys will bring on the ability to map the display dimensions to pixels and have functioning adjustable IPD corrected rendering? In the meantime I'll try see if I can get something done on the driver board to compensate.

@simlrh
Copy link

simlrh commented May 5, 2017

Is there anything useful I could do to contribute to this? I have several DIY HMD's with varying levels of wacky COP (DK1, iPhone 5 in cardboard viewer, AR headset) and always come up against this issue in Steam.

I don't have this problem though: "similar to the native OSVR unity titles". For me the VR Sample campfire app works fine with the COP values I set.

@robsonswiss
Copy link
Author

Free beer for someone that can fix this :).
Steve what happens when you apply your previous workaround?
https://github.com/OSVR/SteamVR-OSVR/pull/93/files/8fa07d7267137b29f4dfb19315bae617ec784b37

It's on my to-do list to give it a go, but right now I'm trying to see if it can't be adjusted in hardware (although this comes with a performance penalty)

@simlrh
Copy link

simlrh commented May 11, 2017

@robsonswiss I'll try again soon, last time I had too much trouble getting SteamVR to work with my own binaries.

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

4 participants