《课程内容进展 (2).ppt》由会员分享,可在线阅读,更多相关《课程内容进展 (2).ppt(99页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程内容进展课程内容进展综述综述几何变换几何变换观察流水线观察流水线 裁剪裁剪基本图元基本图元曲线曲面曲线曲面 实体造型实体造型可见面判别可见面判别 光照光照 面绘制面绘制UI 动画动画 建模建模 观察观察 显示显示其它其它图形学图形学和和图形系统图形系统坐标系统坐标系统第四讲第四讲 二维观察和三维观察二维观察和三维观察Two-Dimensional ViewingThree-Dimensional Viewing第四讲主要内容第四讲主要内容l二维观察二维观察lOpenGL二维观察相关函数二维观察相关函数l二维裁剪二维裁剪l三维空间的观察过程三维空间的观察过程l投影投影lOpenGL三维观察和
2、裁剪相关函数三维观察和裁剪相关函数l三维裁剪三维裁剪第四讲第四讲小结小结l二维观察流水线二维观察流水线几种坐标系之间的关系几种坐标系之间的关系裁剪窗口到视口的变换方法裁剪窗口到视口的变换方法l矩形窗口的线段裁剪算法矩形窗口的线段裁剪算法l矩形窗口的多边形裁剪算法矩形窗口的多边形裁剪算法l投影分类:投影分类:正平行、斜平行正平行、斜平行对称透视、斜透视对称透视、斜透视l理解理解各类投影变换的推导及其相互关系各类投影变换的推导及其相互关系l理解理解三维空间的观察变换过程三维空间的观察变换过程练习题练习题l编程:实现矩形窗口或多边形窗口删除功能。编程:实现矩形窗口或多边形窗口删除功能。l编程:用编程
3、:用OpenGL实现任意长方体的线框模型显示,并通过键盘控制视实现任意长方体的线框模型显示,并通过键盘控制视点的移动(左右远近)来实现观察效果的改变。点的移动(左右远近)来实现观察效果的改变。l设世界坐标系下设世界坐标系下Window由由(200,300)和和(500,800)两点给出,规范化两点给出,规范化设备坐标系下设备坐标系下Viewport 由由(0.1,0.1)和和(0.7,0.4)两点给出,屏幕分辨两点给出,屏幕分辨率为率为1024 x 768,屏幕上屏幕上(240,600)对应于对应于Window中哪一坐标位置的点中哪一坐标位置的点?World Coordinate Normal
4、ized Device Coordinate Screen Coordinate10237670End of End of 第四讲第四讲二维观察二维观察l基本概念基本概念l二维观察流水线二维观察流水线l关键的几何变换关键的几何变换基本概念基本概念显示器屏幕程序窗口l裁剪窗口:裁剪窗口:二维场二维场景景(观察坐标系或世界坐标系)中要显示中要显示的部分的部分 矩形或其它矩形或其它矩形或其它矩形或其它l视口:视口:在输出设备在输出设备上进行观察的位置上进行观察的位置 矩形或其它矩形或其它矩形或其它矩形或其它裁剪窗口视口范围二维观察变换流水线二维观察变换流水线建模建模变换变换观察观察变换变换规范化规范
5、化和视口和视口变换变换工作站工作站 变换变换MCWCVCNDCDC建建模模坐坐标标系系世世界界坐坐标标系系观观察察坐坐标标系系规规范范化化设设备备坐坐标标系系(1)二维坐标系变换二维坐标系变换(2)裁剪裁剪(3)裁剪后的场景映射到规范化视口裁剪后的场景映射到规范化视口设设备备坐坐标标系系流水线流水线step1直接在世界直接在世界坐标系下变坐标系下变换和裁剪换和裁剪定义观察坐标系定义观察坐标系下的裁剪窗口下的裁剪窗口WCxWCyWCxWCyWCxWCyVCyVCx流水线流水线step2裁剪窗口裁剪窗口规范化视口规范化视口工作站工作站变换变换裁剪窗口到视口的变换裁剪窗口到视口的变换裁剪窗口裁剪窗口
6、规范化视口规范化视口裁剪窗口到视口的裁剪窗口到视口的复合变换矩阵复合变换矩阵l平移平移l缩放缩放l平移平移1 0 -xwwmin0 1 -ywwmin0 0 1Sx 0 00 Sy 00 0 11 0 xv vmin0 1 yv vmin0 0 1T1=S=T2=T2.S.T1/投影模式投影模式glMatrixMode(GL_PROJECTION/GL_MODELVIEW);glLoadIdentity();/视口位置和尺寸(相对于程序窗口)视口位置和尺寸(相对于程序窗口)glViewport(x,y,width,height);/裁剪窗口函数裁剪窗口函数gluOrtho2D(xmin,xma
7、x,ymin,ymax);OpenGLOpenGL几个关键的二维观察函数几个关键的二维观察函数显示器屏幕视口范围Opengl程序窗口二维投影面范围xmax,ymaxxmin,ymin二维裁剪二维裁剪l基本概念基本概念l裁剪方法裁剪方法点点线段线段多边形多边形曲线曲线文字文字裁剪的相关概念裁剪的相关概念l裁剪:裁剪:消除指定区域内(外)的图形部分消除指定区域内(外)的图形部分l“指定区域指定区域”的的边界类型:边界类型:矩形矩形多边形多边形圆圆其它曲线其它曲线l裁剪对象:裁剪对象:点,点,线,线,区域,区域,曲线,曲线,文字文字l l假设裁剪区域为正则矩形假设裁剪区域为正则矩形假设裁剪区域为正则
8、矩形假设裁剪区域为正则矩形点的裁剪点的裁剪lP(x,y)lW(xwmin,xwmax,ywmin,ywmax)则,则,P点保留(显示)点保留(显示)否则,否则,P点被裁剪(不显示)点被裁剪(不显示)满足:满足:线段的裁剪线段的裁剪lCohen-Sutherland Cohen-Sutherland 算法算法(CS)(CS)l中点分割中点分割裁剪法裁剪法lCyrus-BeckCyrus-Beck方法方法(CB)(CB)l梁友栋梁友栋-BarskyBarsky 算法算法(梁梁B)B)lNicholl-Lee-NichollNicholl-Lee-Nicholl 裁剪法裁剪法(NLN)(NLN)l非
9、矩形窗口的裁剪非矩形窗口的裁剪Cohen-Sutherland Cohen-Sutherland 算法算法lW(xmin,xmax,ymin,ymax)l点点p(x,y)的二进区域码的二进区域码f(p)=(TBRL)if yymax 则:则:T=1,否则:,否则:T=0if yxmax 则:则:R=1,否则:,否则:R=0if xxmin 则:则:L=1,否则:,否则:L=01001 1000 10100001 0000 00100101 0100 0110l因此,对于线段因此,对于线段(p1,p2),有:,有:如果如果f(pf(p1 1)=f(p)=f(p2 2)=(0000)=(0000)
10、线段完全保留线段完全保留如果如果f(pf(p1 1)&f(p)&f(p2 2)(0000)0000)线段完全舍弃线段完全舍弃 其它情况其它情况其它情况其它情况:需进一步判断和裁剪需进一步判断和裁剪Cohen-Sutherland 算法求交算法求交l假定一个和窗口边界求交的假定一个和窗口边界求交的顺序:顺序:左、右、下、上左、右、下、上l通过判断两个端点的区域码通过判断两个端点的区域码在同一位上的值,可知和当在同一位上的值,可知和当前边界有没有交点,并求之前边界有没有交点,并求之l舍弃窗口外的部分舍弃窗口外的部分l余下子线段继续求交余下子线段继续求交中点分割裁剪中点分割裁剪l中点分割算法将中点分
11、割算法将Cohen_Sutherland算法中算法中求线段与窗口边界交点求线段与窗口边界交点的过程的过程用折半查找用折半查找的方法的方法来代替。来代替。l相当于相当于Cohen_Sutherland算法的硬件版本,算法的硬件版本,只需加法和移位,没有乘除法。只需加法和移位,没有乘除法。Cyrus-Beck方法方法p0p1p1p0出点出点入点入点外部外部内部内部/p0p0/p1p1l 将线段表示成将线段表示成参数方程参数方程的形式,求线段与窗口边的形式,求线段与窗口边界的交点的参数界的交点的参数l 确定线段的可见部分确定线段的可见部分之之后再用交点的参数计算交后再用交点的参数计算交点的坐标。点的
12、坐标。l 适用于适用于矩形或凸多边形矩形或凸多边形裁剪窗口。裁剪窗口。梁友栋梁友栋-BarskyBarsky 线段裁剪法线段裁剪法l线段的线段的参数表示参数表示l判断线段上每一点的可见性:判断线段上每一点的可见性:梁梁-BarskyBarsky 法法u x xwmax-x0-u x x0-xwminu y ywmax-y0-u y y0-ywminl因此,线段与矩形各因此,线段与矩形各边的交点参数值为:边的交点参数值为:左,右,下,上左,右,下,上 边界边界 k =1,2,3,4u1u2u3u401梁梁-BarskyBarsky法:法:非平行边求交非平行边求交lPk0:从从k边界边界内伸向外内
13、伸向外交点存入数组交点存入数组 u2,1 梁梁-BarskyBarsky法:非平行边求交(续)法:非平行边求交(续)lmaxu1 minu2 :可见边可见边lmaxu1 minu2:舍弃线段舍弃线段梁梁-BarskyBarsky 法:平行边法:平行边lPk=0(线段平行(线段平行于裁剪窗口边界)于裁剪窗口边界)qk=0:按:按m边交点边交点(m k,pm 0)进行裁剪进行裁剪P1=0P2=0q20q10外法线外法线Nouter满足满足:No(B-A)0Cyrus-Beck 算法算法l直线段直线段(P1,P2)的参数方程为:的参数方程为:L(u)=(P2-P1)u+P1 u 0,1l对于线段上任
14、意点对于线段上任意点L(u),裁剪窗口某边界裁剪窗口某边界WL上任一点上任一点A,A处的内法线处的内法线N,有三种可能:有三种可能:N(L(u)-A)0,l则则L(u)在在WL内内侧侧lL(u)在凸多边形内在凸多边形内(含边界上含边界上)的充要条件的充要条件是:对于凸多是:对于凸多边形各个边界上的任意一点边形各个边界上的任意一点A和该处内法向量和该处内法向量N,都有都有N(L(u)-A)0l因此:因此:假设多边形有假设多边形有m条边,在每条边上取一个点条边,在每条边上取一个点Ai,和该点处的内法线和该点处的内法线Ni,则则可见线段的参数区间为下列可见线段的参数区间为下列一一一一组不等式的解组不
15、等式的解组不等式的解组不等式的解:N Ni i(L(u)-A(L(u)-Ai i)0 (i=1 0 (i=1m)u m)u 0,10,1该该该该解的最小解的最小解的最小解的最小值值值值u uminmin和最大和最大和最大和最大值值值值u umaxmax对应对应对应对应于可于可于可于可见线见线见线见线段的端点段的端点段的端点段的端点umin和和umax的推导?的推导?N Ni i(L(u)-A(L(u)-Ai i)0 0 N Ni i(P(P2 2-P-P1 1)u+P)u+P1 1-A-Ai i)0 0 N Ni i(P(P2 2-P-P1 1)u+N)u+Ni i (P(P1 1-A-Ai
16、i)0 0(=0时,时,u代表交点参数)代表交点参数)l l平行边:平行边:平行边:平行边:对于某个对于某个i,有有Ni(P2-P1)0,无交点。则:无交点。则:线段在区域外侧:线段在区域外侧:Ni(P1-Ai)0:继续和窗口其它边测试继续和窗口其它边测试l l非平行边,则可见部分的参数非平行边,则可见部分的参数非平行边,则可见部分的参数非平行边,则可见部分的参数u u满足满足满足满足:u -ui,当当Ni(P2-P1)0线段线段从外到内从外到内穿过穿过 i 边界边界 u -ui,当当Ni(P2-P1)0)0 u umaxmax =min1,min-=min1,min-u ui i:N:Ni
17、i (P(P2 2-P-P1 1)0)-观察坐标系)观察坐标系)复合变换复合变换 P=RTP1 0 0 -x00 1 0 -y00 0 1 -z00 0 0 1T=NuzVuyUux三维观察效果三维观察效果固定观察点固定观察点P P,改变,改变N N的方向的方向固定固定N N的方向,改变观察点的方向,改变观察点P P位置位置问题:问题:如何在输出设备上获得这些效果?如何在输出设备上获得这些效果?核心:核心:三维模型向观察平面投影三维模型向观察平面投影!投影投影l如何将如何将三维三维三维三维场景显示在场景显示在二维二维二维二维的设备上的设备上l投影的分类投影的分类l各类投影相应的各类投影相应的观
18、察体观察体l实现各类投影的实现各类投影的几何变换方法几何变换方法投影的分类投影的分类l从三维物体上某点从三维物体上某点P P引出的一条射线引出的一条射线(投影线投影线)与观察平面的交点,即为与观察平面的交点,即为P P的投影点。的投影点。l分类分类投投影影透视投影透视投影一点透视投影一点透视投影二点透视投影二点透视投影三点透视投影三点透视投影平行投影平行投影正平行投影正平行投影正投影正投影正轴测投影正轴测投影等轴测投影等轴测投影斜平行投影斜平行投影斜等测斜等测斜二测斜二测投影示意简图投影示意简图投影线相互平行投影线相互平行投影线相互平行投影线相互平行投影线会聚到一点:投影线会聚到一点:投影线会
19、聚到一点:投影线会聚到一点:“投影中心投影中心投影中心投影中心”平行投影平行投影透视投影透视投影正平行投影正平行投影(正,正轴测,等轴测)正,正轴测,等轴测)l正投影:投影平面垂直于正投影:投影平面垂直于世界坐标系世界坐标系下某一坐标轴下某一坐标轴平行性不变平行性不变尺寸比例不变尺寸比例不变三维结构三维结构 三视图三视图正投影正投影 重建重建投影线相互平行投影线相互平行投影线相互平行投影线相互平行&投影线与观察平面垂直投影线与观察平面垂直投影线与观察平面垂直投影线与观察平面垂直正轴测投影正轴测投影l正轴测正轴测:投影平面不垂直于任一坐标轴投影平面不垂直于任一坐标轴线的平行性不变线的平行性不变包
20、括正等测包括正等测(等轴测等轴测)、正二测、正三测、正二测、正三测l等轴测等轴测:投影平面和三根坐标轴交点离原投影平面和三根坐标轴交点离原点的距离相等点的距离相等(|a|=|b|=|c|(|a|=|b|=|c|八种八种)正轴测投影示意图正轴测投影示意图为紫色平面为紫色平面建立一个原建立一个原点和世界坐点和世界坐标系原点重标系原点重合的观察坐合的观察坐标系标系世界正投影的观察体定义及其规范化正投影的观察体定义及其规范化对于观察平面平行于对于观察平面平行于对于观察平面平行于对于观察平面平行于xyxyxyxy平面的正投影平面的正投影平面的正投影平面的正投影:lx xp p=x,yx,yp p=y,z
21、y,zp p=z=z(所有投影变换均需保留所有投影变换均需保留z z为可见性测试使用)为可见性测试使用)l选择二维裁剪窗口选择二维裁剪窗口:位于观察平面上:位于观察平面上l指定指定近远裁剪平面近远裁剪平面:获得矩形管道观察体。:获得矩形管道观察体。l观察体的观察体的规范化变换规范化变换。规范化规范化平移,缩放平移,缩放正投影的观察体定义及其规范化正投影的观察体定义及其规范化规范化规范化平移,缩放平移,缩放l左手系左手系与通常的屏幕坐标系吻合与通常的屏幕坐标系吻合观察方向观察方向为为正正Znorm轴轴方向方向可以将观察方向的正距离解释为离屏幕(观察平面)的距离可以将观察方向的正距离解释为离屏幕(
22、观察平面)的距离lZnorm值越大,表示离观察平面越远=T2.S.T111-1-1斜平行投影斜平行投影投影线相互平行投影线相互平行投影线相互平行投影线相互平行&投影线与观察平面不垂直投影线与观察平面不垂直投影线与观察平面不垂直投影线与观察平面不垂直时为正投影时为正投影()090 =0360 斜等测、斜二测斜等测、斜二测l斜等测投影斜等测投影投影平面与某一坐标轴垂直投影平面与某一坐标轴垂直tantan=1=1 =4545 =任意任意特点:与特点:与投影平面垂直投影平面垂直的的线投影线投影后长度不变后长度不变l斜二测投影斜二测投影投影平面与某一坐标轴垂直投影平面与某一坐标轴垂直tantan=2=2
23、 =63.463.4 =任意任意特点:特点:该轴轴向变形系数为该轴轴向变形系数为 1/21/2 tan=2 =45斜二测投影示意图斜二测投影示意图斜等测投影示意图斜等测投影示意图斜平行投影的观察体定义及其规范化斜平行投影的观察体定义及其规范化对于观察平面平行于对于观察平面平行于对于观察平面平行于对于观察平面平行于xyxyxyxy平面的斜平行投影平面的斜平行投影平面的斜平行投影平面的斜平行投影:l定义斜平行投影向量:定义斜平行投影向量:获得投影变换矩阵获得投影变换矩阵l选择二维裁剪窗口选择二维裁剪窗口:位于观察平面上:位于观察平面上l指定指定近远裁剪平面近远裁剪平面:获得斜平行管道观察体:获得斜
24、平行管道观察体l进行进行投影变换投影变换:获得与正投影相同的矩形管道观察体获得与正投影相同的矩形管道观察体l观察体的观察体的规范化变换规范化变换。(同正投影)。(同正投影)斜平行投影向量斜平行投影向量斜平行投影变换矩阵斜平行投影变换矩阵ort正投影变换矩阵就正投影变换矩阵就是单位矩阵是单位矩阵单位投影向量单位投影向量(0,0,1)参考参考z=Zvp平面的关于平面的关于z轴的错切轴的错切斜平行投影观察体斜平行投影观察体斜平行投影观察体的变换斜平行投影观察体的变换规范化规范化(同正投影)(同正投影)斜平行投影变换斜平行投影变换Moblique任意平行投影的变换过程任意平行投影的变换过程(1 1)坐
25、标系变换:坐标系变换:世界坐标系经变换,与观察坐世界坐标系经变换,与观察坐标系(右手或左手系)重合标系(右手或左手系)重合 此时:投影平面变为此时:投影平面变为此时:投影平面变为此时:投影平面变为Z=0Z=0Z=0Z=0(XYXYXYXY平面)平面)平面)平面)(2 2)错切:错切:Moblique 使斜平行投影变成正投影使斜平行投影变成正投影(3 3)规范化规范化(平移平移,缩放缩放):Mortho norm透视投影透视投影投影参考点投影参考点(投影中心)(投影中心)l透视投影的特点:透视投影的特点:“近大远小近大远小”:线段投影缩小程度与投影平面位置的关系线段投影缩小程度与投影平面位置的关
26、系不不平行于平行于投影平面的投影平面的平行线段组平行线段组,投影后,投影后仍平行仍平行。不平行于不平行于投影平面的投影平面的平行线段组平行线段组,投影后,投影后会聚会聚。l投影中心无限远离投影平面时,即等同于平行投影投影中心无限远离投影平面时,即等同于平行投影透视投影分类(灭点透视投影分类(灭点Vanishing point)Vanishing point)l每组平行线条的会聚点称为一个每组平行线条的会聚点称为一个“灭点灭点”l主灭点:主灭点:这组平行线条平行于某个坐标轴这组平行线条平行于某个坐标轴一点透视一点透视 :投影平面只与一个坐标轴相交:投影平面只与一个坐标轴相交二点透视二点透视 :投
27、影平面只投影平面只与二个与二个坐标轴相交坐标轴相交三点透视三点透视 :投影平面只投影平面只与三个与三个坐标轴相交坐标轴相交透视投影的观察体定义及其规范化透视投影的观察体定义及其规范化对于观察平面平行于对于观察平面平行于对于观察平面平行于对于观察平面平行于xyxyxyxy平面的透视投影平面的透视投影平面的透视投影平面的透视投影:l定义投影中心定义投影中心l定义观察体定义观察体选择观察体类型并获得相应的投影变换矩阵选择观察体类型并获得相应的投影变换矩阵选择二维裁剪窗口选择二维裁剪窗口:位于观察平面上:位于观察平面上指定指定近远裁剪平面近远裁剪平面l进行进行投影变换投影变换:获得矩形管道观察体获得矩
28、形管道观察体l观察体的观察体的规范化变换规范化变换。约定约定1:投影平面平行于投影平面平行于xy平面(只与平面(只与z轴相交),且轴相交),且其法向量平行于其法向量平行于Z轴正向。轴正向。思考:经过透视投影后任意点思考:经过透视投影后任意点P的的z坐标都变换成坐标都变换成Zvp了吗?了吗?透视投影变换透视投影变换【注意:注意:】lZprp Z(投影平面上的对(投影平面上的对象点无需投影)象点无需投影)l每个对象点的每个对象点的h值均不同,值均不同,是是z的线性函数的线性函数【思考:思考:】lZp是什么?是什么?lZh=szz+tzlZp=Zh/hl因此,因此,Zp Zvp而是对而是对Z进行规范
29、化进行规范化!代表了真正深度信息!代表了真正深度信息!l矩阵矩阵元素元素sz和和tz用于实现用于实现z坐标规范化,其取值依赖于:坐标规范化,其取值依赖于:观察体观察体的形状、位置、尺寸的形状、位置、尺寸规范化规范化目标的大小:目标的大小:(0,1)还是还是(-1,1)透视投影变换矩阵透视投影变换矩阵Mpers/hxyz1xhyhzhhl视觉棱锥体视觉棱锥体(类似于人眼的视觉圆锥体)(类似于人眼的视觉圆锥体)l棱台:棱台:裁剪窗口:位于投影平面上裁剪窗口:位于投影平面上近裁剪平面近裁剪平面:去除大对象:去除大对象远裁剪平面远裁剪平面:去除小对象:去除小对象透视投影观察体透视投影观察体棱台观察体棱
30、台观察体投影后可能投影后可能过大过大而难以辨别而难以辨别投影后可能投影后可能过小过小而难以辨别而难以辨别约定约定2:裁剪平面在裁剪平面在投影中心和观察对象投影中心和观察对象之间。之间。约定约定3:近裁剪平面近裁剪平面在投影中心和远裁剪在投影中心和远裁剪平面之间。平面之间。透视投影观察体的种类透视投影观察体的种类l对称透视对称透视投影棱台投影棱台投影中心到裁剪窗口投影中心到裁剪窗口中心的连线垂直于投中心的连线垂直于投影平面影平面l 斜透视斜透视投影棱台投影棱台对称棱台观察体对称棱台观察体l定义方法:定义方法:投影中心位置投影中心位置远近裁剪面远近裁剪面Z坐标坐标裁剪窗口尺寸裁剪窗口尺寸Zvp/视
31、场角视场角l作用作用是规范化和裁剪的依据是规范化和裁剪的依据对称棱台观察体对称棱台观察体从而计算出从而计算出Zvp对称透视观察体的变换示意图对称透视观察体的变换示意图透视变换透视变换斜棱台观察体斜棱台观察体l约定:约定:投影中心为原点,投影中心为原点,投影平面就是近裁剪平投影平面就是近裁剪平面面经过错切经过错切后,后,xy坐坐标变化,标变化,z不变不变斜棱台错切成对称棱台示意图斜棱台错切成对称棱台示意图约定前提约定前提下的斜对称透视变换下的斜对称透视变换注意:注意:不符合约定前提不符合约定前提时,可能需进行更多的时,可能需进行更多的变换如平移等,相应错变换如平移等,相应错切参数也需重新计算。切
32、参数也需重新计算。透视变换的含义透视变换的含义规范化规范化观察体观察体对称透视对称透视观察体观察体正投影正投影观察体观察体规范化规范化斜平行投影斜平行投影观察体观察体错切错切非对称透视非对称透视观察体观察体正投影正投影观察体观察体规范化规范化观察体观察体对称透视对称透视观察体观察体规范化规范化错切错切Mzshear非对称透视非对称透视观察体观察体透视投影的规范化透视投影的规范化l经过前面的错切和透视变换经过前面的错切和透视变换z轴已经垂直于投影平面且穿越窗口中心轴已经垂直于投影平面且穿越窗口中心已获得已获得齐次齐次投影坐标投影坐标已获得矩形管道观察体已获得矩形管道观察体(SzZ+tz)/(h)
33、-1,1SzZfar+tz=1 hmax=zprp-zfarSzZnear+tz=-1 hmin=znear-zprp透视投影的规范化(续)透视投影的规范化(续)l此时假定左手规范化此时假定左手规范化坐标系如右图所示:坐标系如右图所示:sz,tz可求出可求出只需再考虑只需再考虑x、y方向方向上的缩放即可。上的缩放即可。l 另外,在错切之前,需考虑另外,在错切之前,需考虑坐标系变换坐标系变换的问题:将世界坐标系下的任的问题:将世界坐标系下的任意观察坐标系(投影平面及其法向量),变换到前述的简单情况。意观察坐标系(投影平面及其法向量),变换到前述的简单情况。相对于规范化观察空间的裁剪相对于规范化观
34、察空间的裁剪裁剪平面:规范化立方体的六个面裁剪平面:规范化立方体的六个面在齐次坐标下进行裁剪在齐次坐标下进行裁剪线条:线条:CBCB或梁或梁B B算法算法多边形:包围盒(球)测试、对对象各表面的顶点表采用二多边形:包围盒(球)测试、对对象各表面的顶点表采用二维裁剪的方法。逐步修改表面的顶点表、获得新的表面顶点维裁剪的方法。逐步修改表面的顶点表、获得新的表面顶点表、修改共享边信息等等。表、修改共享边信息等等。任意裁剪平面任意裁剪平面l给出平面方程给出平面方程l处理各对象每个表处理各对象每个表面的顶点(边)面的顶点(边)求解交点参数求解交点参数l最终将场景切割为最终将场景切割为两个部分并获得剖两个部分并获得剖切位置视图切位置视图我们获得了什么?我们获得了什么?l对象的三维坐标对象的三维坐标经过投影变换的经过投影变换的经过规范化变换的经过规范化变换的经过裁剪的经过裁剪的lx和和y是落在观察平面上的坐标是落在观察平面上的坐标视口范围内视口范围内lz是深度信息是深度信息OpenGLOpenGL三维观察函数三维观察函数l思考:平行思考:平行/透视投影用什么方式实现缩放?透视投影用什么方式实现缩放?平行投影:平行投影:几何变换,视口尺寸改变几何变换,视口尺寸改变透视投影:透视投影:几何变换,视口尺寸改变,视点位置改变几何变换,视口尺寸改变,视点位置改变