第四章_OpenGL图形变换(一).doc

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

PAGE  PAGE - 6 - 第四章 OpenGL图形变换 OpenGL图形变换是OpenGL技术体系的核心内容之一,它的最主要功能是让虚拟世界里的物体动起来,是虚拟世界的动力驱动系统,也可以称之三维图形系统的引擎! OpenGL图形变换的主要内容包括几何变换、投影变换、裁剪变换、视口变换等,本章尽量以通俗易懂的方式来讲解各技术要点。 4. 1 图形变换浅说 OpenGL图形变换和照相是非常相似的,它们之间的关系大致描述如下。 1、视点变换(View Transformation) 视点变换相当于把相机放到一定的位置上,镜头对准场景。如图4-1所示。 Y X Z 观察方向 图4-1 视点变换与相机定位 在OpenGL中,默认情况下,视点变换相当于把相机放到世界坐标系的原点(0,0,0),镜头指向Z轴的负方向,相当于从世界坐标系的原点向屏幕内部的虚拟场景观察。 2、模型变换(Model Transformation) 模型变换相当于场景中人物或对象位置的变化、角度的改变和大小的改变。 需向后向左 移动 气球需放大 需旋转180度 Y X Z 观察方向 图4-2 虚拟照相场景中的人物 照相时场景中的人物或对象需要作调整,以便他们位于场景中合适的位置上。有此时候人物不在视野范围内时,还要走动一下,进入镜头场景内,方向不对时,还要转动一下,眼睛转向镜头。比如图4-2所示,照相时,警察不在镜头场景内,他需要向后向移动。中间的企鹅背对镜头,他需要转过向来面向镜头。企鹅向左边的气球中吹气,气球变大。调整后的场景如图4-3所示。 Y X 观察方向 Z 图4-3 虚拟照相场景中的调整后人物或对象 上述调整过程中的人员移动 和企鹅的转身动作 和气球充气变大 都属于模型变换。 3、投影变换(Projection Transformation) 投影变换相当于调整相机镜头焦距,放大或缩小景物(如图4-4所示)。 Y Z X 图4-4 投影变换与相机焦距调整 OpenGL中投影变换的本质功能是定义一个视景体,使视景体外的多余部分被裁剪掉,再把景物变换到一个规则投影体(高、宽、深均为2个单位的立方体)。 4、视口变换(Viewport Transformation) 视口变换相当于在当前窗口中选择一个位置合适,具有一定形状和大小的矩形区域,用来显示最终的三维图像。 5、图形绘制 相当于按下快门照相。它是把上一步得到的规范投影体中的景物投影到投影平面(虚拟的一个平面,我们看不到),形成虚拟带景深的三维图像。然后再把这个图像映射到我们能够看到的视口。 4.2 三维图形的显示流程 下图描述了三维图形的显示流程和步骤。 世界坐 标系中 的三维 物体 视点变换 模型变换 投影 变换 三维 裁剪 视口 变换 图形 在视 口中 显示 图4-5 三维图形的显示流程 4.3 顶点坐标的变换过程 实质上,三维世界中的物体都是用点来描述的,所以上图的显示流程中蕴含了对顶点的一系列变换。具体来说,包含以下变换步骤。 1、调整世界坐标系中的物体的坐标 这是指物体顶点坐标的模型变换,即把物体变换到适当的位置、角度和大小。给定一个顶点v,一个4×4的模型变换矩阵M,则变换后的顶点坐标为。 这里的顶点坐标是齐次坐标,即:(x,y,z,w)。投影变换之前w的值为1,投影变换之后w的值不为1。 2、调整后的世界坐标系中的物体的坐标变换到观察坐标系中的坐标 这指的是物体顶点的视点变换。给定模型变换后的顶点,一个4×4的视点变换矩阵N,则变换后的顶点坐标为。 值得注意的是,在OpenGL中,模型变换矩阵和视点变换矩阵合并成模型视点矩阵,因此以上两步的变换可以一步完成: 给定一个顶点v,一个4×4的模型视点变换矩阵M,则变换后的顶点坐标为。 3、观察坐标系中顶点坐标变换到规范化投影体坐标系 这一步完成投影。给定一个观察坐标系中的顶点v’,一个4×4的投影换矩阵P,则变换后的顶点坐标为。投影变换之后w的值不为1。 4、裁剪 规范化变换后,要进行物体的裁剪,即不在视景体中的物体将被裁剪掉。那些被裁剪掉的物体在生成最终图形的时候不被绘制。 5、投影除法 位于规范化投影体中的物体顶点坐标要除以w,生成真实的规范投影坐标,即(x/w,y/w,z/w,1)。 6、三维规范化投影体坐标变换到屏幕视口坐标 变换的结果是我们能看到的屏幕图像。变换的原理和上面几步的类似,也是用变换矩阵乘顶点坐标。 设规范化投影体中的顶点v’’,三维规范化投影体坐标变换到屏幕视口坐标的变换矩阵为 ,则有。 4.4 视点变换 我们刚开始的时候不去做视点变换,而是把精力集中在其它的变换。这里我们暂且使用OpenGL中的默认视点。正如4.1节所述,默认的视点位于世界坐标系的原点(0

文档评论(0)

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档