threejs (二) 相机

编程入门 行业动态 更新时间:2024-10-11 01:16:02

threejs (二) <a href=https://www.elefans.com/category/jswz/34/1768004.html style=相机"/>

threejs (二) 相机

正交相机

const camera = new THREE.OrthographicCamera(-aspect,aspect,aspect,-aspect,0.1, //进平面1000 //远平面); // 透视相机

创建相机辅助线

const cameraHelper = new THREE.CameraHelper(this.camera);


创建一个透视相机观察正交相机

 // 创建透视相机const watchCamera = new THREE.PerspectiveCamera(75,this.width / this.height);// 在正交投影后,距离人眼更近watchCamera.position.set(2, 2, 6);watchCamera.lookAt(this.scene.position);this.scene.add(watchCamera);this.camera = watchCamera;this.watchCamera = watchCamera;

上面的

GUI调试相机参数:dat.gui
可以配置设置对象的属性:可以是numberboolean类型和方法类型,点击gui插件方法名称时,会执行改方法
npm install --save dat.gui

import * as dat from 'dat.gui';
...,
const gui = new dat.GUI();let params = {wireframe: false,switchCamera: () => {if (this.camera.type === 'OrthographicCamera') {this.camera = this.watchCamera;// 鼠标控制拖动开启this.orbitControls.enabled = true;} else {this.camera = this.otherCamera;this.orbitControls.enabled = false;}},};gui.add(this.camera.position, 'x', 0.1, 10, 0.1);gui.add(this.camera, 'near', 0.01, 10, 0.01).onChange((val) => {this.camera.near = val;// 矩阵更新函数this.camera.updateProjectionMatrix();});gui.add(this.camera, 'far', 1, 100, 1).onChange((val) => {this.camera.far = val;// 矩阵更新函数this.camera.updateProjectionMatrix();});gui.add(this.camera, 'zoom', 0.1, 10, 0.1).onChange((val) => {this.camera.zoom = val;// 矩阵更新函数this.camera.updateProjectionMatrix();});gui.add(params, 'wireframe').onChange((val) => {this.mesh.material.wireframe = val;});gui.add(params, 'switchCamera');

透视相机

更多推荐

threejs (二) 相机

本文发布于:2023-11-16 02:21:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1611615.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:相机   threejs

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!