vr第五讲.ppt_第1页
vr第五讲.ppt_第2页
vr第五讲.ppt_第3页
vr第五讲.ppt_第4页
vr第五讲.ppt_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,第五讲 三维真实感图形,5.1 三维图形的基本问题 5.2 平面几何投影 5.3 观察坐标系中的投影变换 *投影举例 5.4 三维图形的显示流程图 5.5 三维裁剪 *图形显示过程小结 5.6 消隐*,2,5.1 三维图形的基本问题(1/4),显示器屏幕、绘图纸等是二维的 显示对象是三维的 解决方法-投影 三维显示设备正在研制中 二维形体的表示-直线段,折线,曲线段,多边形区域 二维形体的输入-简单(图形显示设备与形体的维数一致),1. 在二维屏幕上如何显示三维物体?,2. 如何表示三维物体?,3,三维图形的基本问题(2/4),三维形体的表示-空间直线段、折线、曲线段、多边形、曲面片 三维

2、形体的输入、运算、有效性保证-困难 解决方法-各种用于形体表示的理论、模型、方法 物体之间或物体的不同部分之间存在相互遮挡关系 遮挡关系是空间位置关系的重要组成部分 解决方法-消除隐藏面与隐藏线,3. 如何反映遮挡关系?,4,三维图形的基本问题(3/4),何谓真实感图形 逼真的 示意的 人们观察现实世界产生的真实感来源于 空间位置关系-近大远小的透视关系和遮挡关系 光线传播引起的物体表面颜色的自然分布 解决方法-建立光照明模型、开发真实感图形绘制方法,4. 如何产生真实感图形,5,三维图形的基本问题(4/4),三维图形的基本研究内容 投影 三维形体的表示 消除隐藏面与隐藏线 建立光照明模型、开

3、发真实感图形绘制方法,6,5.2 平面几何投影(1/12),照像机模型与投影 如何投影? 生活中的类比-如何拍摄景物? 拍摄过程 选景 取景-裁剪 对焦参考点 按快门-成像 移动方式 移动景物 移动照相机 两个坐标系,7,平面几何投影(2/12),投影照相机模型 选定投影类型 设置投影参数 拍摄方向、距离等 三维裁剪 取景 投影和显示 成像 简单的三维图形显示流程图,8,平面几何投影(3/12),平面几何投影及其分类 投影 将n维的点变换成小于n维的点 将3维的点变换成小于2维的点 投影中心(COP:Center of Projection) 视觉系统观察点、视点 电影放映机光源 投影面 不经

4、过投影中心 平面-照相机底片 曲面球幕电影,视网膜,9,平面几何投影(4/12),投影线 从投影中心向物体上各点发出的射线 直线光线 曲线喷绘 平面几何投影 投影面是平面 投影线为直线 投影变换 投影过程 投影的数学表示,10,平面几何投影(5/12),投影分类,投影中心与投影平面之间的距离为无限,投影中心与投影平面之间的距离为有限,根据投影方向与投影平面的夹角,根据投影平面与坐标轴的夹角,11,平面几何投影(6/12),12,平面几何投影(7/12),透视投影 投影中心与投影平面之间的距离为有限 参数:投影方向 例子:室内白炽灯的投影,视觉系统 灭点:不平行于投影平面的平行线,经过透视投影之

5、后收敛于一点,称为灭点. 主灭点:平行于坐标轴的平行线的灭点。 一点透视 两点透视 三点透视 特点:产生近大远小的视觉效果,由它产生的图形深度感强,看起来更加真实。,灭点的个数?,主灭点的个数由什么决定?,13,平面几何投影(8/12),14,平面几何投影(9/12),15,平面几何投影(10/12),平行投影 投影中心与投影平面之间的距离为无限 是透视投影的极限状态,16,平面几何投影(11/12),正投影与斜投影,17,平面几何投影(12/12),三视图:正视图、侧视图和俯视图,18,5.3 观察坐标系中的投影变换(1/15),-如何进行投影变换? -观察坐标系 生活中的类比-移动舞台还是

