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