作者的课程,学习地址: https://www.lanqiao.cn/courses/3314
1、照相机:
使用Three.js创建的场景是三维的,但是通常情况下显示器是二维的,所以,三维场景如何显示在二维屏幕上呢?
照相机:定义了三维空间到二维屏幕的投影方式。
不同的投影方式,照相机又分为正交投影照相机与透视投影照相机。
1.1 正交投影与透视投影
- 透视投影:使用透视投影照相机获得的结果是类似人眼在真实世界中看到的有“近大远小”的效果
- 正交投影:使用正交投影照相机获得的结果就像我们在数学几何学课上老师教我们画的效果,对于在三维空间内平行的线,投影到二维空间中也一定是平行的
- 一般说来,对于制图、建模软件通常使用正交投影,这样不会因为投影而改变物体比例;
- 对于其他大多数应用,通常使用透视投影,因为这更接近人眼的观察效果;
1.2 正交投影照相机
构造函数:THREE.OrthographicCamera(left,right,top,bottom,near,far)
- 6个参数分别代表正交投影照相机拍摄到的空间的6个面的位置,这两个面围成一个长方体,成为视景体,
- 只有在视景体内部的物体才可能显示在屏幕上,而之外的物体会在显示前辈裁剪掉
- 为了保证照相机的横竖比例,需要保证(right-left)与(top-bottom)的比例与Canvas宽度与高度的比例一致 - near与far都是指到照相机位置在深度平面的位置,而照相机不应该拍摄到其后面的物体,因此,这两个值应该均为正值。
- 为了保证场景中的物体不会因为太近或太远而被照相机忽略,一般near的值设置得较小,far值设置的较大,具体值应该视场景中物体的位置确定。