计算机图形学_三维视图讲解

上传人:我** 文档编号:117878370 上传时间:2019-12-11 格式:PPT 页数:70 大小:3.19MB
返回 下载 相关 举报
计算机图形学_三维视图讲解_第1页
第1页 / 共70页
计算机图形学_三维视图讲解_第2页
第2页 / 共70页
计算机图形学_三维视图讲解_第3页
第3页 / 共70页
计算机图形学_三维视图讲解_第4页
第4页 / 共70页
计算机图形学_三维视图讲解_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《计算机图形学_三维视图讲解》由会员分享,可在线阅读,更多相关《计算机图形学_三维视图讲解(70页珍藏版)》请在金锄头文库上搜索。

1、三维视图(三维观察) n经典视图 n计算机视图 n投影矩阵 基本内容 n介绍经典视图 n比较由计算机形成的图像与建筑师、画 家和工程师绘制的图像 n学习每种视图的优势与不足 为什么需要经典视图? n传统由手工操作的制图工作现在可以用计算机 模拟 n电影中的动画,建筑图纸,机器零件图纸 n这些领域中需要不同的经典视图 n等角投影(isometrics),正视图(elevation),透视 n经典视图与计算机视图之间的对比关系表明了 在大多数API中所采用方法的长处, n当然也具有一些不足和困难 n 经典照相机与合成照相机 经典视图 n视图中需要三个基本要素 n一个或多个对象 n观察者,带有一个投

2、影面 n从对象到投影平面的投影变换 n经典视图就是基于这些要素之间的关系的 n观察者捡取一个对象并进行定向,确定希望看到的结果 n每个对象都假定是用平面的基本多边形构造出来 的 n如:建筑物、多面体、锻造物 平面几何投影 n即投影到平面上的标准投影 n投影线为直线,这些直线 n汇聚于投影中心,或者 n彼此平行 n这种投影保持共线性 n但不一定保角 n在诸如地图绘制等应用中需要非平面投 影 经典投影 斜俯视图 基准面principal faces(主平面) n在诸如建筑业等实际应用中,所观察的 对象通常由许多平坦面构成。 n这些面中任一个都可以认为是一个基准 面,从而进行定位 n对于规则物体,例

3、如房屋,按照通常的方式 可以定义前、后、左、右、顶、底等面 n许多对象上都有几个面相交于直角,从而可 以得到三个正交的方向,称为基准方向 透视投影与平行投影 n计算机图形学中把所有的投影用同样的 方法处理,用一个流水线体系实现它们 n在经典视图中为了绘制不同类型的投影 ,发展出来不同的技术 n基本区别在于平行投影和透视投影,虽 然从数学上说,平行投影是透视投影的 极限状态 平面几何投影的分类图 平面几何投影的分类图 投影平面是否平行于主平面 投影线与投影平面的夹角 投影中心与投影平面之间的距离 投影平面与基准坐标轴交点数 投影 n投影的要素包括投影对象、投影中心、投影平 面、投影线和投影。要作

4、投影变换的物体称为 投影对象;在三维空间中,选择一个点,记这 个点为投影中心;不经过这个点再定义一个平 面,记这个平面为投影平面;从投影中心向投 影平面引任意多条射线,记这些射线为投影线 ;穿过物体的投影线与投影面相交,在投影面 上形成物体的像,这个像记为三维物体在二维 投影面上的投影。 n投影变换可分为两大类:透视投影和平行投影 。它们的本质区别在于:透视投影的投影中心 到投影面之间的距离是有限的,而平行投影的 投影中心到投影面之间的距离是无限的。 真实感强 常用于工 程制图 图形不缩 小,形状 不变 n透视投影的特点: n1、透视缩小:物体离投影中心越远,则物体和所 表现的长度越短。 n2

5、、投影线汇聚一点。 n平行投影的特点: n不缩小实际尺寸,形状不变,常用于工程制图。 透视投影 平行投影 n平行投影的投影中心与投影平面之间的距离 为无穷远;投影线之间相互平行;平行线的 平行投影仍是平行线。 n按照投影方向与投影平面的交角不同,平行 投影分为两类:正平行投影和斜平行投影。 正平行投影 n正平行投影的投影方向垂直于投影平面。 n按照投影平面与坐标轴的交角不同,正平行投 影又可分为两类:正投影与正轴测。 n当投影平面与某一坐标轴垂直时,得到的投影 为正投影;否则,得到的投影为正轴测。 多视点正交投影(三视图) n投影面平行于基准 面(主平面) n通常从前面、顶部 和侧面进行投影

