OSVR / OSVR-Unity

Package for authoring OSVR experiences with Unity.
Apache License 2.0
99 stars 38 forks source link

Viewport Size #110

Closed robsonswiss closed 8 years ago

robsonswiss commented 8 years ago

I posted this on the forum but it might be better posting it here. How can we increase the size of the viewport to use up more pixels on the display?

DuFF14 commented 8 years ago

The viewport is set here, but I'm not sure if its the viewport you want to adjust. You can increase the overfill factor if you are able to use the RenderManager rendering path. This expands the size of the render window, adding more pixels around the border, so that there is margin to be rendered when using distortion (which pulls in pixels from outside the boundary). The larger this factor, the less likely we'll see clamped images at the border but the more work taken during rendering. A factor of 1.0 means render at standard size, 2.0 would render 4x as many pixels (2x in both X and Y). I think @russell-taylor has also mentioned adding an "oversampling" option that would be similar to Unity's "RenderScale" setting described here.

robsonswiss commented 8 years ago

Hi, thank you. I think we'd need to build a windows driver for the headset(not using OSVR HDK) to use it with RenderManager. And the test mule is running ATI as well. I'll see what we can do.

robsonswiss commented 8 years ago

I just had a look at RenderManager and the config files, I'll give it a go and see if it will work on my notebook (Nvidia GPU).

russell-taylor commented 8 years ago

The latest RenderManager release (0.6.33) includes control over Oversampling as an optional field in the configuration file. It can be set >1 to get more pixels in the render texture, enabling full resolution even for distortion maps that expand pixels. It can be set < 1 to reduce the number of shaded pixels, but will also reduce the visual quality.

robsonswiss commented 8 years ago

Thank you Russell. Is there any documentation on how to get a device compatible with direct mode?

russell-taylor commented 8 years ago

RenderManager currently works with any nVidia card that supports DirectMode. We've not been able to get a comprehensive list of such cards. We do have it working on mobile GPUs from a couple of years ago and also on modern ones.

There is an AMD implementation underway as well. We hope to start testing and debugging it next week.

russell-taylor commented 8 years ago

The RenderManager interface is the same for DirectMode and non-DirectMode, so you can develop on it even on machines where DirectMode is not supported. This just makes the predictive tracking have to work harder to keep up...

VRguy commented 8 years ago

The OSVR HDK is compatible with direct mode and you can get it from osvr.org

Vuzix iWear 720 is another good HMD that works with OSVR direct mode

russell-taylor commented 8 years ago

Looks like I misunderstood what you meant about hardware. There is also a raw VRPN Oculus driver that can be used to enable OSVR to open a DK2 (maybe also now a DK1) in DirectMode without going through the Oculus API.

rpavlik commented 8 years ago

It sounded like they had their own HMD that they wanted to make compatible with direct mode...

It doesn't actually require a driver, just a display descriptor (like the ones in OSVR-Core/Apps/display source) which specifies the resolution for the viewports, etc. Then, if you want to run it in direct mode, not just extended or mirror, for NVIDIA we need to add a few hardware-specific identifiers about your device to a little chunk of NDA code in RenderManager - not sure how much more specific than that I can get publicly.

russell-taylor commented 8 years ago

Okay, if that's what they want then all we need is the EDID vendor identifier and the string they would like to use to identify their display. All this will go into the non-NDA part of the code to open it. If we want to add an enter/leave DirectMode program, that will be NDA unless we expose an API in RenderManager for that call (which we may want to do as we add AMD and other vendors anyway.

robsonswiss commented 8 years ago

Perfect thank you! It wasn't clear before how it all works but I think we should wait and see once you add AMD on.

DuFF14 commented 8 years ago

Closing this as its not a Unity issue.