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看到的内容
相关推荐
魂断蓝桥66610 小时前
如何基于three.js(webgl)引擎架构,实现3D密集架库房,3D档案室智能巡检
webgl·threejs·3d建筑·3d档案室·3d定位、三维室内定位、3d建筑·3d库房·3d密集架
gis分享者4 天前
学习threejs,交互式神经网络可视化
神经网络·可视化·threejs·filmpass·effectcomposer·unrealbloompass·outputpass
qq_5895681010 天前
threejs顶点UV坐标、纹理贴图
threejs·uv
WebGIS开发12 天前
Three.js搭建小米SU7三维汽车实战(2)场景搭建
开发语言·javascript·汽车·threejs
qq_5895681013 天前
threejs模型对象、材质
threejs
gis分享者18 天前
学习threejs,使用Physijs物理引擎,使用DOFConstraint自由度约束,模拟小车移动
汽车·threejs·物理·physijs·physi·dofconstraint
gis分享者24 天前
学习threejs,使用Physijs物理引擎,通过控制重力,实现多米诺骨牌效果
threejs·碰撞·物理·physijs·physi·多米诺
gis分享者1 个月前
学习threejs,使用Physijs物理引擎,加载各种几何体网格对象
threejs·shape·物理·physijs·physi·几何体
MossGrower1 个月前
65.Three.js案例-使用 MeshNormalMaterial 和 MeshDepthMaterial 创建 3D 图形
javascript·threejs·spheregeometry·torusknotgeome
醉书生ꦿ℘゜এ1 个月前
threejs学习002-场景中添加几何体
javascript·vue.js·学习·threejs