6、移动摄像机 移动舞台 投影(摄像)简单 移动难度大 移动摄像机 移动容易 投影复杂,变换的分解与合成,采用观察坐标系,投影简单,19,观察坐标系中的投影变换(2/15),什么是观察坐标系 View Reference Coordinate或VRC 照相机所在的坐标系 如何建立观察坐标系 坐标原点-聚焦参考点在底片(投影平面)上的投影,称为观察参考点VRP(View Reference Point) n轴-照相机镜头方向(投影平面的法向) v轴-照相机向上的方向(观察正向) u轴-,20,观察坐标系中的投影变换(3/15),21,观察坐标系中的投影变换(4/15),为什么需要观察坐标系 简化和加

7、速投影变换 投影平面- n=0 投影中心- (0,0,d) 视见体 视见体是三维裁剪窗口 建立步骤,定义窗口,形成观察空间,形成视见体,22,观察坐标系中的投影变换(5/15),投影参考点 PRP:Projection Reference Point 透视投影:COP=PRP 平行投影:投影方向DOP=窗口中心CW-PRP,23,观察坐标系中的投影变换(6/15),观察空间,有限观察空间亦称 视见体或裁剪空间,24,观察坐标系中的投影变换(7/15),定义一个视见体所需的投影参数及其作用,25,观察坐标系中的投影变换(8/15),透视投影变换 问题-在uvn中,投影平面为n=0,投影中心为(0

8、,0,d),待投影点为P,求投影点Q,26,观察坐标系中的投影变换(9/15),投影线的参数方程 投影平面方程 n=0 Q点的坐标,由此式可解释为什么透视投影产生近大远小的视觉效果,27,观察坐标系中的投影变换(10/15),透视投影变换矩阵,28,观察坐标系中的投影变换(11/15),平行投影变换 问题-在uvn中,投影平面为n=0,投影方向为(0,0,-1),待投影点为P,求投影点Q,29,观察坐标系中的投影变换(12/15),投影线的参数方程 投影平面方程 n=0 Q点的坐标,30,观察坐标系中的投影变换(13/15),平行投影变换矩阵 透视投影与平行投影之间的关系,31,观察坐标系中的

9、投影变换(14/15),从世界坐标系到观察坐标系的变换 条件 VRC的坐标原点(观察参考点)VRP( , , ) 投影平面法向VPN 观察正向VUP,,,32,观察坐标系中的投影变换(15/15),结论,33,*投影举例(1/5),待投影的单位立方体 缺省投影参数,参数 值 投影类型 平行投影 VRP(WC) (0,0,0) VPN(WC) (0,0,1) VUP(WC) (0,1,0) PRP(VRC) (0.5,0.5,1) 窗口(VRC) (0,1,0,1) F(VRC)正无穷 B(VRC) 负无穷,34,投影举例(2/5),透视投影 一点透视,参数 值 投影类型 透视投影 VRP(WC

10、) (0,0,0) VPN(WC) (0,0,1) VUP(WC) (0,1,0) PRP(VRC)(0.5,0.5,4) 窗口(VRC)(-0.5,1.5,-0.5,1.5),参数 值 投影类型 透视投影 VRP(WC) (0,0,0) VPN(WC) (0,0,1) VUP(WC) (0,1,0) PRP(VRC)(2.0,2.0,4.0) 窗口(VRC)(-0.5,1.5,-0.5,1.5),35,投影举例(3/5),两点透视,参数 值 投影类型 透视投影 VRP(WC) (0,0,0) VPN(WC) (1,0,1) VUP(WC) (0,1,0) PRP(VRC) (0.5,0.5,

11、4) 窗口(VRC) (-1.5,1.5, -1.5, 1.5),参数 值 投影类型 透视投影 VRP(WC) (0,0,0) VPN(WC) (1,0,1) VUP(WC) (1,1,0) PRP(VRC) (0.5,0.5,4) 窗口(VRC) (-1.5,1.5, -1.5, 1.5),36,投影举例(4/5),平行投影,参数 值 投影类型 平行投影 VRP(WC) (0,0,0) VPN(WC) (0,0,1) VUP(WC) (0,1,0) PRP(VRC) (0.5,0.5,1) 窗口(VRC) (-0.5,1.5,0.5,1.5),参数 值 投影类型 平行投影 VRP(WC) (

12、0,0,0) VPN(WC) (1,1,1) VUP(WC) (0,1,0) PRP(VRC) (0.5,0.5,2) 窗口(VRC) (-0.5,1.5,0.5,1.5),37,投影举例(5/5),前、后裁剪面的影响,参数 值 投影类型 透视投影 VRP(WC) (0,0,0) VPN(WC) (0,0,1) VUP(WC) (0,1,0) PRP(VRC) (0.5,0.5,2) 窗口(VRC) (-0.5,1.5,-0.5,1.5) F(VRC) 1.2 B(VRC) 0.2,38,5.4 三维图形的显示流程图(1/14),显示流程图 观察变换:从世界坐标系到观察坐标系的变换,39,三维

