threejs相机辅助对象cameraHelper

为指定相机创建一个辅助对象,显示这个相机的视锥。

想要在场景里面显示相机的视锥,需要创建两个相机。

举个例子,场景中有个相机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看到的内容
相关推荐
三年模拟五年烧烤1 天前
easy-threesdk快速一键搭建threejs3d可视化场景
3d·threejs
loriloy1 天前
Three.js 光照教程 - 第四部分:Lighting详解
threejs
loriloy7 天前
Three.js 材质教程 - 第三部分:Materials详解
threejs
gis分享者7 天前
学习threejs,打造原生3D高斯溅落实时渲染器
spark·threejs·ply·高斯·splat·溅落·实时渲染器
loriloy8 天前
Three.js 几何体教程 - 第二部分:Geometry详解
javascript·threejs
军军君0116 天前
Three.js基础功能学习十一:动画与音频
前端·javascript·3d·js·threejs·三维
gis分享者16 天前
学习threejs,实现发光信息流效果
threejs·发光·shadermaterial·spheregeometry·信息流·linedashed·vector3
军军君0120 天前
Three.js基础功能学习十二:常量与核心
前端·javascript·学习·3d·threejs·three·三维
军军君011 个月前
Three.js基础功能学习七:加载器与管理器
开发语言·前端·javascript·学习·3d·threejs·三维
患得患失9491 个月前
【ThreeJS】camera-controls---高性能动画相机控制库
threejs·camera-controls