本文整理匯總了TypeScript中@babylonjs/core/Engines/engine.Engine類的典型用法代碼示例。如果您正苦於以下問題:TypeScript Engine類的具體用法?TypeScript Engine怎麽用?TypeScript Engine使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Engine類的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的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();
});
};
示例2: Engine
import { Engine } from "@babylonjs/core/Engines/engine";
import { Scene } from "@babylonjs/core/scene";
import { Vector3 } from "@babylonjs/core/Maths/math";
import { FreeCamera } from "@babylonjs/core/Cameras/freeCamera";
import { HemisphericLight } from "@babylonjs/core/Lights/hemisphericLight";
import { Mesh } from "@babylonjs/core/Meshes/mesh";
import { GridMaterial } from "@babylonjs/materials/grid/gridMaterial";
import "@babylonjs/core/Meshes/Builders/boxBuilder";
import "@babylonjs/core/Meshes/Builders/sphereBuilder";
const canvas = document.getElementById("renderCanvas") as HTMLCanvasElement;
const engine = new Engine(canvas);
var scene = new Scene(engine);
// This creates and positions a free camera (non-mesh)
var camera = new FreeCamera("camera1", new Vector3(0, 5, -10), scene);
// This targets the camera to scene origin
camera.setTarget(Vector3.Zero());
// This attaches the camera to the canvas
camera.attachControl(canvas, true);
// This creates a light, aiming 0,1,0 - to the sky (non-mesh)
var light = new HemisphericLight("light1", new Vector3(0, 1, 0), scene);
// Default intensity is 1. Let's dim the light a small amount
light.intensity = 0.7;