chpter2图形系统2.3摄像机及几何管线

概述:

摄像机模型实际上是一个金字塔形的视景体,有近,远,左,右,上,下六个面。

几何管线是图形管线的一个部分,它的主要任务是变换,裁减和剔除。

变换包括世界变换,视点变换,裁减变换,透视除法,视口变换,窗口变换。

裁减是指对于与视景体相交的物体,计算物体与平面的交点,并返回新的物体点集。

剔除是指去掉完全位于视景体之外的物体以及背面剔除。

一,摄像机模型。

此为俯视图:

此为侧视图:

视景体近平面的四个顶点分别为:

视景体远平面的四个顶点分别为:

近平面的法向量为 D,平面上一点为 。因此近平面的方程为:

  即   

远平面的法向量为 ,平面上一点为 。因此远平面方程为:

   即

垂直于左平面的向量可由平面上两个向量叉乘求得,

由此可求得左平面法向量为:

因此,左平面的方程为:

类似的,可求得右平面方程为:

底平面和顶平面方程分别为:

二,视景体的参数。

只需四个参数就可以确定一个视景体。这四个参数分别为:

其中, 称为视野角,表示眼镜所能看到的最上方和最下方的平面之间的夹角。

为近平面的宽高比。

由这四个参数出发,可推得视景体的其他参数(参考摄像机模型图):

三,视口区的坐标。

视口是包含投影后的点的一个平面,其上点的坐标称为视口坐标。

完整的视口坐标在[0,1] 区间内,更小的视口可由 确定,这四个参数均在0 1 之间。 d 的取值范围是 ,标准化为[0,1] 。有时是比 [0,1] 更小的区间。

四,几何管线流程

1 物体空间。(或模型空间)

就是建模时所采用的空间,不同的模型采用的坐标系的手性和朝向有所差异,需具体对待。

2 ,世界空间。

所有的模型都会被放置在世界空间中,世界空间只有一个。

在将物体放置到世界空间中时应考虑三个问题:

1. 位置

2. 方位

3. 缩放比例

由物体空间变换到世界空间通过世界矩阵完成。世界矩阵的求法有两种,一种是通过各种变换矩阵的组合,另一种是通过两个空间中的点来计算。例如:

物体空间的点为Q ,对应的世界空间中的点位 P ,则

                      MQ=P

因此,               M=

世界变换的齐次矩阵形式和逆变换形式分别为:

3 视空间(眼空间,摄像机空间)

视点变换及其逆变换的齐次矩阵形式分别为:

其中,

注意!!!!由于Q 中坐标轴的排列顺序颠倒,因此该视点变换将右手系的世界空间变换为左手系的眼空间,眼空间是左手系!!!!!!因此,眼空间中点的坐标是( r,u,d)!!! 这样做是为了和 Direct3D 统一。如果是 OpenGL ,则是 因此要格外谨慎~~~~~

4,裁减空间(投影空间,归一化空间)

裁减变换的目的有三:为归一化做必要的变量准备;为透视投影做必要的变量准备;为裁减和剔除作必要的变量准备。

裁减变换的方程如下:

该公式利用了相似三角形原理。

上式中括号里减号项是为了将视平面中心线移到d 轴上,以使其对称。

透视除法完成后视景体内的点满足

这样便将r,u 坐标归一化为 [-1,1]. 归一化既方便了接下来的变换,又方便了裁减判断。

而对于d 的处理则稍微麻烦一些。 d 的初始范围是 现要将其变换至[-1,1]

变换 虽然可以完成上述变换但并不符合投影变换的规律。

因为投影变换是一个非线性的变换,而上述方程是一个线性方程,因此必须采用其他的变换方程。

回顾本书P36 的内容可知,方程

满足透视投影的特点,它是一个非线性的方程,且取值范围是[0,1]

其中的s 满足:

   s [0,1]

因此, 可以作为深度值的参考值,因为它蕴含了透视投影的非线性规律。

定义

这样透视除法后,

传说中的裁减变换及其逆变换的齐次矩阵形式分别如下:

5. 归一化设备坐标和窗口空间

作一次透视除法即可得到归一化设备坐标:

归一化设备坐标的特点是

注意!!!!此处遵循的惯例与Direct3D 相同,在 OpenGL 中, 需多加注意!!!!

由归一化设备坐标变换为窗口坐标需要进行两步变换:视口变换和窗口映射。

由于归一化设备坐标的特点,使得这两步变换变得非常容易( 可以通过矩阵变换,也可以通过成比例计算),唯一需要注意的是进行手性的变换,因为归一化设备坐标 u 轴朝上,而窗口坐标 y 轴(与 u 对应)朝下。

变换方程如下:

归一化设备坐标到窗口坐标变换的齐次矩阵形式为:

几何管线综述:

猜你喜欢

转载自blog.csdn.net/huazai434/article/details/5754025
今日推荐