13、图形的显示流程图(2/14),模型变换 模型坐标系 Modeling Coordinate 物体的局部坐标系 在模型坐标系中物体的表示简单,40,三维图形的显示流程图(3/14),模型变换 Modeling Transformation 将物体从本身的模型坐标系变换到上层物体的模型坐标系(或世界坐标系)的几何变换 模型变换是构造复杂物体的方法 例子:,41,三维图形的显示流程图(4/14),何时裁剪 投影之前裁剪-三维裁剪 优点 只对可见的物体进行投影变换 缺点 三维裁剪相对复杂 投影之后裁剪-二维裁剪 优点 二维裁剪相对容易 缺点 需要对所有的物体进行投影变换,42,三维图形的显示流程图(5

14、/14),采用二维裁剪的三维图形显示流程图 在投影之前裁剪的理由 三维物体的表面通常被离散表示成多边形或折线,而对这类简单图元,三维裁剪同样比较简单。 三维图形在显示过程中需要被消隐,做这个工作要有图形的深度信息,所以必须在投影之前完成 。 消隐很费时,如果在此之前裁剪(或部分裁剪)掉不可见的图形,可使 需要消隐的图形减至最小。,43,三维图形的显示流程图(6/14),规范视见体 平行投影的规范视见体 半立方体 透视投影的规范时间体 四棱台,44,三维图形的显示流程图(7/14),为什么引入规范视见体 简化投影 简化裁剪 规范化变换 将任意视见体变换成规范视见体的变换 规范投影坐标(三维屏幕坐

15、标 ) 经规范化的观察坐标系,45,三维图形的显示流程图(8/14),采用规范视见体的三维图形显示流程图,46,三维图形的显示流程图(9/14),平行投影视见体的规范化 将任意的平行投影视见体变换为规范平行投影视见体 方法:变换的分解与合成 步骤 结果,47,三维图形的显示流程图(10/14),48,三维图形的显示流程图(11/14),透视投影视见体的规范化 将任意的透视投影视见体变换为规范透视投影视见体 方法:变换的分解与合成 步骤 结果,49,三维图形的显示流程图(12/14),50,三维图形的显示流程图(13/14),规范视见体之间的变换 将透视投影的规范视见体变换为平行投影的规范视见体

16、 为什么 关于长方体的裁剪较关于正四棱台的裁剪简单。 平行投影较透视投影简单。 透视投影与平行投影都采用同一套裁剪与投影程序,处理一致,便于用硬件实现。,51,三维图形的显示流程图(14/14),将视见体变换结合到透视投影的规范化变换矩阵中 采用视见体变换的三维图形显示流程图,52,5.5 三维裁剪(1/2),三维裁剪的两种方法 将齐次坐标转换为三维坐标,在三维空间关于视见体裁剪 优点:三维裁剪相对容易 缺点:需要将齐次坐标转换为三维坐标 直接在四维齐次坐标空间中进行裁剪 优点: 不需要将齐次坐标转换为三维坐标 有理曲线曲面可能直接用齐次坐标来表示,对它们的裁剪只能在齐次坐标空间中进行 缺点:

17、四维裁剪相对复杂,53,三维裁剪(2/2),关于规范视见体的裁剪 直线段裁剪的Cohen_Sutherland算法、*梁_Barskey算法的直接推广 多边形裁剪的Sutherland_Hodgman算法的直接推广 齐次坐标空间中的裁剪 四维裁剪体的定义,54,*图形显示过程小结(1/2),对应于三维裁剪的实现过程,1、将三维坐标扩展为齐项坐标,(x,y,z)(x,y,z,1); 2、进行模型变换; 3、进行观察变换; 4、进行视见体的规范化变换Npar或Nper; 5、除以h返回三维空间(有些情况下,h保持为1,所以不必做除法运算); 6、关于规范视见体进行裁剪; 7、将三维坐标扩展为齐项坐

