图像处理三维图形变换讲述.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图像处理三维图形变换讲述

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 相机变换 将世界坐标系中的一点变换至照相机坐标系 可以分成平移和旋转两部分 投影变换 视域、投影方式、屏幕分辨率 投影物体首先与视域求交决定可见部分 平行投影 透视投影 正交相机模型 标准透视相机模型(I) 背面剔除 将多边形的朝向与视点或投影中心相比较,去除那些不可见多边形 可见性测试在视见空间内进行。计算每一个多边形的法向,并检查法向与视线方向点积后值的符号 视域体裁剪 当且仅当视域体内的物体将被投影. 决定物体的哪一部分将被投影,哪一部分被剔除的过程叫做裁剪. Z=0 plane 视域体裁剪 从世界坐标系到屏幕坐标系 将物体从世界坐标系变换至屏幕坐标系,可以看成是:将物体首先作相机变换,再作透视变换: 一般还需要一个视区(视口)变换(viewport transformation) 视区变换 将视域归一化 视域与物体求交,求交后的物体投影,并按照相应的视见区域大小[xmin,xmax]、 [ymin,ymax]、 [zmin,zmax]进行缩放 OpenGL中的变换矩阵 相机变换: 指定照相机位置和方向(也叫照相机坐标系统) 模型变换: 将物体在场景中移动,也可以视为从局部坐标系到全局坐标系 ModelView变换: 相机变换和模型变换的混合. 投影变换: 定义视域体并指向投影 视区变换: 将二维投影后的场景变换到绘制窗口. 变换的合成 一系列变换的合成可通过矩阵的嵌套完成 关于任意一点的缩放: 关于任意轴的旋转 ModelView 矩阵 ModelView变换式建模矩阵M和相机变换V的乘积 C = VM 所有在OpenGL中的变换函数只能设置modelview 矩阵. 因此, ModelView 在物体被操作之前被调用. 例如: glMatrixMode (GL_MODELVIEW); glLoadIdentity (); glScalef (2.0f, 2.0f, 2.0f); DrawScene (); ModelView 矩阵堆栈 矩阵堆栈的顶部矩阵就是当前的ModelView 矩阵 (C). glPushMatrix (): 将当前的矩阵加入到矩阵堆栈 glPopMatrix (): 将顶部矩阵删除,并将所有其他矩阵往上移动一位。 矩阵堆栈的好处:允许一系列位置(代表了坐标系统)保留下来,并在需要的时候使用它们。 M1 M2 M3 Transform demo 矩阵阵列 建模变换: glLoadIdentity : C ? I glLoadMatrix(m) : C ? m glMultiMatrix(m) : C ? C m glRotatef(q,x,y,z) : C ? C RL(q) glTranslatef(x,y,z) : C ? C T(x,y,z) glScalef(x,y,z) : C ? C S(x,y,z) 最后定义的变换最先被执行. 相机坐标 照相机坐标系统: 也叫视点坐标系统或者视见坐标系统. 它表示了在照相机后面看场景的坐标关系。X-Y平面是投影面(也叫平面) ,照相机一般往负z方向看。 相机变换的两种方法 保持相机不变,将物体(在世界坐标系统中)绕着相机旋转。 保持物体不变,将相机在世界坐标系统中变换。相机变换是物体变换的逆变换。 y x z -z eye 设置相机: “Look At” 相机 将相机放置到世界坐标系统中定义相机变换 glMatrixMode (GL_MODELVIEW); glLoadIdentity (); gluLookAt (eye.x, eye.y, eye.z, look.x, look.y, look.z, up.x, up.y, up.z); up eye look Y Z X WCS x y z P0 Q0 VCS 从 LookAt 设置中计算相机变换 坐标系统, 形成了.: v u n -n eye look 相机变换: OpenGL例子(Look At相机) Void DisplayScene () { glClear (GL_COLOR_BUFFER_BIT); glColor3f (1.0f, 0.0f, 0.0f); glLoadIdentity (); gluLookAt (0.0, 0.0, 10.0, 0.0, 0.0, -100.0,

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档