6、n在CAD和建筑行 业中,通常显示出 来三个视点图以及 等角投影图 等角投影图(不 是多视点正交视 图中的一部分) n三视图:正视图、侧视图和俯视图 优势与不足 n保持了距离与角度 n保持形状 n可以用来测量 n建筑规划 n手册 n不能看到对象真正的全局形状,因为许 多面在视点中不可见 n(1)正投影 n正投影也称为三视图。按照投影平面是否与Y轴、 X轴、Z轴垂直,正投影分为主视图、侧视图和俯 视图三种,此时投影方向分别与这个坐标轴的方向 一致。 主视 侧视 俯视 主视侧视 俯视 轴测投影 投影线垂直与投影面但投影面不平行于主平面 允许投影面相对于对象移动 轴测投影的示例 根据对立方体进行投影

7、时与几个坐标轴之间夹 角都相等进行分类 没有:正三测 两个:正二测 三个:正等测 正等测 正二测 正三测 优势与不足 n直线段长度被缩短(foreshortened),但可以求出收 缩因子 n保持直线但不保角 n圆所在平面如果不平行于投影面,它的投影为椭圆 n可以见到盒子类对象的三个基准面 n会导致某些观察错觉 n平行线看起来不平行 n 不是很真实,因为远的对象与近的对象具有同样 的收缩因子 n在CAD应用中经常用到 斜平行投影 n投影线与投影面之间的关系任意(不垂直) 优势与不足 n可以增加某个角度,以便强调特定面 n在平行于投影面的面上的角度保持不变(保角 ),但我们仍然可以见到其它侧面

8、n在实际世界中,只能利用特殊相机做到这一点 n透视投影的投影中心与投影平面之间的距离为 有限的。投影线(视线)从投影中心(视点) 出发,投影线是不平行的。 n透视投影具有透视缩小性,不能真实反映物体 的精确尺寸和形状。 n 透视投影 视点 投影中心 图像平面 虚平面 (投影平面/视平面 ) 透视图是采用中心投影法,通过空间一点 (投影中心)将三维形体投影到投影面上 所得到的投影图。 n投影中心在坐标原点 n投影平面与Z轴垂直,在zd的位置上。点P(x,y,z) 在投影平面上的投影点为:P(x,y,d),构造透视投 影的变换矩阵T: 简单透视 透视方程 n考虑顶部与侧边视图 齐次坐标形式 透视除

9、法 n如果w 1, 那么必须从齐次坐标中除以w而 得到所表示的点 n这就是透视除法,结果为 上述方程称为透视方程 灭点(vanishing points) n在对象上的所有平行线(不平行于投影面)投 影后交于一个点 n手工绘制简单透视投影时就需要利用这些灭点 n特点:产生近大远小的视觉效果,由它产生的 图形深度感强,看起来更加真实。 示例 三点透视 n没有基准面平 行于投影面 n投影面与与基 准坐标轴有三 个交点 n立方体的投影 中有三个灭点 两点透视 n一个基准方向平行于 投影面 n投影面与基准坐标轴 有二个交点 n立方体的投影中有两 个灭点 单点透视 n一个基准面平行于 投影平面 n投影面

10、与基准坐标 轴有一个个交点 n立方体的投影中有 一个灭点 透视变换 n透视除法是非线性的,导致非均匀缩短 n离COP远的对象投影后尺寸缩短得比离COP近的对 象大 n看起来更真实 n透视变换是保直线的,但不是仿射变换 n只有在平行于投影面的平面上角度被保持 n透视变换是不可逆的,因为沿一条投影直线上 的所有点投影后的结果相同 基本内容 n介绍投影的数学表示 n介绍OpenGL中的视图函数 n查看其它类型API中的视图功能 计算机视图 n视图有三个功能,都在流水线体系中实现 n定位照相机 n设置模型视图矩阵 n设置镜头 n设置投影矩阵 n裁剪 n设置视景体 合成照相机 n计算机视图是基于合成照相

