
- BabylonJS 教程
- BabylonJS - 首頁
- BabylonJS - 簡介
- BabylonJS - 環境設定
- BabylonJS - 概述
- BabylonJS - 基本元素
- BabylonJS - 材質
- BabylonJS - 動畫
- BabylonJS - 相機
- BabylonJS - 光源
- BabylonJS - 引數化形狀
- BabylonJS - 網格
- 向量位置和旋轉
- BabylonJS - 貼花
- BabylonJS - Curve3
- BabylonJS - 動態紋理
- BabylonJS - 視差貼圖
- BabylonJS - 鏡頭光暈
- BabylonJS - 建立螢幕截圖
- BabylonJS - 反射探針
- 標準渲染管線
- BabylonJS - ShaderMaterial
- BabylonJS - 骨骼和骨架
- BabylonJS - 物理引擎
- BabylonJS - 播放聲音和音樂
- BabylonJS 有用資源
- BabylonJS - 快速指南
- BabylonJS - 有用資源
- BabylonJS - 討論
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);