BabylonJS - 相机



BabylonJS 有许多可用的相机。在同一时间,场景中只有一个相机处于活动状态。

在本章中,我们将学习如何在 BabylonJS 中使用相机。

自由相机 (FreeCamera)

现在让我们看看自由相机是如何工作的。

语法

以下是自由相机的语法:

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

这是相机放置的位置 - new BABYLON.Vector3(0, 1, -15)。

更改方向将更改方向。您可以更改值并查看相机在场景中的行为。

以下是自由相机使用的参数:

  • 名称
  • 位置
  • 场景

弧形旋转相机 (ArcRotateCamera)

此相机围绕给定的目标枢轴旋转。它可以通过光标和鼠标或触摸事件进行控制。参数为名称、alpha、beta、半径和目标。

语法

var camera = new BABYLON.ArcRotateCamera("ArcRotateCamera", 1, 0.8, 10, new BABYLON.Vector3(0, 0, 0), scene);

弧形旋转相机指向 +x 方向。要更改相机的位置,请使用setPosition 属性。

camera.setPosition(new BABYLON.Vector3(0, 0, -100));

弧形旋转相机是一个非常适合动画的相机。以下命令将帮助您围绕目标旋转相机:

scene.activeCamera.alpha += .01;

触摸相机 (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)

跟随相机旨在跟随具有位置的任何场景项目。它可以从后方、前方或任何角度跟随。

语法

以下是跟随相机的语法:

var camera = new BABYLON.FollowCamera("FollowCam", new BABYLON.Vector3(0, 15, -45), scene);

虚拟摇杆相机 (VirtualJoysticksCamera)

此相机旨在对虚拟摇杆事件做出反应。虚拟摇杆是屏幕上的 2D 图形,用于控制相机或其他场景项目。

语法

以下是虚拟摇杆相机的语法:

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)

VR 设备方向自由相机以自由相机为基础,因此自由相机的属性和方法也存在于我们的 VR 设备方向自由相机中。

语法

以下是VR 设备方向自由相机的语法:

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

WebVR 自由相机 (WebVRFreeCamera)

WebVR 自由相机以自由相机为基础,因此自由相机的属性和方法也存在于我们的 WebVR 自由相机中。

语法

以下是WebVR 自由相机的语法:

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

在大多数演示中,您将看到attachControl,其中相机附加到画布。

示例

camera.attachControl(canvas, true);
广告