為指定相機創建一個輔助對象,顯示這個相機的視錐。
想要在場景里面顯示相機的視錐,需要創建兩個相機。
舉個例子,場景中有個相機A,想要顯示相機A的視錐,那么需要一個相機B,把B放在A的后面,兩個相機的方向相同,那么B就能看到A以及A看到的畫面。此時CameraHelper作用在A上,但OrbitControls控制B,那么場景中看到的就是B看到的畫面。
// 需要顯示視錐的相機A
cameraA = new THREE.PerspectiveCamera(83, window.innerWidth / window.innerHeight, 0.1, 1000);
cameraA.position.set(0, 0, 5);
cameraA.lookAt(0, 0, 0);// 相機輔助對象,顯示相機A的視錐
cameraHelper = new THREE.CameraHelper(cameraA)
scene.add(cameraHelper)// 渲染畫面的相機B
cameraB = new THREE.PerspectiveCamera(90, window.innerWidth / window.innerHeight, 0.1, 1000); // fov可以比cameraA大一些,看到的范圍更廣
cameraB.position.set(0, 0, 7); // 位置在cameraA的后面 // orbitControls控制cameraB
orbitControls = new OrbitControls(cameraB, renderer.domElement);
orbitControls.target.set(0, 0, 0); // 方向和cameraA保持一致...
// 在每一幀渲染動畫里面
orbitControls.update();
cameraHelper.update()
renderer.render(scene, cameraB); // 畫面渲染的是相機B看到的內容