three中相机

相机这个概念在htree中非常的重要,它分为透视相机和正交相机

透视相机:

特点: 模拟人的眼睛或则是真实相机的视觉效果,近大远小

使用场景: 适用于大多数的3D场景(比如 游戏、建筑等)

主要参数:

  • 视野角度(fov): 垂直方向的可视范围,简单可以理解为 手机拍照里面的广角的角度,广角视野会更多
  • 宽高比(aspect): 一般都是为画布的宽高比(写程序的话就是屏幕的宽高比)
  • 近/远 剪切平面(near/far): 它这个是一个距离,远剪切距离要比近剪切平面 要大,可能理解比较困难,先记住,超出这个范围之内的物体都会被裁掉,不可见

正交相机

特点: 相当于模拟人的眼睛透视效果,场景比较逼真,近大远小

使用场景: 一般用于2D场景

要参数:

  • 定义椎体边界: left / right /top / bottom
  • 近/远剪切平面: near / far

通过辅助相机来看看效果

我们可以通过 CameraHelper这个类来帮助我们理解相关概念,这个类是专门用来辅助我们理解相机的

csharp 复制代码
const camera2 = new THREE.PerspectiveCamera(20, 16 / 9, 100, 300);
const cameraHelper = new THREE.CameraHelper(camera2);
scene.add(cameraHelper);
const gui = new GUI();
function onChange() {
    camera2.updateProjectionMatrix();
    cameraHelper.update();
}
gui.add(camera2, 'fov', [10, 20, 30, 40, 50]).name('fov:角度').onChange(onChange);
gui.add(camera2, 'aspect', {
    '16/9': 16 / 9,
    '4/3': 4 / 3,
    '1/1': 1 / 1,
}).name('aspect:宽高比').onChange(onChange);
gui.add(camera2, 'near', 0, 300).name('near:近截面距离').onChange(onChange);
gui.add(camera2, 'far', 300, 800).name('far:远截面距离').onChange(onChange);

fov参数的改变

fov相当于就是视野的角度,相关与普通相机与广角相机的区别,通过fov的角度的改变,可以看到的东西大小不一样

aspect的参数改变

主要是改变画布那边,也就是切面的比例

near/far的参数改变

其实就是切面离开眼睛(相机)的距离

最后交单了解下正交相机的参数调整效果

这个用的不多,有个感官的认识即可

相关推荐
白鳯2 天前
塔罗神谕:星月神域莱诺薇为您占卜
react·web·three.js·codex·deepseek·vibe coding·塔罗占卜
李剑一6 天前
耗时 2 小时!我复刻了全网超火的通透 3D 水晶球动效,Vue3+Three.js 做出高级视觉特效
前端·three.js
时光足迹7 天前
ThreeJS之GUI控制器
前端·javascript·three.js
李剑一7 天前
别再写死静态文字了!Vue3+Three.js 实现超酷3D流光旋转文字科技感拉满!【附完整源码】
three.js
爱看书的小沐8 天前
【小沐学WebGIS】基于Cesium.JS与jsbsim联动三维飞行仿真(OpenGL、Cesium.js、Three.js)
c++·qt·three.js·opengl·cesium·jsbsim
爱看书的小沐9 天前
【小沐杂货铺】基于Three.js绘制三维艺术画廊3DArtGallery (Three.js,WebGL)
javascript·3d·webgl·three.js·babylon.js·三维画廊
郝学胜-神的一滴9 天前
[简化版 GAMES 101] 计算机图形学 07:图形学投影完全推导
c++·unity·图形渲染·three.js·unreal engine
CAE虚拟与现实10 天前
五一假期闲来无事,来个前段、后端的说明吧
前端·后端·vtk·three.js·前后端
郝学胜-神的一滴11 天前
罗德里格斯旋转公式(Rodrigues‘ Rotation Formula)完整推导
c++·unity·godot·图形渲染·three.js·unreal
柳杉15 天前
有了大屏设计稿还不够,我又用 gpt-image-2把里面的素材扒了出来
前端·three.js·数据可视化