18、标; 8、进行投影变换Mort或Mper; 9、进行窗口至视区的变换; 10、除以h返回二维设备坐标系 ; 11、扫描转换(显示)。,55,*图形显示过程小结(2/2),对应齐次坐标空间裁剪的实现过程,1、将三维坐标扩展为齐次坐标(对于直接用齐次坐标表示的图形不需要进行这一步); 2、进行模型变换; 3、进行观察变换; 4、进行视见体的规范化变换Npar或 ; 5、在齐项坐标空间中关于裁剪窗口裁剪; 6、进行平行投影变换Mort。 7、进行窗口至视区的变换。 8、除以h返回二维设备坐标系。 9、扫描转换(显示)。,56,57,5.6 面消隐,?基本概念 ?提高消隐算法效率的常见方法 ?画家算法

19、 ?Z缓冲器算法 ?扫描线Z缓冲器算法 ?区域子分算法 ?光线投射算法,58,基本概念,产生真实感的方法之一: 反映三维场景中的相互遮挡关系 面消隐与线消隐 表面模型与线框模型 物体表面:平面与曲面 面消隐对象: 由平面多边形构成的多面体,59,基本概念,消隐算法的分类 1)类:以窗口内的每个像素为处理单元; for (窗口内的每一个像素) 确定距视点最近的物体,以该物体表面的颜色来显示像素 2)类:以场景中的物体为处理单元; for (场景中的每一个物体) 将其与场景中的其它物体比较,确定其表面的可见部分; 显示该物体表面的可见部分; ,60,基本概念,算法复杂度 假设场景中有k个物体,平均

20、每个物体表面由h个多边形构成,显示区域中有m x n个像素,则: 第一种算法的复杂度为:O(mnkh) 第二种算法的复杂度为:O(kh)*(kh),61,提高消隐算法效率的常见方法,利用连贯性 将透视投影转换成平行投影 包围盒技术 背面剔除 空间分割技术 物体分层表示,62,提高消隐算法效率的常见方法1,利用连贯性 物体连贯性 面的连贯性 区域连贯性 扫描线的连贯性 深度连贯性,63,提高消隐算法效率的常见方法2,将透视投影转换成平行投影 消隐与透视关系密切,体现有: 1)消隐必须在投影之前完成; 2)物体之间的遮挡关系与投影中心(视点)的选取有关; 3)物体之间的遮挡关系与投影方式有关,64

21、,提高消隐算法效率的常见方法3,包围盒技术 定义:一个形体的包围盒指的是包围它的简单形体。比如, 该技术常用于: 避免盲目的求交测试; 各种物体间的比较等。 一个好的包围盒要具有两个条件: 包围和充分紧密包围着形体; 对其的测试比较简单。 例:使用矩形包围合及长方体包围合来提高算法效率,65,提高消隐算法效率的常见方法4,背面剔除 外法向 外法向与投影方向(观察方向)的夹角 前向面与后向面(背面) 剔除依据: 物体表面是封闭的,背面总是被前向面所遮挡,从而始终是不可见的。,66,提高消隐算法效率的常见方法5,空间分割技术 依据:场景中的物体,它们的投影在投影平面上是否有重叠部分?(是否存在相互

22、遮挡的可能?)对于根本不存在相互遮挡关系的物体,应避免这种不必要的测试。 方法:将投影平面上的窗口分成若干小区域;为每个小区域建立相关物体表,表中物体的投影于该区域有相交部分;则在小区域中判断那个物体可见时,只要对该区域的相关物体表中的物体进行比较即可。,67,提高消隐算法效率的常见方法5,复杂度比较: 不妨假定每个小区域的相关物体表中平均有h个物体,场景中有k个物体,由于物体在场景中的分布是分散的,显然h远小于k。根据第二种消隐方法所述,其算法复杂度为O(h*h),远小于O(k*k)。,68,提高消隐算法效率的常见方法6,物体分层表示 表示形式:模型变换中的树形表示方式 原理:减少场景中物体

