immersive-web / cardboard-vr-display

A JavaScript implementation of a WebVR 1.1 VRDisplay
https://immersive-web.github.io/cardboard-vr-display
Apache License 2.0
92 stars 43 forks source link

Handle Multiple Resolutions on Samsung Devices #7

Open jsantell opened 6 years ago

jsantell commented 6 years ago

There are a few issues related to lens distortion on Samsung devices (https://github.com/googlevr/webvr-polyfill/issues/129, https://github.com/googlevr/webvr-polyfill/issues/133, https://github.com/googlevr/webvr-polyfill/issues/273, https://github.com/googlevr/webvr-polyfill/issues/272) due to newer Samsung devices decreasing resolution when the battery gets low, as well as manually setting the resolution. The dpdb only currently handles one resolution per device, and when not using max resolution, the distortion is incorrect. At the WebVR Authoring Workshop, we discussed some work arounds for this that'd provide the best possible experience for Samsung devices on browsers that do not support native WebVR.

We're working on getting a list of Samsung devices and potential resolutions, and with that, we can work on detecting the window width/height and see if the device is at max resolution. If not, we'd prompt the user to use the max resolution, similar to the 'please rotate your device' message. I think this is a fine constraint, as GearVR experiences also require full resolution.

AlexanderStohr commented 6 years ago

cant there be a way for just auto-detection of the current resolution. if a user wants it low-res then he really might want that one. even a nag-screen (hinting for "you could run your VR at a higher resolution") might not be that gentle.

jsantell commented 6 years ago

With a max resolution and DPI (in max res), we could calculate other resolution DPIs for that device I believe, so it could be possible

yaustar commented 6 years ago

Prompting the user to use maximum resolution requires too many unguided user clicks to get to the right setting.

Is the issue that the scaled resolution cannot be easily retrieved?