当前位置: 首页 > article >正文

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看到的内容


http://www.kler.cn/a/428287.html

相关文章:

  • 数据结构与算法再探(六)动态规划
  • Mono里运行C#脚本36—加载C#类定义的成员变量和方法的数量
  • 飞牛NAS新增虚拟机功能,如果使用虚拟机网卡直通安装ikuai软路由(如何解决OVS网桥绑定失败以及打开ovs后无法访问飞牛nas等问题)
  • Unity git版本管理
  • Vue入门(Vue基本语法、axios、组件、事件分发)
  • 【Matlab高端绘图SCI绘图模板】第05期 绘制高阶折线图
  • 【linux】cgroup配置在机器OOM时选择进程原理讲解
  • 视频监控中使用usb摄像头(MJPG)代替OV5640
  • Shell 流程控制
  • python中什么叫做脚本
  • 前端下载文件后,文件损坏,无法打开?
  • 05 在 Linux 使用 AXI DMA
  • 【模电】【补充】稳幅电路分析
  • 集合ArrayList
  • 基于Spring Boot和Vue的人脸识别项目(源码)
  • 重生之我在21世纪学C++—循环语句
  • 分布式数据库(一)
  • linux安装nodejs管理器,并配置node、npm 软链接
  • 2025台球展(壹肆柒·中国国际台球产业博览会)3月举办
  • 深入理解 Spring MVC 中的 @RequestBody 注解
  • 免费下载 | 2024数据资源入表年度发展报告
  • 400G智算网络助力知名自动驾驶企业算力训练提效
  • 关于springBoot+vue项目中配置SSL证书问题
  • JavaScrip面向对象-构造器和对象原型
  • Java使用Word模板导出PDF及PDF盖章
  • CSRF跨站请求伪造