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