cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menyokong fungsi WebVR dalam Forge Viewer

Kami boleh menyemak imbas model 3D dengan menggunakan Forge Viewer Adakah Forge Viewer kini menyokong fungsi VR? Terutamanya WebVR? Bagaimana untuk menyokong?

我想大声告诉你我想大声告诉你2743 hari yang lalu742

membalas semua(1)saya akan balas

  • PHPz

    PHPz2017-05-19 10:31:33

    Bermula dari Forge Viewer versi 2.12, Extension telah ditambahkan untuk menyokong WebVR, jadi pada asasnya anda hanya perlu memanggil viewer.loadExtension("Autodesk.Viewing.webVR"). Walau bagaimanapun, memandangkan WebVR belum lagi menjadi standard W3C dan masih dalam peringkat percubaan, hanya beberapa penyemak imbas boleh menyokongnya untuk butiran, sila rujuk https://webvr.info.

    Di sini kita hanya bercakap tentang sokongan WebVR dalam Forge Viewer Memandangkan banyak penyemak imbas pada masa ini tidak menyokong WebVR secara asli, Forge Viewer juga menyediakan WebVR Polyfill untuk menyokongnya, ia boleh didapati dalam kod sumber Lihat kod berikut:

    .
    Autodesk.Viewing.Extensions.WebVR.VRExtension.prototype.load = function() {
        var self = this;
        var _vrDisplay = null;
    
        // check if browser supports webVR1.1 natively, if not, load polyfill
        avp.loadDependency('VRFrameData', 'webvr-polyfill.min.js', function() {
            navigator.getVRDisplays().then(function(displays) {
                if (displays.length > 0) {
                    _vrDisplay = displays[0];
                    if (_vrDisplay.capabilities.canPresent) {
    
                        // VR detected, add the 'VR button'
                        var viewer = self.viewer;
                        var toolbar = viewer.getToolbar(true);
                        var avu = Autodesk.Viewing.UI;
    
                        // Register tool
                        self.tool = new Autodesk.Viewing.Extensions.WebVR.VRTool(viewer, self, _vrDisplay);
                        viewer.toolController.registerTool(self.tool);
                        self.createUI(toolbar);
    
                        // Register listeners
                        self.onToolChanged = function(e) {
                            var vrToolActive = (e.toolName === 'vr') && e.active;
                            var state = vrToolActive ? avu.Button.State.ACTIVE : avu.Button.State.INACTIVE;
                            self.vrToolButton && self.vrToolButton.setState(state);
                        };
                        viewer.addEventListener(Autodesk.Viewing.TOOL_CHANGE_EVENT, self.onToolChanged);
                        return;
                    }
                }
                avp.logger.warn('Attempted to load WebVR extension, but WebVR is not supported.');
            });
        });
        return true;
    };
     
     

    balas
    0
  • Batalbalas