webvr-polyfill
webvr-polyfill copied to clipboard
Vertex shader coordinates
Description:
I have yet to determine the underlying cause, but I am experiencing issues with using this polyfill alongside programs that perform geometric calculations in the vertex shader. I am using a technique described here to project a set of quads in screen space to appear as a continuous line with uniform width. This works well in an isolated GL context, but fails when used with this polyfill, specifically for mobile Cardboard devices. I tried isolating rendering to a framebuffer, but this also yielded unexpected results.
A demo of this issue can be viewed here, along with the source code.
Following are some screenshots from Safari desktop responsive mode as well as iOS Simulator (note I have also tested on an actual device with same results as Simulator):
No distortion (Safari desktop responsive mode) Vertex position calculations correct, renders as expected
Distortion (Safari iOS Simulator) Vertex position calculations heavily skewed
Distortion with scene drawn to FBO (Safari iOS Simulator) Vertex position calculations slightly skewed
Additional Information:
- webvr-polyfill version:
0.10.2
- Browser name/version/release channel:
Safari, iOS 11.2
- Operating System:
iOS 11.2
[Edited to add link to demo and source code]
Thanks for filing! Seems like this could be an iOS only issue, on Android (Firefox, Chrome with WebVR disabled) it appears to be working fine. Native WebVR does not work due to Uncaught (in promise) DOMException: API can only be initiated by a user gesture.
.
I suspect there's an issue in how the polyfill handles distorting the views: https://github.com/immersive-web/cardboard-vr-display/blob/18251cfcf95e85d3f1e30c807ec5d94a9ec5b702/src/cardboard-distorter.js
I don't have any initial thoughts other than suspecting the issue is in the cardboard distorter, but would be a good place to investigate, perhaps one of the Utils.isIOS
conditionals.
Thanks for the quick response! I've been digging through cardboard-distorter
but haven't found the cause yet; I'll report back if I'm able to resolve it.