BabylonJS - 相机
BabylonJS 有许多相机可供使用。每次,一个场景中只有一个相机处于活动状态。
在本章中,我们将学习如何在 BabylonJS 中使用相机。
FreeCamera
现在让我们看看 FreeCamera 的工作原理。
语法
以下是 FreeCamera 的语法 −
var camera = new BABYLON.FreeCamera("FreeCamera", new BABYLON.Vector3(0, 1, -15), scene);
这是放置相机的位置 - new BABYLON.Vector3(0, 1, -15)。
改变方向将改变方向。您可以更改值并查看相机在场景中的行为。
以下是 FreeCamera 使用的参数 −
- 名称
- 位置
- 场景
ArcRotateCamera
此相机围绕给定的目标枢轴旋转。它可以通过光标和鼠标或触摸事件进行控制。参数包括名称、alpha、beta、半径和目标。
语法
var camera = new BABYLON.ArcRotateCamera("ArcRotateCamera", 1, 0.8, 10, new BABYLON.Vector3(0, 0, 0), scene);
ArcRotateCamera 指向 +x 方向。要更改相机的位置,请使用 setPosition 属性。
camera.setPosition(new BABYLON.Vector3(0, 0, -100));
ArcRotateCamera 是一款出色的动画相机。以下命令将帮助您围绕目标旋转相机 −
scene.activeCamera.alpha += .01;
TouchCamera
触摸是一种"手势"。它可以在平板或屏幕上,用手指、触控笔、手套、脚或激光笔。任何可以感知到的动作……都可以被视为手势。
语法
以下是 TouchCamera 的语法 −
var camera = new BABYLON.TouchCamera("TouchCamera", new BABYLON.Vector3(0, 1, -15), scene);
GamepadCamera
此相机专为与游戏手柄配合使用而设计。
语法
以下是游戏手柄相机的语法 −
var camera = new BABYLON.GamepadCamera("Camera", new BABYLON.Vector3(0, 15, -45), scene);
DeviceOrientationCamera
此相机专门设计用于对设备方向事件做出反应,例如当您向前或向后、向左或向右倾斜设备时等。
语法
var camera = new BABYLON.DeviceOrientationCamera("DevOr_camera", new BABYLON.Vector3(0, 1, -15), scene);
FollowCamera
FollowCamera 旨在跟随任何具有位置的场景项目。它可以从后方、前方或任何角度跟随。
语法
以下是 FollowCamera 的语法 −
var camera = new BABYLON.FollowCamera("FollowCam", new BABYLON.Vector3(0, 15, -45), scene);
VirtualJoysticksCamera
此相机旨在对虚拟操纵杆事件做出反应。虚拟操纵杆是屏幕上的 2D 图形,用于控制相机或其他场景项目。
语法
以下是 VirtualJoysticksCamera 的语法 −
var camera = new BABYLON.VirtualJoysticksCamera("VJ_camera", new BABYLON.Vector3(0, 1, -15), scene);
AnaglyphCamera
AnaglyphCamera 适用于红色和青色 3D 眼镜。它使用后处理过滤技术。
AnaglyphArcRotateCamera
以下是 AnaglyphArcRotateCamera 的语法 −
var camera = new BABYLON.AnaglyphArcRotateCamera("aar_cam", -Math.PI/2, Math.PI/4, 20, new BABYLON.Vector3.Zero(), 0.033, scene);
AnaglyphFreeCamera
以下是 AnaglyphFreeCamera 的语法 −
var camera = new BABYLON.AnaglyphFreeCamera("af_cam", new BABYLON.Vector3(0, 1, -15), 0.033, scene);
VRDeviceOrientationFreeCamera
VRDeviceOrientationFreeCamera 使用 FreeCamera 作为基础,因此 FreeCamera 的属性和方法也可以在我们的 VRDeviceOrientationFreeCamera 上找到。
语法
以下是 VRDeviceOrientationFreeCamera 的语法 −
var camera = new BABYLON.VRDeviceOrientationFreeCamera ("Camera", new BABYLON.Vector3 (-6.7, 1.2, -1.3), scene, 0);
WebVRFreeCamera
WebVRFreeCamera 使用 FreeCamera 作为基础,因此 FreeCamera 的属性和方法也可以在我们的 WebVRFreeCamera 上找到。
语法
以下是 WebVRFreeCamera 的语法 −
var camera = new BABYLON.WebVRFreeCamera("WVR", new BABYLON.Vector3(0, 1, -15), scene);
在大多数演示中,您会看到 attachControl 将相机附加到画布上。
示例
camera.attachControl(canvas, true);