Field of view

FOV (Field-Of-View) and aspect ratio

原理

透视矩阵中我们使用topbottomleftrightnearfar来定义,但通常我们不这样做,而是使用fovaspect rationearfar来定义,但他们本质上都是一样的,像人的眼睛也是有fov,叫做视度这么一说的,顾名思义,视度越大,我们看到的事物也就越多,例如fov90就比fov60看到的多,它是视点中心到视锥左侧与视点中心到视锥右侧所张开的角度,当然这样只能计算出左右侧的,还需要一个aspect ratio(屏幕纵横比)来计算上下侧的。

计算

根据三角函数

tan(FOV2)=oppositeadjacent=BCAB=topneartop=tan(FOV2)nearbottom=top

如果我们的aspectratio(宽高比)为1的话,则

right=topleft=bottom=top

但通常我们的屏幕的宽高比都不是1:1的,如

图中右边所示,我们有公式

widthheight=righttopwidthheight=leftbottom

(宽与左右对应,高与上下对应) 则我们有

right=topaspectratioleft=bottomaspectratio

其中

aspectratio=widthheightbottom=top