当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript Engine.setHardwareScalingLevel方法代码示例

本文整理汇总了TypeScript中@babylonjs/core/Engines/engine.Engine.setHardwareScalingLevel方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Engine.setHardwareScalingLevel方法的具体用法?TypeScript Engine.setHardwareScalingLevel怎么用?TypeScript Engine.setHardwareScalingLevel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在@babylonjs/core/Engines/engine.Engine的用法示例。


在下文中一共展示了Engine.setHardwareScalingLevel方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: function

        var initScene = function() {
            // Creates the canvas
            var renderedCanvas = document.createElement("canvas");
            renderedCanvas.className = "vjs-tech";
            videoEl.parentElement.insertBefore(renderedCanvas, videoEl);
            videoEl.style.display = "none";

            // Creates the default babylonjs scene
            var engine = new Engine(renderedCanvas, true, {
                disableWebGL2Support: settings.disableWebGL2Support
            });

            // Workaround http://localhost:8080/indexCode.html
            engine.getCaps().vertexArrayObject = false;
            var scene = new Scene(engine);

            // Set the hardware scaling level
            const scaling = Math.max(settings.hardwareScalingLevel, 1 / (window.devicePixelRatio || 4));
            engine.setHardwareScalingLevel(scaling);

            // Helps reducing the needed number of draw calls
            scene.renderTargetsEnabled = false;
            scene.clearColor = new Color4(0, 0, 0, 1);
            scene.onPointerObservable.add(function() {
                player.userActive(true);
            });

            // No need of clear or depth buffer as it is a 360 video only
            scene.autoClear = false;
            scene.autoClearDepthAndStencil = false;
            engine.setDepthBuffer(false);
            
            // Creates the 360 video
            var dome = new VideoDome("testdome", videoEl, { autoPlay: false, size: 2000 }, scene);
            dome.rotation.x = -settings.defaultCameraOrientationX;
            dome.rotation.y = -settings.defaultCameraOrientationY;

            // Create the custom vr helper if requested
            var vrHelper = new VRExperienceHelper(scene, {
                useCustomVRButton: true,
                controllerMeshes: false
            });

            // Prevent pointer lock to let the menu accessible
            vrHelper.requestPointerLockOnFullScreen = false;

            // Records VR state
            vrHelper.onEnteringVRObservable.add(() => {
                isInVRMode = true;
            });
            vrHelper.onExitingVRObservable.add(() => {
                isInVRMode = false;
                player.controls(true);
            });

            // Adapt the camera to the requested settings.
            scene.activeCamera.fov = settings.fov;

            // Adapt the video type to the requested one.
            if (settings.videoType === "stereoscopicSideBySide") {
                dome.videoMode = VideoDome.MODE_SIDEBYSIDE;
            }
            else if (settings.videoType === "stereoscopicTopBottom") {
                dome.videoMode = VideoDome.MODE_TOPBOTTOM;
            }
            else {
                // Default to monoscopicPanoramic
                dome.videoMode = VideoDome.MODE_MONOSCOPIC;
            }

            // VR Switch function.
            toggleWebVR = function() {
                if (!isInVRMode) {
                    player.controls(false);
                    vrHelper.enterVR();
                } else {
                    vrHelper.exitVR();
                }
            }

            // Resize
            window.addEventListener("resize", function() {
                engine.resize();
            });

            // And finally starts the render loop
            engine.runRenderLoop(function() {
                scene.render();
            });
        };
开发者ID:BabylonJS,项目名称:Extensions,代码行数:90,代码来源:amp-360video.ts


注:本文中的@babylonjs/core/Engines/engine.Engine.setHardwareScalingLevel方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。