Three.js的相机参数

1. fov - 视野角度(Field of View)

类型:角度值(度数,非弧度)

作用:控制垂直方向的视野范围,类似「镜头焦距」。

小值(如 20°):长焦镜头,视野窄(物体看起来大,适合特写)。

大值(如 90°):广角镜头,视野宽(物体看起来小,适合全景)。

常见值:70° 是默认推荐值,接近人眼舒适视角。

new PerspectiveCamera(20, ...); // 长焦,适合观察小物体细节
new PerspectiveCamera(120, ...); // 超广角,适合大场景或夸张透视

2. aspect - 宽高比

计算方式:画布宽度 / 画布高度(如 sizes.width / sizes.height)。

作用:避免画面拉伸或压缩,确保渲染比例正确。

错误案例:若画布宽高比为 16:9,但设置 aspect=1,正方体将显示为长方体。

动态更新:窗口 Resize 时需重新计算宽高比并更新相机:

window.addEventListener('resize', () => {
    camera.aspect = window.innerWidth / window.innerHeight;
    camera.updateProjectionMatrix(); // 必须调用!
});

3. near - 近平面

作用:相机前方最近可见距离,比这更近的物体会被裁剪(不可见)。

常见问题:若物体贴脸(如 position.y < near),会突然消失。

推荐值:0.1 或更小(根据场景尺寸调整)。

小场景(如胶囊体半径 1):near=0.1 足够。

大场景(如建筑):需适当增大(如 near=1),避免精度丢失。

4. far - 远平面

作用:相机前方最远可见距离,比这更远的物体会被裁剪。

性能影响:远平面越大,GPU 计算量越高(需渲染更远的物体)。

推荐值:刚好覆盖场景最大尺寸(如胶囊体总高度 5,设为 10 即可)。

极端错误:若 far < 物体距离,物体直接消失(比如胶囊体在 y=5,far=4 时不可见)。

5.常见错误与解决

(1)物体消失:

检查 near 和 far 是否覆盖物体的位置范围。

胶囊体底部在 y=-R,若相机 position.y 过低(如 y=0),可能导致 near > 距离。

(2)画面拉伸:

确保 aspect 始终等于画布宽高比,且调用 updateProjectionMatrix()。

(3)透视失真:

fov 过大(如 120°)会导致近大远小过于夸张,适合特效而非写实场景。

6.总结:(根据实际场景修改)

参数含义示例值(胶囊体场景)作用
fov垂直视野角度70°控制画面「宽窄」,影响透视感
aspect宽高比width/height防止画面变形
near近裁剪平面(世界单位)0.1避免过近物体被裁剪(胶囊底部至少需 near < 相机到物体的最小距离
far远裁剪平面(世界单位)100覆盖场景最大范围,平衡性能与可见性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值