您的位置:首页 > 其它

3D数学 学习笔记(7) 视图、视锥、视场(Field of View)、裁切空间、屏幕空间

2017-10-31 11:56 495 查看

3D数学 学习笔记(7) 视图、视锥、视场(Field of View)、裁切空间、屏幕空间

参考书籍:

《3D数学基础:图形与游戏开发》

视图

即摄像机的画面。可对应Unity的Canvas。

指定输出窗口

窗口位置在左上像素(winPosx, winPosy),整数winResx, winResy 是以像素为单位的窗口大小。



像素纵横比

像素高对宽的比值,通常为1。pixPhys 指像素物理尺寸。devPhys是显示设备的物理高与宽比(如手机实际显示屏高宽比)。devRes是x、y方向的像素比(如640×480等)。



视锥

摄像机可见的空间体积。透视投影的话是截头椎体(frustum),正交投影是长方体。



视场(fov ,Field of View)和 缩放(Zoom)

即视锥所截的角(水平和垂直)。







通常缩放要和输出窗口对应(否则像拉伸过):

- zoom:相机的zoom值。

- winPhys:窗口物理尺寸。

- winRes:窗口以像素为单位的大小。

- pixPhys:像素的物理尺寸。

- devPhys:输出设备的物理尺寸。

- devRes:输出设备以像素为单位的大小。



裁切空间(标准视体空间,the canonicalview volume space)

4D齐次向量除于w面对应到3D向量:



计算机图形学中,缩放有视锥的形状控制,d值(距离)不重要,所以可以d=1。



空间内的点满足:



近裁切面z/w = -1,远裁切面z/w = 1。zoom是缩放值,n、f分别为近远平面距离。

OpenGL中z值范围在[-w,+w]:



DirectX中值范围在[0,w]:



在正交投影下,OpenGL和DirectX的裁切矩阵:



屏幕空间



各空间变换过程

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: