,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1,第七章 三维观察,三维观察与观察流程,三维观察坐标系,投影变换,三维裁剪算法,1第七章 三维观察三维观察与观察流程,2,7,1,三维观察与观察流程,三维观察过程与使用照相机拍摄照片相类似。,观察平面,对象,定位,场景范围,成像,照相,自然景物,设置相机位置、拍摄方向、相机的正向上方向,改变相机焦距大小,胶片,三维观察,三维虚拟场景,设置三维观察坐标系,选定观察体大小,观察平面,271 三维观察与观察流程三维观察过程与使用照相机拍摄照片,3,利用计算机进行三维观察处理流程中所经过的一般过程如下:,3DVC,从应用程序得到对象的世界坐标,变换到观察坐标系,对观察空间的用户窗口进行裁剪,投影变换到,3D,规范化的视区,在图形设备上输出图形,3DWC,3DVC,3DNDC,变换到设备坐标空间,DC,3DMC,7,1,三维观察与观察流程,3利用计算机进行三维观察处理流程中所经过的一般过程如下:3D,4,7,2,三维观察坐标系,7.2.1,三维观察坐标系定义,观察坐标系的原点(称为,观察参考点,、,观察位置,或,视点,等),定义观察坐标系过程:,1.,在世界坐标系中指定观察坐标系的原点,2.,将与,观察平面,垂直的观察方向定义为观,察坐标系的 轴,3.,定义一个与观察平面法向量垂直的向量,作为,观察向上向量,V,,即 轴的正方向。,4.,计算出 轴正方向向量,形成一个,右手观察坐标系,xw,yw,zw,P0(x0,y0,z0),zview,yview,xview,在世界坐标系中定义观察坐标系,472 三维观察坐标系7.2.1三维观察坐标系定义xwyw,5,7,2,三维观察坐标系,定义观察平面,通常在观察坐标系中定义一个平面用,来作为裁剪窗口所在平面,即,观察平,面,(,或,投影平面,),。它与 垂直,用一,个标量设定观察平面在沿 轴方向,的位置 ,为从观察原点沿观察方向,到观察平面的距离,常被设置在负,方向。观察平面的方向用平面法向量,N,来定义,并与 正轴同方向。观察平面总是与 平面平行,。,定义用来确定 正向的观察向上向量,V,通常使用从世界坐标系原点到一选定点的有向线段来定义。,xw,yw,zw,P0,zview,yview,xview,观察,平面,N,观察平面及其法向量的定义,572 三维观察坐标系定义观察平面xwywzwP0zvie,6,7,2,三维观察坐标系,由于确定与,N,精确垂直的向量,V,很困难,观察函数一般要调整向量,V,的方向,即通过将其投影到观察平面上得到与观察平面法向量垂直的向量作为,V,。,在实际使用中往往将,V,定义为,(0,1,0),。,N,输入的,V,调整后的,V,uvn,观察坐标系,单位向量,n,、,v,、,u,形成了一个右手观察坐标系的轴向量。,672 三维观察坐标系 由于确定与N精确垂直的向量V,7,7,2,三维观察坐标系,7.2.2,世界坐标系向三维观察坐标系的变换,将图形对象的描述转换到观察坐标系的变换等价于将观察坐标系与世界坐标系重合的变换。设观察坐标系的原点为,P,0,(x,0,y,0,z,0,),,定义观察坐标系的单位轴向量为,u,(,u,x,,,u,y,,,u,z,)、,v,(,v,x,,,v,y,,,v,z,)、,n,(,n,x,,,n,y,,,n,z,)。则平移和旋转矩阵分别如下:,772 三维观察坐标系7.2.2 世界坐标系向三维观察坐标,8,7,3,投影变换,投影变换,是一种人们观察自然景物并以某种方式将其观察结果映射到平面介质的观察方式,投影分为两大类:,平行投影,(,parallel projection,)和,透视投影,(perspective projection),。,A,A,B,B,投影平面,投影线,A,B,A,B,投影平面,投影线,(,a,)平行投影,(,b,)透视投影,投影中心,投影中心,(投影参考点)、,投影线,、投影过程,平行投影的特点是保持了对象的,有关比例关系不变,;而透视投影会产生同样大小的物体,近大远小,的视觉效果,真实感更强。,873 投影变换投影变换是一种人们观察自然景物并以某种方式,9,7,3,投影变换,7.3.1,平行投影,平行投影可根据投影方向与投影面的夹角分为两类:,正投影,(,orthogonal projection,,或正交投影,,orthographic projection,),和,斜投影,(oblique parallel projection),。,7.3.1.1,正投影,正投影根据投影平面与坐标轴的夹角不同分为:三视图和正轴侧图,。,y,y,y,z,x,x,z,o,(,a,)三维物体,(,b,)物体的三视图,俯视图,侧视图,主视图,z,973 投影变换7.3.1 平行投影yyyzxxzo(a,10,7,3,投影变换,三视图可以,精确反映物体的尺寸、距离、角度及相互位置关系,。,正轴侧图有等轴侧、正二侧和正三侧三种。,投影平面,z,x,y,投影平面,z,x,y,(,a,)等轴侧投影,(,b,)正二侧投影,(,c,)正三侧投影,x,z,y,y,y,x,x,z,z,投影平面,x,y,z,1073 投影变换 三视图可以精确反映物体的尺寸、,11,7,3,投影变换,7.3.1.2,正投影变换,在正投影方式中通常采用投影方向,与,z,轴平行的方式,其变换公式如下:,x=x,,,y=y,z,坐标值被保存起来,用于图形消隐算,法的可见性检测等。,7.3.1.3,裁剪窗口及正投影观察体的建立,裁剪窗口被定义在观察平面上,通常观察平面是一个二维直角坐标系,原点位于左下角处,并通过设置二维坐标左下角,(x,wmin,,,y,wmin,),和右上角(,x,wmax,,,y,wmax,)顶点的位置来建立裁剪窗口,且裁剪窗口的边与观察坐标系的,x,、,y,轴平行。,(,x,y,z,),(,x,y,),z,x,y,观察平面,(,x,wmin,ywmin,),z,y,观察平面,x,(,x,wmax,ywmax,),裁剪窗口,1173 投影变换7.3.1.2 正投影变换(x,y,z),12,7,3,投影变换,定义正投影观察体,zview,裁剪窗口,无限正投影观察体的侧视图,裁剪窗口,近平面,远平面,yview,zview,xview,观察平面位于近平面之前的有限正投影观察体,7.3.1.4,正投影的规范化变换,规范化观察体:,单位立方体,、,对称立方体,,,左手系,(屏幕、规格化)。,裁剪窗口由左下角,(x,wmin,,,y,wmin,),和右上角(,x,wmax,,,y,wmax,)顶点的位置来定义,近平面的,z,坐标值为,z,near,,远平面的,z,坐标值为,z,far,。在从正投影观察体到对称规范化观察体的变换过程中,存在点,(x,wmin,,,y,wmin,,,z,near,),到(,-1,,,-1,,,-1,)及(,x,wmax,,,y,wmax,,,z,far,)到(,1,,,1,,,1,)的映射关系。,1273 投影变换定义正投影观察体 zview裁剪窗口无限,13,7,3,投影变换,(xwmin,ywmin,znear),(xwmax,ywmax,zfar),(-1,-1,-1),(1,1,1),zview,xview,yview,znorm,xnorm,ynorm,利用从窗口到规范化正方形的变换方法,计算正投影观察体的规范化变换矩阵为:,在规范化变换之后,即可进行图形的裁剪,并结合消隐、表面绘制和视区变换来生成最后的屏幕显示场景。,1373 投影变换(xwmin,ywmin,znear)(,14,7,3,投影变换,7.3.2,透视投影,1.,透视投影观察体,投影中心,裁剪窗口,投影参考点,矩形棱台观察体,远裁剪平面,近裁剪平面,裁减窗口,汇聚点在投影中心的无限矩形棱锥观察体,观察平面在近裁减平面之前的棱台透视投影观察体,1473 投影变换7.3.2 透视投影投影中心裁剪窗口投影,15,7,3,投影变换,2.,透视投影变换,y,x,z,C(xc,yc,zc),观察平面,O,P(x,y,z),P(x,y,zvp),右图为一个观察平面位于距观察坐标系原点距离为,z,vp,,投影参考点位于,C(xc,yc,zc),处的一般透视投影过程。,P,(,x,,,y,,,z,)为空间任意点,在观察平面上的投影点为,P(x,y,z,vp,),。透视投影线的参数方程如下:,x=x-(x-xc)t,,,y=y-(y-yc)t,,,z=z-(z-zc)t 0t1,在观察平面上已知,z=z,vp,,从而可求出观察平面与投影线之间交点位置的参数,t,:,t=,(,z,vp,-z,),/,(,zc-z,),x=x(zc-z,vp,)+xc,(,z,vp,-z,),/,(,zc-z,),,y=y(zc-z,vp,)+yc,(,z,vp,-z,),/,(,zc-z,),1573 投影变换2.透视投影变换yxzC(xc,yc,z,16,7,3,投影变换,一些特殊和简化的透视投影过程,如:,(1),将投影参考点限定在观察坐标系的,z,轴上,则,xc=yc=0,,可得到如下变换公式:,x=x(zc-z,vp,)/(zc-z),,,y=y(zc-z,vp,)/(zc-z),(2),将投影参考点限定在观察坐标系的原点上,则,xc=yc=zc=0,,可得到如下变换公式:,x=xz,vp,/z,,,y=yz,vp,/z,(3),若观察平面是,xoy,平面且对投影参考点的位置不加限制,则,z,vp,=0,,可得到如下变换公式:,x=,(,xzc-xcz,),/,(,zc-z,),,y=,(,yzc-ycz,),/,(,zc-z,),(4),若把,xoy,平面作为观察平面且投影参考点设定在观察坐标系的,z,轴上,则,xc=yc=z,vp,=0,,可得到如下变换公式:,x=xzc/,(,zc-z,),,y=yzc/,(,zc-z,),1673 投影变换一些特殊和简化的透视投影过程,如:,17,7,3,投影变换,常用观察体一般有两类:对称的透视投影观察体和斜透视投影棱台。,远裁剪平面,近裁剪平面,观察平面,裁剪窗口,(xc,yc,zvp),(xc,yc,zc),棱台中心线,从一个方向看的对称的透视投影观察体,1773 投影变换常用观察体一般有两类:对称的透视投影观察,18,7,3,投影变换,3.,对称的透视投影观察体,(xwmin,ywmin,zvp),高,(xc,yc,zvp),(xwmax,ywmax,zvp),裁剪窗口,投影参考点,裁剪窗口,zc-zvp,(,a,)棱台中心线位于裁剪窗口中心,(,b,)视场角与裁剪窗口高度关系,对称透视投影观察体完全可由,视场角、裁剪窗口的横纵比及从投影参考点到近和远裁剪平面的距离,来确定。裁剪窗口的左下角和右上角的坐标位置与棱台中心点及窗口的高、宽之间存在如下关系:,x,wmin,=xc-,宽度,/2,,,x,wmax,=xc+,宽度,/2,,,y,wmin,=yc-,高度,/2,,,y,wmax,=yc+,高度,/2,tg(/2)=(,高度,/2)/(zc-z,vp,),高度,=2(zc-z,vp,)tg(/2),宽度,=,横纵比,高度,1873 投影变换3.对称的透视投影观察体(xwmin,y,19,7,3,投影变换,4.,透视投影的规范化变换,在对称的透视投影观察体中透视投影变换会将棱台内部的坐标位置映射到矩形平行管道的正交投影坐标。,(xwmin,ywmin,znear),(xwmax,ywmax,zfar),(-1,-1,-1),(1,1,1),z,x,y,znorm,xnorm,ynorm,裁剪窗口,投影参考点,规范化观察体,1973 投影变换4.透视投影的规范化变换(xwmin,y,20,7,3,投影变换,由于齐次矩阵表示如下:,透视投影变换的