23、的个数,从而降低算法复杂度。 方法: 将父节点所代表的物体看成子节点所代表物体的包围盒,当两个父节点之间不存在遮挡关系时,就没有必要对两者的子节点做进一步测试。 父节点之间的遮挡关系可以用它们之间的包围盒进行预测试。,69,画家算法,由来:画家的作画顺序暗示出所画物体之间的相互遮挡关系 算法基本思路: 1)先将场景中的物体按其距观察点的远近进行排序,结果放在一张线性表中;(线性表构造: 距观察点远的称优先级低,放在表头;距观察点 近的称优先级高,放在表尾。该表称为深度优先级表) 2)然后按照从表头到表尾的顺序逐个绘制物体。,70,画家算法,关键:如何对场景中的物体按深度(远近)排序,建立深度优

24、先级表? 一种针对多边形的排序算法如下: 假定在规范化投影坐标系uvn中,投影方向是n轴的负向,因而n坐标大距观察者近。记nmin(P) nmax(P)分别为多边形P的各个顶点n坐标的最小值和最大值,算法步骤如下:,71,画家算法,Step 1:将场景中所有多边形存入一个线性表(链表或数组),记为L; Step 2: 如果L中仅有一个多边形,算法结束;否则根据每个多边形的nmin对它们预排序。不妨假定多边形P落在表首,即nmin(P)为最小。再记Q为L P(表中其余多边形)中任意一个; Step 3: 判别P, Q之间的关系,有如下二种: step 3.1: 对有的Q,有nmax(P) nmi

25、n (Q),需进一步判别: step 3.2.1 若P,Q投影P,Q的包围盒不相交,则P,Q在表中的次序不重要,令L = L P, 返回step 2;否则进行下一步。 step 3.2.2 若P的所有顶点位于Q所在平面的不可见的一侧,则P,Q关系正确,令L = L P, 返回step 2;否则进行下一步。 step 3.2.3 若Q 的所有顶点位于P所在平面的可见的一侧,则P,Q关系正确,令L = L P, 返回step 2;否则进行下一步。 step 3.2.4 对P,Q投影P,Q求交,若P,Q不相交,则P,Q在表中的次序不重要,令L = L P, 返回step 2;否则在它们所相交的区域中

26、任取一点,计算 P,Q在该点的深度值,如果P的深度小,则P,Q关系正确,令L = L P, 返回step 2;否则交换P,Q,返回step 3.,72,画家算法,本算法不能处理的情况: 多边形循环遮挡 多边形相互穿透 解决办法:分割成两个,73,Z缓冲器算法,由来: 帧缓冲器 保存各像素颜色值 z缓冲器 -保存各像素处物体深度值 z缓冲器中的单元与帧缓冲器中的单元一一对应 思路:先将z缓冲器中个单元的初始值置为-1(规范视见体的最小n值)。当要改变某个像素的颜色值时,首先检查当前多边形的深度值是否大于该像素原来的深度值(保存在该像素所对应的Z缓冲器的单元中),如果大于,说明当前多边形更靠近观察

27、点,用它的颜色替换像素原来的颜色;否则说明在当前像素处,当前多边形被前面所绘制的多边形遮挡了,是不可见的,像素的颜色值不改变。,74,Z缓冲器算法,算法描述: for ( v= 0;v Z缓冲器的第(u,v)单元的值) 置帧缓冲器的第(u,v)单元值为当前多边形颜色; 置Z缓冲器的第(u,v)单元值为d; ,75,Z缓冲器算法,优点:简单稳定,利于硬件实现 缺点:1)需要一个额外的Z缓冲器 2)在每个多边形占据的每个像素处都要计算深度值,计算量大,76,扫描线Z缓冲器算法,由来:Z缓冲器算法中所需要的Z缓冲器容量较大,为克服这个缺点可以将整个绘图区域分割成若干个小区域,然后一个区域一个区域地显示,这样Z缓冲器的单元数只要等于一个区域内像素的个数就可以了。如果将小区域取成屏幕上的扫描线,就得到扫描

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论