《第9章消隐.PPT》由会员分享,可在线阅读,更多相关《第9章消隐.PPT(26页珍藏版)》请在三一文库上搜索。
1、2019/7/16,华中理工大学计算机学院 陆枫 99-7,1,第9章 消隐,提出问题,物体的消隐或隐藏线面的消除:在给定视点和视线方向后,决定场景中哪些物体的表面是可见的,哪些是被遮挡不可见的。物体的消隐或隐藏线面的消除。,2019/7/16,华中理工大学计算机学院 陆枫 99-7,2,图象空间消隐算法以屏幕象素为采样单位,确定投影于每一象素的可见景物表面区域,并将其颜色作为该象素的显示颜色。 景物空间消隐算法直接在景物空间(观察坐标系)中确定视点不可见的表面区域,并将它们表达成同原表面一致的数据结构。,2019/7/16,华中理工大学计算机学院 陆枫 99-7,3,图象空间消隐算法:有深度
2、缓冲器算法、A缓冲器算法、区间扫描线算法等。 景物空间消隐算法:BSP算法、多边形区域排序算法。 介于二者之间:深度排序算法、区域细分算法、光线投射算法等。 两个基本原则:排序、连贯性 选择z轴的负向为观察方向,2019/7/16,华中理工大学计算机学院 陆枫 99-7,4,9.1 深度缓存器算法(Z-buffer算法),Z-buffer算法的原理: 例如:,2019/7/16,华中理工大学计算机学院 陆枫 99-7,5,两块缓冲区: Z缓存:保存屏幕坐标系上各象素点所对应的深度值 帧缓存:保存各点的颜色。,2019/7/16,华中理工大学计算机学院 陆枫 99-7,6,Z-buffer算法的
3、步骤如下: 1初始化:把Z缓存中各(x,y)单元置为z的最小值,而帧缓存各(x,y)单元置为背景色。 2在把物体表面相应的多边形扫描转换成帧缓存中的信息时,对于多边形内的每一采样点(x,y)进行处理: (1)计算采样点(x,y)的深度z(x,y); (2)如z(x,y)大于Z缓存中在(x,y)处的值,则把z(x,y)存入Z缓存中的(x,y)处,再把多边形在z(x,y)处的颜色值存入帧缓存的(x,y)地址中。,2019/7/16,华中理工大学计算机学院 陆枫 99-7,7,问题:计算采样点(x,y)的深度z(x,y)。 假定多边形的平面方程为:Ax+By+Cz+D=0。,2019/7/16,华中
4、理工大学计算机学院 陆枫 99-7,8,利用连贯性加速深度的计算:,2019/7/16,华中理工大学计算机学院 陆枫 99-7,9,扫描线上所有后继点的深度值:,当处理下一条扫描线y=y-1时,该扫描线上与多边形相交的最左边(x最小)交点的x值可以利用上一条扫描线上的最左边的x值计算:,2019/7/16,华中理工大学计算机学院 陆枫 99-7,10,扫描线深度缓存器算法(扫描线Z-buffer算法) 特点分析:A缓冲器算法,2019/7/16,华中理工大学计算机学院 陆枫 99-7,11,9.2 区间扫描线算法,算法原理:避免对被遮挡区域的采样是进一步提高扫描线算法计算效率的关键,2019/
5、7/16,华中理工大学计算机学院 陆枫 99-7,12,算法: 三张表:边表、多边形表、有效边表。 算法的关键:分割子区间,确定子区间上的唯一可见面。 特殊情形:贯穿情形、循环遮挡情形。,2019/7/16,华中理工大学计算机学院 陆枫 99-7,13,贯穿情形: 为了使算法能处理互相贯穿的多边形,扫描线上的分割点不仅应包含各多边形的边与扫描线的交点,而且应包含这些贯穿边界与扫描线的交点,2019/7/16,华中理工大学计算机学院 陆枫 99-7,14,循环遮挡: 将多边形进行划分以消除循环遮挡,2019/7/16,华中理工大学计算机学院 陆枫 99-7,15,例如:,2019/7/16,华中
6、理工大学计算机学院 陆枫 99-7,16,9.3 深度排序算法(画家算法),算法原理:若场景中任何多边形在深度上均不贯穿或循环遮挡,则各多边形的优先级顺序可完全确定。 深度排序算法: 1.将多边形按深度进行排序:距视点近的优先级高,距视点远的优先级低。 2.由优先级低的多边形开始逐个对多边形进行扫描转换。 其中的关键是将多边形按深度进行排序。,2019/7/16,华中理工大学计算机学院 陆枫 99-7,17,2019/7/16,华中理工大学计算机学院 陆枫 99-7,18,2019/7/16,华中理工大学计算机学院 陆枫 99-7,19,9.4 区域细分算法,算法原理 一种简单的细分方式是将区
7、域分割为四块大小相等的矩形,2019/7/16,华中理工大学计算机学院 陆枫 99-7,20,2019/7/16,华中理工大学计算机学院 陆枫 99-7,21,可见性测试,自适应细分,2019/7/16,华中理工大学计算机学院 陆枫 99-7,22,9.5 光线投射算法,算法原理:,2019/7/16,华中理工大学计算机学院 陆枫 99-7,23,算法步骤可简单描述如下: 1. 通过视点和投影平面(显示屏幕)上的所有象素点作一入射线,形成投影线。 2. 将任一投影线与场景中的所有多边形求交。 3. 若有交点,则将所有交点按z值的大小进行排序,取出最近交点所属多边形的颜色;若没有交点,则取出背景的颜色。 4. 将该射线穿过的象素点置为取出的颜色。,2019/7/16,华中理工大学计算机学院 陆枫 99-7,24,9.6 BSP树算法,算法原理 实例说明,2019/7/16,华中理工大学计算机学院 陆枫 99-7,25,9.7 多边形区域排序算法,算法思想: 将多边形按深度值由小到大排序,用前面的可见多边形去切割位于其后的多边形,使得最终每一个多边形要么是完全可见的,要么是完全不可见的。,2019/7/16,华中理工大学计算机学院 陆枫 99-7,26,习题,
链接地址:https://www.31doc.com/p-3137726.html