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

Augmented reality model-viewer example doesn't recognize webxr #26696

Open
jdm opened this issue May 28, 2020 · 0 comments
Open

Augmented reality model-viewer example doesn't recognize webxr #26696

jdm opened this issue May 28, 2020 · 0 comments

Comments

@jdm
Copy link
Member

jdm commented May 28, 2020

https://modelviewer.dev/examples/augmented-reality.html

Running with --pref dom.svg.enabled, I get no indication that AR is supported in servo.

Even with a user script containing:

XRSession.prototype.requestHitTestSource = function() { return new Promise(() => {}) };
XRFrame.prototype.getHitTestResults = function() { return []; }

One possible issue is that hit-test is a required feature in this code:

    async resolveARSession(scene) {
        assertIsArCandidate();
        const session = await navigator.xr.requestSession('immersive-ar', {
            requiredFeatures: ['hit-test'],
            optionalFeatures: ['dom-overlay'],
            domOverlay: {
                root: scene.element.shadowRoot.querySelector('div.annotation-container')
            }
        });
        const gl = assertContext(this.renderer.context3D);
        await gl.makeXRCompatible();
        session.updateRenderState({ baseLayer: new XRWebGLLayer(session, gl, { alpha: true }) });
        let waitForXRAnimationFrame = new Promise((resolve, _reject) => {
            session.requestAnimationFrame(() => resolve());
        });
        await waitForXRAnimationFrame;
        scene.element[$onResize](window.screen);
        const { framebuffer, framebufferWidth, framebufferHeight } = session.renderState.baseLayer;
        this.threeRenderer.setFramebuffer(framebuffer);
        this.threeRenderer.setPixelRatio(1);
        this.threeRenderer.setSize(framebufferWidth, framebufferHeight, false);
        return session;
    }

Another issue is the ARGlyph present in https://modelviewer.dev/node_modules/@google/model-viewer/dist/model-viewer.js which is an SVG element, so it's possible that the button is present in the page but it's not rendering in a meaningful way.

@atouchet atouchet changed the title augment reality model-viewer example doesn't recognize webxr Augmented reality model-viewer example doesn't recognize webxr May 28, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant