Three.js与计算机图形学(三)

Three.js中的3d场景(scene)为无限大的,我们当然不可能去获取无限大的信息,在Three.js中封装了一个相机(Camera)的概念,它作为场景的观察者,获取有限的指定参数范围内的信息。

相机分为两种:

    1. [endif]正投影相机(THREE.OrthographicCamera)

    2. [endif]透视相机(THREE.PerspectiveCamera)


上图是正投影相机的取景范围,相机只会取立方体场景以内的信息,以外的不会抓取的,正投影的相机的特点是视线都是平行的,同样绝对大小的物体不会因为距离的远近而投影的大小不一,常用于工程建模。


上图是透视相机的取景范围,同样相机只会抓取立方体以内场景的信息,透视相机的特点的所有的视线都会相较于相机所在的位置,所以它会有远小近大的特点,类似真实世界的投影成像。

不管是正投影相机还是透视相近都继承于相机类,所以相机类中包含着一些两者公有的属性,想要获取一块需求的场景并通过一定的投影规则成像在浏览器上就必须有如下信息:

    1. [endif]相机的位置(position),首先相机的位置决定观察者所处于的位置。

    2. [endif]相机的视点(lookAt),相机的位置确定后,视点就决定了相机观察的方向,position与lookAt的连线的矢量是视线的正方面。

    3. [endif]实例化相机时的参数,参数决定近平面远平面夹角之类的信息,至此就可以在场景Scene中通过相机的位置(position),视点(lookAt)和实例化参数确定一块空间,并获取信息。

    4. [endif]相机的上方向(up),空间是没有上下左右,甚至东南西北的概念的,当我们获取了一块空间时,需要去定义空间的哪个方向为上才能成功的投影在浏览器上。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文主要是讲解 Three.js 的相关概念,帮助大家对 Three.js 以及相关知识形成比较完整的理解。今年来...
    Simon王小白阅读 8,505评论 2 9
  • function init() { function test1 () { // 第一...
    依米花1993阅读 1,079评论 0 1
  • 看完阳光姐妹淘 我不知道该讲什么 只是觉得时间会改变很多 年少的喜欢,青春的小心思,多年后想来还是很甜 迎着和煦春...
    可爱蛋黄派阅读 155评论 0 1
  • 胡学敏 信阳 焦点网络初级13期坚持分享第273天(2019.1.27星期日) 各位家长大家好,为了一个共同的目的...
    胡涂涂tutu阅读 191评论 0 4
  • 管理中的激励因素和保健因素----赫茨伯格的双因素论 很多公司特别喜欢给员工做激励、培训,通过不断...
    橙子的小字屋阅读 704评论 0 0