《计算机图形学第七章讲义》由会员分享,可在线阅读,更多相关《计算机图形学第七章讲义(54页珍藏版)》请在金锄头文库上搜索。
1、第七章第七章 三维观察三维观察本章重点讲述内容:本章重点讲述内容:三维观察概念三维观察概念三维观察流水线三维观察流水线三维观察坐标系三维观察坐标系投影变换投影变换三维裁剪算法三维裁剪算法l在二维图形应用中,观察操作将世界平面上的点在二维图形应用中,观察操作将世界平面上的点变换到输出设备上变换到输出设备上l利用世界坐标系中的窗口和设备上的视口,二维利用世界坐标系中的窗口和设备上的视口,二维图形软件包将世界坐标系中的物体映射到设备坐图形软件包将世界坐标系中的物体映射到设备坐标系并用视口的四条边来裁剪标系并用视口的四条边来裁剪 三维物体描述必须经过三维物体描述必须经过投影到输出设备的观察投影到输出设
2、备的观察平面上。此时裁剪边界平面上。此时裁剪边界变成一个体,而非一个变成一个体,而非一个面,其形状依赖于选择面,其形状依赖于选择的投影类型的投影类型 l对三维图形应用而言,由于对视图如何产生有更对三维图形应用而言,由于对视图如何产生有更多的选择,因此涉及情况会更多多的选择,因此涉及情况会更多可以从空间中任意位置观察物体:从前面、后可以从空间中任意位置观察物体:从前面、后面、上面、下面以及从物体内部面、上面、下面以及从物体内部7.1 三维观察概念概述三维观察概念概述平行投影平行投影透视投影透视投影深度提示深度提示可见线面的标识可见线面的标识表面绘制表面绘制分解图和剖面图分解图和剖面图三维和立体视
3、图三维和立体视图(1) (1) 平行投影平行投影将物体表面上的点沿平行将物体表面上的点沿平行线投影到显示平台上线投影到显示平台上三维场景中的平行线在投三维场景中的平行线在投影到二维显示平面中后仍影到二维显示平面中后仍然是平行线然是平行线应用:工程和建筑设计应用:工程和建筑设计7.1 三维观察概念概述三维观察概念概述(2) 透视投影透视投影沿会聚路径将点投影到沿会聚路径将点投影到显示平面上显示平面上远小近大远小近大平行线投影后成会聚线平行线投影后成会聚线显示场景更加真实显示场景更加真实7.1 三维观察概念概述三维观察概念概述(3) 深度提示:深度提示:没有深度没有深度信息导致线框物体显示信息导致
4、线框物体显示二二义性。解决义性。解决方法:方法:根据离观察位置的距离改变物体的亮度根据离观察位置的距离改变物体的亮度模拟物体可视亮度的大气效果模拟物体可视亮度的大气效果7.1 三维观察概念概述三维观察概念概述(4) 可见线面的标识可见线面的标识突出可见线或以不同的颜色来显示突出可见线或以不同的颜色来显示使用虚线来显示不可见线使用虚线来显示不可见线7.1 三维观察概念概述三维观察概念概述(5) 表面绘制表面绘制根据场景中的光线条件及根据指定表面的根据场景中的光线条件及根据指定表面的特性来建立物体表面的亮度,可以获得额特性来建立物体表面的亮度,可以获得额外的显示真实性外的显示真实性物体表面的性质:
5、透明程度和表面的粗糙、物体表面的性质:透明程度和表面的粗糙、平滑程度平滑程度7.1 三维观察概念概述三维观察概念概述(6) 分解图和剖面图分解图和剖面图把物体看成多层结构,因此可以存储其内把物体看成多层结构,因此可以存储其内容细节容细节分解图和剖面图可以用来显示其内部结构分解图和剖面图可以用来显示其内部结构以及物体各组件的关系以及物体各组件的关系7.1 三维观察概念概述三维观察概念概述(7) 三维和立体视图三维和立体视图使用三维的或者使用立体的视图来显示物使用三维的或者使用立体的视图来显示物体体7.1 三维观察概念概述三维观察概念概述7.2 三维观察流水线三维观察流水线 照相机位置:确定观察位
6、置照相机位置:确定观察位置照相机方向:确定相片向上方向照相机方向:确定相片向上方向按快门:根据镜头大小,裁剪按快门:根据镜头大小,裁剪胶片成像:光线从可视表面投影到胶片胶片成像:光线从可视表面投影到胶片7.2 三维观察流水线三维观察流水线 WC观察察变换建模建模变换MC投影投影变换VC视口口变换NCDC规范化范化变换和裁剪和裁剪PC7.3 观察坐标观察坐标l观察平面和观察坐标系的确定观察平面和观察坐标系的确定观察平面:也叫投影平面观察平面:也叫投影平面观察坐标系观察坐标系 用来指定观察者的观察位置及投影平面的用来指定观察者的观察位置及投影平面的参照系参照系笛卡尔直角三维坐标系统两种形式:右右手
7、手系系统:用用右右手手握握住住z轴,大大姆姆指指指指向向z轴的的正正方方向向,其其余余四四个个手手指指从从x轴到到y轴形形成成一一个个弧弧。(Z值越越大大,越靠近越靠近视点)点)左左手手系系统:用用左左手手握握住住z轴,大大姆姆指指指指向向z轴的的正正方方向向;其其余余四四个个手手指指从从x轴到到y轴形形成成一一个个弧弧。(Z值越越大大,越越远离离视点)点)观察平面法向量:观察平面法向量: 观察变换观察变换l观察变换:观察变换: 将场景中物体的世界坐标描述变换到观察坐标的将场景中物体的世界坐标描述变换到观察坐标的变换变换l步骤步骤xwywzwxvyvzv平移平移旋旋转7.4 从世界坐标从世界坐
8、标WC到观察坐标到观察坐标VC的变换的变换M= RZ . RY . RX . TxwywzwxvyvzvxwywzwxvyvzvxwywzwxvyvzvxwywzwxvyvzvxwywzwxvyvzvTRXRYRZl为解决在二维设备上显示三维图形对为解决在二维设备上显示三维图形对象的问题,可借鉴照相机的成像过程象的问题,可借鉴照相机的成像过程在拍照时,将镜头对准所选景物,按下在拍照时,将镜头对准所选景物,按下快门,景物就被记录在二维的胶片上快门,景物就被记录在二维的胶片上l投影指的就是这种将三维物体转换为投影指的就是这种将三维物体转换为二维图形的过程。二维图形的过程。7.5 投影投影变换变换l
9、投影变换投影变换 将三维物体投影到二维观察平面上将三维物体投影到二维观察平面上7.5 投影投影变换变换7.5 投影分类投影分类l投影投影:把:把n维坐标空间点变换成小于维坐标空间点变换成小于n维维的坐标空间中点的过程的坐标空间中点的过程例如将空间中的物体投影在二维平面例如将空间中的物体投影在二维平面上,点的坐标从三维变成二维上,点的坐标从三维变成二维l投影的三要素投影的三要素投影中心投影中心投影平面投影平面投影射线投影射线 7.5 投影分类投影分类l投影分类投影分类平行投影:坐标位置沿平行线变换平行投影:坐标位置沿平行线变换到观察平面上到观察平面上透视投影:物体位置沿收敛于某点透视投影:物体位
10、置沿收敛于某点的直接变换到观察平面的直接变换到观察平面7.5 投影分类投影分类ABAB投影中心在无穷投影中心在无穷远处远处ABA B投影中心投影中心投影线投影线投影面投影面投影投影平行投影平行投影透视投影透视投影正平行投影正平行投影斜平行投影斜平行投影正投影正投影正轴测投影正轴测投影一点透视一点透视二点透视二点透视三点透视三点透视正等轴测投影正等轴测投影正二轴测投影正二轴测投影正三轴测投影正三轴测投影7.5 投影分类投影分类7.5.1 平行投影平行投影l正投正投影:投影向量垂直于观察平面影:投影向量垂直于观察平面l斜投影:不垂直斜投影:不垂直7.5.1 平行投影平行投影正投正投影影正三面投影正
11、三面投影:三视图:三视图(正视图、俯视图、侧正视图、俯视图、侧视图视图),投影平面法向量与三个坐标轴一个,投影平面法向量与三个坐标轴一个平行平行轴测正投影轴测正投影:显示物体多个侧面的正投影:显示物体多个侧面的正投影u等轴测投影等轴测投影:与每个坐标轴的交点离:与每个坐标轴的交点离原点距离相等原点距离相等7.5.1 平行投影平行投影正三面投影正三面投影主视图主视图侧视图侧视图俯视图俯视图yxzl前视图前视图 投影平面为投影平面为xy平面平面l投影变换矩阵投影变换矩阵X = XY = YZ = 07.5.1 平行投影平行投影_正投影正投影_俯视图俯视图1 0 0 00 1 0 00 0 0 00
12、 0 0 1M=7.5.1 平行投影平行投影l斜投影斜投影l投影方向与投影平面不垂直的平行投影投影方向与投影平面不垂直的平行投影l投影平面一般取坐标平面投影平面一般取坐标平面7.5.1 平行投影平行投影_斜投影斜投影 7.5.2 透视投影透视投影7.5.2 透视投影透视投影l投影中心投影中心(也叫投影参考点也叫投影参考点)COPl投影平面投影平面(也叫观察平面也叫观察平面)l投影线投影线(也叫视线也叫视线):是从投影中心发出的,是从投影中心发出的,是不平行的是不平行的l投影变换矩阵投影变换矩阵P0 :视点;:视点;S平面:投影面,屏幕画面平面:投影面,屏幕画面点点Qw的透视:的透视:P0Qw与
13、平面与平面S的交点的交点QwSY XZOP0Z2Z1Qw (Xw , Yw , Zw)Qs (Xs , Ys)XsYs Qs7.5.2 透视投影透视投影l透视投影线的方程为透视投影线的方程为:x=xxuy=yyu z=z(zzprp)u u 0,1l把把z=zvp代入方程,代入方程, 得得u=(zvp-z)/(zprp-z) 则则: xp= x*dp/(zprp-z); yp= y*dp/(zprp-z) 其中其中:dp= zprp-zvpxyzP(x,y,z)Q(0,0,zprp)P(xp,yp ,zp)投影平面z=zvp投影中心7.5.2 透视投影透视投影l投影中心投影中心Q(0,0,zp
14、rp)l投影平面投影平面zzvp 0l假设一点假设一点 P(x,y,z)lP的透视投影点的透视投影点P(xp,yp,zp)xyzP(x,y,z)投影中心Q(0,0,zprp)P(xp,yp ,zp)投影平面为uv平面z=zvp =0xp= x* zprp /(zprp-z);yp= y* zprp /(zprp-z)zp=07.5.2 透视投影透视投影l灭点灭点 一组平行线投影后收敛于一点称之为灭点。一组平行线投影后收敛于一点称之为灭点。l主灭点主灭点 物体中平行于某一坐标轴的平行线的灭点物体中平行于某一坐标轴的平行线的灭点 zxyz轴灭点轴灭点x轴灭点轴灭点7.5.2 透视投影透视投影l透视
15、投影按照主灭点数目分类透视投影按照主灭点数目分类一点透视一点透视二点透视二点透视三点透视三点透视l如何控制主灭点数目?如何控制主灭点数目? 利用投影平面的方向控制主灭点数目利用投影平面的方向控制主灭点数目7.5.2 透视投影透视投影7.5.2 透视投影透视投影l主灭点数是和投影平面切割坐标轴的数量相对应的主灭点数是和投影平面切割坐标轴的数量相对应的如投影平面仅切割如投影平面仅切割z轴,则轴,则z轴是投影平面的法线,轴是投影平面的法线,因而只在因而只在z轴上有一个灭点,平行于轴上有一个灭点,平行于x轴或轴或y轴的轴的直线也平行于投影平面,因而没有灭点。直线也平行于投影平面,因而没有灭点。zyxo
16、7.5.2 透视投影透视投影l透视投影效果透视投影效果 远小近大远小近大ld-时,时, 透视投影变为透视投影变为正平行投影正平行投影xyz(x,y,z)(xp,yp)Q(0,0,-d)7.5.2 透视投影透视投影l投影窗口投影窗口 l观察体:利用投影窗口边界来设置观察体:利用投影窗口边界来设置l观察体的作用观察体的作用对三维物体进行裁剪对三维物体进行裁剪只有在观察体内的物体才会被投影到投影只有在观察体内的物体才会被投影到投影平面窗口内显示出来平面窗口内显示出来7.6 观察体观察体l观察体类型观察体类型 无限型和有限型无限型和有限型l无限型观察体无限型观察体投影窗口投影窗口COPCOP 无穷平行
17、管道无穷平行管道 棱锥棱锥7.6 观察体观察体l有限观察体有限观察体 通过指定平行于投影平面的前、后平面来实现通过指定平行于投影平面的前、后平面来实现 作用:去掉离投影平面过近和过远的物体作用:去掉离投影平面过近和过远的物体 类型有:类型有:矩形平行六面体矩形平行六面体斜平行六面体斜平行六面体棱台棱台后平面前平面投影窗口COP7.6 观察体观察体l前后平面与观察平面的位置关系前后平面与观察平面的位置关系l观察平面位置与投影效果的关系观察平面位置与投影效果的关系正平行投影正平行投影:不受观察平面位置的影响不受观察平面位置的影响斜平行投影斜平行投影透视投影透视投影7.6 观察体观察体7.7 3D裁
18、剪裁剪l剪裁窗口剪裁窗口l剪裁的方法剪裁的方法平面方程裁剪平面方程裁剪编码裁剪编码裁剪参数方程裁剪参数方程裁剪l三维裁剪的裁剪窗口三维裁剪的裁剪窗口 是一个六面体,是一个六面体, 包括左侧面、右侧面、顶面、底面、前面和后面包括左侧面、右侧面、顶面、底面、前面和后面右面x顶面左面后面前面底面yz7.7 3D裁剪裁剪l裁剪的方法裁剪的方法平面方程裁剪平面方程裁剪编码裁剪编码裁剪参数方程裁剪参数方程裁剪7.7 3D裁剪裁剪l平面方程剪裁法平面方程剪裁法平面方程:平面方程:LXYZAx+By+Cz+D=07.7 3D裁剪裁剪l方程判断:方程判断: 将一条直线段的端点坐标代入边界平面将一条直线段的端点坐
19、标代入边界平面方程中方程中若若 AX + BY + CZ + D 0,则端点位于边界,则端点位于边界平面外平面外若若 AX + BY + CZ + D 0,则端点位于边界,则端点位于边界平面内平面内7.7 3D裁剪裁剪l裁剪原则:裁剪原则:两个端点都在某一边界平面外的线段被裁剪掉两个端点都在某一边界平面外的线段被裁剪掉两个端点都在两个端点都在所有边界平面所有边界平面内的线段被保留内的线段被保留两个端点不满足上述条件,则计算直线与边界两个端点不满足上述条件,则计算直线与边界的交点:的交点: 由直线方程和平面方程联立得到交点由直线方程和平面方程联立得到交点7.7 3D裁剪裁剪编码剪裁编码剪裁(co
20、hen-sutherland算法算法)l思想:思想: 同二维空间的直线同二维空间的直线CS裁剪算法裁剪算法 空间划分空间划分 编码:六位编码:六位7.7 3D裁剪裁剪六位区域码六位区域码 b6b5b4b3b2b1编码原则编码原则:左:左:右:右:下:下:上:上:前:前:后:后:if(xxwmax) b2=1if(yywmax) b4=1if(zzwmax) b6=17.7 3D裁剪裁剪l编码剪裁原则编码剪裁原则C1=0 & C2=0 保留保留(C1&C2) 0 删除删除(C1&C2) = 0 求解直线与边界求解直线与边界的交点的交点7.7 3D裁剪裁剪l小结:小结: 本算法与二维算法一样。本算法与二维算法一样。 优点在于简单,易于实现。优点在于简单,易于实现。 缺点:效率缺点:效率7.7 3D裁剪裁剪