BabylonJS - 相机


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);

游戏手柄相机

该相机专为与游戏手柄一起使用而设计。

句法

以下是游戏手柄相机的语法 -

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);

VR设备方向免费相机

VRDeviceOrientationFreeCamera以FreeCamera为基础,因此在我们的VRDeviceOrientationFreeCamera上也能找到FreeCamera的属性和方法。

句法

以下是VRDeviceOrientationFreeCamera的语法-

var camera = new BABYLON.VRDeviceOrientationFreeCamera ("Camera", new BABYLON.Vector3 (-6.7, 1.2, -1.3), scene, 0);

WebVR免费相机

WebVRFreeCamera以FreeCamera为基础,因此在我们的WebVRFreeCamera上也能找到FreeCamera的属性和方法。

句法

以下是WebVRFreeCamera的语法-

var camera = new BABYLON.WebVRFreeCamera("WVR", new BABYLON.Vector3(0, 1, -15), scene);

在大多数演示中,您将看到将相机连接到画布的AttachControl 。

例子

camera.attachControl(canvas, true);