11、机的,原则上可以实现 所有的经典视图 n所有的经典视图是基于对象、观察者和投影线之间 的紧密联系的,而在计算机图形学中强调的则是对 象定义与照相机定义之间的独立性 n在OpenGL中可以指定采用的是透视投影或者正交 投影,但在透视投影中OpenGL并不知道什么是单 点、两点或三点透视 n为了实现这些细节需要知道对象与照相机之间的关 系 最终的选择 n偏好对象定义与照相机定义之间的独立性 n如果应用程序需要特定类型的视图,那么 应当仔细确定照相机相对于对象的位置 OpenGL中的照相机 n在OpenGL中,初始的世界标 架和照相机标架相同 n初始的模型视图矩阵是单位阵 n照相机位于原点,并指向z

12、轴的 负向 nOpenGL也指定了默认的视景 体,它是一个中心在原点的边 长为2的立方体 n缺省的投影矩阵是单位阵 缺省投影 n默认的投影是正交投影 定义可见的对象 n在缺省的照相机设置下,为了使定义的 对象可见,只要使对象的位置和尺寸与 默认视景体相匹配 n通常可以对数据进行适当的平移和各向同性 放缩 n注意这并不是利用OpenGL的平移和放缩函 数进行的操作 移动照相机标架 n如果想同时看到具有更大的正z坐标和负z坐标 的对象,我们可以 n把照相机沿z轴正向移动 n平移照相机标架 n把对象沿z轴负向移动 n移动世界标架 n两者是完全等价的,都是由模型视图矩阵确 定的 n需要平移glTran

13、slated(0.0, 0.0, -d); n此处d 0 移动照相机 n可以利用一系列旋转和 平移把照相机定位到任 意位置 n例如,为了得到侧视图 n旋转照相机: R n把照相机从原点移开: T n模型视图矩阵C = RT OpenGL代码 n注意最后指定的变换是最先被应用的变 换 nglMatrixMode(GL_MODELVIEW); nglLoadIdentity(); nglTranslated(0.0, 0.0, -d); nglRotated(90.0, 0.0, 1.0, 0.0); 模型视图矩阵 n模型视图矩阵是OpenGL状态的一部分 n任何时刻的模型视图矩阵包含了照相机标架

14、 与世界标架的位置关系 n虽然表面上看把模型与视图矩阵结合为一个矩 阵会导致一些混淆,但仔细体会这种流水线体 系就会发现其中的优势 n如果把照相机也看作具有几何属性的对象,那 么改变对象位置和定向的变换当然对照相机的 位置和定向相对于其它对象也发生改变 n可以认为在定义真正对象之前的模型视图变 换是定位照相机 如何构造等角投影 n假设从中心在原点的立方体开始,立方 体平行于坐标轴 n希望移动照相机得到该立方体的等角投 影 n首先绕y轴旋转45度 n然后绕x轴旋转35.26度 n最后从原点移开 n构造方法复杂 两个视图API n为了实现某种投影,需要经过复杂的计算得到变换 的构成 n可以采用在P

15、HIGS和GKS-3D中的方法定位照相机 n在世界标架中描述照相机的位置 n投影的类型是由在OpenGL中等价的投影矩阵确定 的 n视图过程的这部分操作也称为规范化变换(normalization transformation) n用标架中的变换实现 照相机参数 n照相机的默认位置在原 点,指向z轴负向 n所期望的位置称为视图 参考点VRP n照相机定向 n视图平面法向n(viewplane normal, VPN) n视线向上的方向VUP (view-up vector) nVUP在投影平面的投影得 到视线向上方向v Up vector Look vector Position projec

16、tion of Up vector VUP v n u VPN glLoadIdentity(); gluLookAt(1.,1.,1.,0.,0.,0.,0.,1.,0.); gluLookAt() gluLookAt(eyex, eyey, eyez, atx, aty, atz, upx, upy, upz); gluLookAt()与其它变换 n用户可以自己定义模型视图矩阵实现 同样的功能 n但是从概念上可以把gluLookAt()作为照 相机的定位,而把后续的其它变换作为 对象的定位 n在OpenGL中gluLookAt()函数是唯一的 专门用来定位照相机的函数 物理照相机 n在定位后仍然可以选择镜头 n镜头与胶卷的大小结合在一起确定在照 相机前面多大范围的对象出现在最终的 照片上 n

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号