摄像机控件描述
名称 | 描述 |
---|
第一视角控制器(FirstPersonControls) | 该控制器的行为类似第一视角射击游戏中的摄像机,使用键盘移动,使用鼠标移动 |
飞行控制器(FlyControls) | 飞行模拟控制器,用键盘和鼠标控制摄像机的移动 |
翻滚控制器(RollControls) | 该控制器是飞行控制器的简化版,允许绕着z轴旋转 |
轨迹球控制器(TrackBallControls) | 最常用的控制器,可以使用鼠标或者控制球来移动,平移和缩放场景。如果你使用的是OrtographicCamera,可以使用OrtographicTrack Ballcontrols,它是这个摄像机类型专用的 |
轨道控制器(OrbitControls) | 该控件可以在特定的场景中模拟轨道中的卫星,可以使用鼠标和键盘在场景中游走 |
轨迹球控制器(TrackBallControls)
- 使用TrackBallControls控制器时,现在HTML页面引入对应的JavaScript文件
<script type="text/javascript" src="../assets/libs/three/controls/TrackballControls.js"></script>
- 创建控制器,并绑定到摄像机上
var trackballControls = new THREE.TrackballControls(camera);
trackballControls.rotateSpeed = 1.0;
trackballControls.zoomSpedd = 1.0;
trackballControls.panSpeed = 1.0;
- 摄像机的位置更新
var clock = new THREE.Clock();
function render(){
var delta = clock.getDelta();
trackballControls.update(delta);
requestAnimationFrame(render);
webGLRender.render(scene,camera);
}
飞行控制器(FlyControls)
- 使用飞行控制器可以像飞行模拟器一样在场景中飞行
- 首先需要在HTML页面中加载对于的JavaScript文件
- 创建控制器并绑定到摄像机上
var flyControls = new THREE.FlyControls(camera);
flyControls.movementSpeed = 25;
flyControls.domElement = document.querySelector('#webgl-output');
flyControls.rollSpeed = Math.PI/24;
flyControls.autoForward = true;
flyControls.dragToLook = false;
- 摄像机的位置更新
第一视角控制器(FirstPersonControls)
- 通过第一视角控制器可以像第一视角射击游戏那样控制摄像机。鼠标用于控制视角,键盘用于控制移动角色
- 同样先引入对应的JavaScript文件,然后创建控制器并绑定摄像机
var fpControls = new THREE.FirstPersonControls(camera);
fpControls.lookSpeed = 0.4;
fpControls.movementSpeed = 20;
fpControls.lookVertical = true;
fpControls.constrainVertical = true;
fpControls.verticalMin = 1.0;
fpControls.verticalMax = 2.0;
fpControls.lon = -150;
fpControls.lat = 120;
- 摄像机的位置更新
轨道控制器(OrbitControls)
- 轨道控制器可以用于控制场景中的对象围绕场景中心旋转和平移
<script type="text/javaScript" asrc="../assets/libs/three/controls/OrbitControls">
</script>
...
var orbitControls = new THREE.OrbitControls(camera);
orbitControls.autoRotate = true;
...
var clock = new THREE.Clock();
function render(){
orbitControls.update(clock.getDelta());
}