计算机图形学-第九章讲义.ppt

上传人:小飞机 文档编号:6059365 上传时间:2023-09-19 格式:PPT 页数:25 大小:316KB
返回 下载 相关 举报
计算机图形学-第九章讲义.ppt_第1页
第1页 / 共25页
计算机图形学-第九章讲义.ppt_第2页
第2页 / 共25页
计算机图形学-第九章讲义.ppt_第3页
第3页 / 共25页
计算机图形学-第九章讲义.ppt_第4页
第4页 / 共25页
计算机图形学-第九章讲义.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《计算机图形学-第九章讲义.ppt》由会员分享,可在线阅读,更多相关《计算机图形学-第九章讲义.ppt(25页珍藏版)》请在三一办公上搜索。

1、第九章 可见面判别算法,本章重点讲述内容:后向面消除法深度缓存算法,可见面判别:判别从某一选定观察位置所能看到的场景中的内容消隐:在绘制时隐藏实际不可见的线和面消隐的考虑:三维物体的真实图形选择不同的消隐算法,第九章 可见面判别算法,可见面判别算法,按实现空间分类物空间算法像空间像法,第九章 可见面判别算法,可见面判别算法,物空间算法在对象定义时所处的坐标系中实现。这种方法把物体和物体的某些部分彼此比较,通过有关几何运算,以确定哪些线或表面是不可见的。然后仅显示可见线,以此实现消隐算法精度较高,生成的图形可以放大多倍而仍然令人满意,适用于精密的工程应用领域,像空间算法在显示图形的屏幕坐标系中实

2、现对投影平面或显示屏幕上的每一个像素位置逐点地检测其可见性。算法比较粗糙而且按图像空间算法得到的画面在放大后往往不能令人满意。算法计算效率比较高,因为在光栅扫描过程中可以充分利用画面的连贯性等性质,可见面判别算法,两类方法一般都利用排序和连贯性来提高算法性能排序主要用在深度比较连贯性利用图形的规则性,可见面判别算法,提高可见面判别算法效率的常用方法,扫描线连贯性:一条扫描线可能包含相同强度的像素区段,并且相邻扫描线之间的图案变化很小,区域连贯性:动画中的各帧之间仅在运动对象的相邻区域内有差异,并且通常可以建立起场景中的对象与场景表面之间的稳定关系,利用连贯性:充分利用场景的规则性特征,提高可见

3、面判别算法效率的常用方法,将场景中的对象表面根据它们与观察平面的距离进行排序,可以加速深度比较,利用排序提高效率,13.1 可见面判别算法的分类,可见面判别算法后向面消除法深度缓存算法,后向面判别,平面方程:Ax+By+Cz+D=0,点(x,y,z)与平面的位置关系Ax+By+Cz+D 0(x,y,z)在平面上Ax+By+Cz+D 0(x,y,z)在平面前方,后向面判别,后向面判别思想 设点(x,y,z)满足Ax+By+Cz+D 0,如果该点位于视线到该多边形平面的直线上,则我们正在看该多边形的后向面,简单测试方法一 多边形面法向量N(A,B,C),视线向量V,在世界坐标系中,若VN 0,则为

4、后向面,后向面判别,可通过视角判别VN=|V|N|cos,if 090,then 面不可见,简单测试方法二 若将对象描述转换至投影坐标系后,观察方向平行于观察坐标系中zv轴,则仅需要考虑法向量N(A,B,C)的z分量,后向面判别,右手观察坐标系若C 0,则为后向面,后向面判别,总结对于一个对象的所有表面,通过检查C,可迅速判别出所有的后向面凸多面体:面要么完全可见,要么完全不可见,该方法能判别出所有隐藏面凹多面体:有遮挡,主要是部分遮挡,还需要其他方法检查部分遮挡是一种高效的物空间算法可用于预处理,思想:是一个比较常用的判定对象表面可见性的像空间算法在投影面上的每个像素位置比较场景中所有面的深

5、度对场景中的各个对象表面单独进行处理,且在表面上逐点进行由于通常沿着观察系统的z轴来计算各对象距观察平面的深度,也叫Z缓冲器算法,深度缓存算法,s1平面距离投影平面最近,所以投影点(x,y)将保存s1平面上相应点的属性信息,深度缓存算法,深度与可见性,深度缓存算法,缓冲区:两个缓冲区深度缓冲区(Z缓冲区)刷新缓冲区算法实质:对给定的x,y,寻找最小的z(x,y),深度缓存算法,深度缓存算法,算法描述:(1)缓冲器初始化depth(x,y)=1.0;初始化为0 refresh(x,y)=Ibg;背景色(2)计算多边形上各点的深度值z(x,y),并判断 if z(x,y)depth(x,y)dep

6、th(x,y)=z(x,y),refresh(x,y)=Isurf(x,y);表面颜色,深度缓存算法,(3)最终结果:深度缓冲器中保存的是可见面的深度值 刷新缓冲器中保存的是这些表面的对应属性值,如何计算多边形平面上各点的深度z(x,y)?采用连贯性方法以提高效率:扫描线,深度缓存算法,水平方向:线上相邻点间的x水平位移为1竖直方向:相邻扫描线间的y垂直位移也为1,沿一条y=const的扫描线计算各点的深度 设平面方程为:Ax+By+Cz+D=0 已知z(x,y),求z(x+1,y)z(x+1,y)=z-(A/C)沿多边形的左边界计算各点的深度,设边斜率为m 已知z(x,y),求z(x-1/m

7、,y-1)z(x-1/m,y-1)=z+(A/m+B)/C,深度缓存算法,改进算法采用中点法或Bresenham类算法,为每条扫描线确定最左边的x坐标,可回忆多边形扫描线填充算法改进算法还用于处理曲面,计算各表面投影点的深度和颜色值,深度缓存算法,评价易于实现,无需将场景中的表面进行排序;空间需求大:除帧缓存外,需要深度缓存;基本深度缓存算法经常执行一些不需要的计算;只能处理非透明表面;对于复杂场景的性能较好;高档计算机图形系统一般集成了深度缓存算法的硬件实现。,深度缓存算法,不同的算法有不同的应用背景如果场景中的表面沿视线的分布较广,从而在深度上重叠较少,则深度排序或BSP树方法的效率一般较高在投影面上的投影有较少投影时,扫描线或区域细分方法是较快定位可见面的方法可见面判别算法常常是硬件实现,可见面判别算法小结,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号