- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
讲稿-4-变换 北航6系计算机图形学课件.ppt
2003年3月17 图形变换 三维图形显示的模型 视口长宽比例的影响 2003年3月17 图形变换 三维图形显示的模型 平行投影的显示模型 2003年3月17 图形变换 透视投影变换 2003年3月17 图形变换 透视投影变换 X/X’=Y/Y’=Z/d X’=Xd/Z Y’=Yd/Z Z’=d 透视投影变换矩阵: 2003年3月17 图形变换 平行投影变换 2003年3月17 图形变换 视口变换 X’/W’= (X+W/2) /W ? X’=XW’/W+W’/(2W) (H’-Y’)/H’=(Y+H/2)/H ? Y’=-YH’/H+H’-H’/(2H) W’/W 0 0 W’/(2W) M= 0 -H’/H 0 H’-H’/(2H) 0 0 1 0 0 0 0 1 W’ H’ 2003年3月17 图形变换 视坐标系与视变换 给定视坐标系: (Ex,Ey,Ez),(Ax,Ay,Az),(px,py,pz) E 视点 A 被观察点 p向上方向矢量 n=(E-A)/|E-A| u=(pXn)/|pXn| v=nXu 2003年3月17 图形变换 4.视坐标系与视变换 u= (ux,uy,uz,0) v= (vx,vy,vz ,0) n= (nx,ny,nz,0) E= (Ex,Ey,Ez,1) CN=(u,v,n,E)T , CO=(X,Y,Z,O)T , CN=M X CO CO=M-1XCN M= ux uy uz 0 vx vy vz 0 nx ny ny 0 Ex Ey Ez 1 D= (Dx,Dy,Dz,1)XCO= (Dx,Dy,Dz,1) M-1XCN (Du,Dv,Dn,1)=(Dx,Dy,Dz,1) M-1 (Du,Dv,Dn,1) T = (M-1)T(Dx,Dy,Dz,1) T 视变换矩阵 (M-1)T 2003年3月17 图形变换 4.4图形显示的流程 设一个点的世界坐标系下坐标为:P 设世界坐标向视坐标变换的矩阵为:T视 设投影矩阵为:T投 设视口变换矩阵为:Tw 则:Pw= Tw T投T视P, 令T= Tw T投T视,则: Pw=TP 2003年3月17 图形变换 4.5图形显示中的裁剪问题 视景体 三维图形显示过程中的裁剪 平面裁剪算法(自学) 三维裁剪算法(自学) 2003年3月17 图形变换 4.6OpenGL的坐标变换机制 有关的数据结构 ModelView变换机制 Model变换的使用方法 View的变换使用方法 Project的使用方法 显示流程 2003年3月17 图形变换 有关的数据结构 两个坐标变换矩阵(4X4) ModelView矩阵 GL_MODELVIEW Projection矩阵GL_PROJECTION glMatrixMode(GL_MODELVIEW); glMatrixMode(GL_PROJECTION); 两个用于存储矩阵的堆栈: ModelView矩阵堆栈 Projection矩阵堆栈 2003年3月17 图形变换 ModelView变换机制 Model变换的目的是改变物体的位置和尺寸 View变换的目的是改变观察的方向 以上两个目的是用一个手段来实现的,即:操作ModelView矩阵 2003年3月17 图形变换 Model变换的使用方法 首先使以下函数,表示开始操作ModelView矩阵 glMatrixMode(GL_MODELVIEW); 操作ModelView 矩阵进行Model变换的方法分两类: glLoadIdentity(); glLoadMatrixf(*m); glMultMatrixf(*m); glTranslatef(dx,dy,dz); glRotatef(angle,vx,vy,vz); glScalef(sx,sy,sz); 2003年3月17 图形变换 View变换的使用方法 可以使用上述所有函数来设值观察方向 利用以下函数则更方便: gluLookAt(ex, ey, ez, ax, ay, az, px , py , pz); e—视点 a—被观察点 p—向上方向 2003年3月17 图形变换 平行投影的使用方法 投影矩阵 首先必须使用下面的函数进入投影矩阵模式 glMatrixMode(GL_PROJECTION); 可以直接设值投影矩阵的值来进行投影,但一般使用下面的函数设值投影矩阵:
文档评论(0)