📅  最后修改于: 2020-10-27 03:28:39             🧑  作者: Mango
BabylonJS有许多可以使用的相机。一次,一个场景只有一个摄像机处于活动状态。
在本章中,我们将学习如何在BabylonJS中使用相机。
现在让我们看看FreeCamera的工作原理。
以下是FreeCamera的语法-
var camera = new BABYLON.FreeCamera("FreeCamera", new BABYLON.Vector3(0, 1, -15), scene);
这是相机放置的位置-new BABYLON.Vector3(0,1,-15)。
改变方向将改变方向。您可以更改值并查看相机在场景中的行为。
以下是FreeCamera使用的参数-
该摄像机围绕给定的目标枢轴旋转。可以使用光标和鼠标或触摸事件进行控制。参数是名称,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的语法-
var camera = new BABYLON.TouchCamera("TouchCamera", new BABYLON.Vector3(0, 1, -15), scene);
本相机经过专门设计,可与游戏手柄一起使用。
以下是Gamepad Camera的语法-
var camera = new BABYLON.GamepadCamera("Camera", new BABYLON.Vector3(0, 15, -45), scene);
本相机经过专门设计,可应对设备方向事件,例如向前或向后倾斜设备,向左或向右倾斜设备等。
var camera = new BABYLON.DeviceOrientationCamera("DevOr_camera", new BABYLON.Vector3(0, 1, -15), scene);
FollowCamera旨在跟随某个位置的任何场景项目。它可以从后面,前面或任何角度跟随。
以下是FollowCamera的语法-
var camera = new BABYLON.FollowCamera("FollowCam", new BABYLON.Vector3(0, 15, -45), scene);
本相机旨在对虚拟游戏杆事件做出反应。虚拟操纵杆是屏幕上的2D图形,用于控制摄像机或其他场景项目。
以下是VirtualJoysticksCamera的语法-
var camera = new BABYLON.VirtualJoysticksCamera("VJ_camera", new BABYLON.Vector3(0, 1, -15), scene);
AnaglyphCamera适用于红色和青色3D眼镜。它使用后处理过滤技术。
以下是AnaglyphArcRotateCamera的语法-
var camera = new BABYLON.AnaglyphArcRotateCamera("aar_cam", -Math.PI/2, Math.PI/4, 20, new BABYLON.Vector3.Zero(), 0.033, scene);
以下是AnaglyphFreeCamera的语法-
var camera = new BABYLON.AnaglyphFreeCamera("af_cam", new BABYLON.Vector3(0, 1, -15), 0.033, scene);
VRDeviceOrientationFreeCamera使用FreeCamera作为基础,因此FreeCamera的属性和方法也可以在我们的VRDeviceOrientationFreeCamera上找到。
以下是VRDeviceOrientationFreeCamera的语法-
var camera = new BABYLON.VRDeviceOrientationFreeCamera ("Camera", new BABYLON.Vector3 (-6.7, 1.2, -1.3), scene, 0);
WebVRFreeCamera使用FreeCamera作为基础,因此FreeCamera的属性和方法也可以在我们的WebVRFreeCamera上找到。
以下是WebVRFreeCamera的语法-
var camera = new BABYLON.WebVRFreeCamera("WVR", new BABYLON.Vector3(0, 1, -15), scene);
在大多数演示中,您将看到attachControl将相机连接到画布的位置。
camera.attachControl(canvas, true);