three.js—ArrayCamera使用
ArrayCamera
new THREE.ArrayCamera(Array)
创建一组相机,其参数是一个数组,数组中的每一个值都是一个THREE.Camera。可用此方法使用多个相机在不同位置拍摄场景,并分屏放置画面。效果如图,这是创建了三个相机然后在x,y,z三个方向上以相同的距离拍摄的场景中的对象。
实现过程
-
创建场景,渲染器和拍摄物体对象,可参照three.js学习
-
创建多个相机,这里我只用三个所以就直接这样创建了,如果想用很多相机,可以使用for循环生成相机。
注意:相机的第二个参数长宽比一定要和该相机的视窗长宽比相同,否则会造成拍摄画面的变形。我用的相机视窗大小为innerWidth/2×innerHeight/2,和相机的拍摄长宽比相同。//相机1 var camera1 = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 100 ); //设置视窗位置及大小 camera1.viewport=new THREE.Vector4(0,height/2,width/2,height/2 ); //设置相机位置为x轴5个单位长度 camera1.position.x=-5 //相机指向物体 camera1.lookAt(0,0,0) camera1.updateMatrixWorld(); //相机2 var camera2 = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 100 )