计算机图形学-第九章讲义.ppt_第1页
计算机图形学-第九章讲义.ppt_第2页
计算机图形学-第九章讲义.ppt_第3页
计算机图形学-第九章讲义.ppt_第4页
计算机图形学-第九章讲义.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

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,如果该点位于视线到该多边形平面的直线上,则我们

4、正在看该多边形的后向面,简单测试方法一 多边形面法向量N(A, B, C),视线向量V,在世界坐标系中,若VN 0, 则为后向面,后向面判别,可通过视角判别 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

6、(x, y) = 1.0;初始化为0 refresh(x, y)=Ibg;背景色 (2) 计算多边形上各点的深度值z(x, y),并判断 if z(x, y) depth(x, y) depth(x, y) = z(x, y), refresh(x, y) = Isurf(x, y);表面颜色 ,深度缓存算法,(3) 最终结果: 深度缓冲器中保存的是可见面的深度值 刷新缓冲器中保存的是这些表面的对应属性值,如何计算多边形平面上各点的深度z(x, y) ? 采用连贯性方法以提高效率:扫描线,深度缓存算法,水平方向:线上相邻点间的x水平位移为1 竖直方向:相邻扫描线间的y垂直位移也为1,沿一条y=

7、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, y - 1)z (x - 1/m, y - 1) = z + (A/m + B)/C,深度缓存算法,改进算法 采用中点法或Bresenham类算法,为每条扫描线确定最左边的x坐标,可回忆多边形扫描线填充算法 改进算法还用于处理曲面,计算各表面投影点的深度和颜色值,深度缓存算法,评价 易于实现,无需将场景中的表面进行排序; 空间需求大:除帧缓存外,需要深度缓存; 基本深度缓存算法经常执行一些不需要的计算; 只能处理非透明表面; 对于复杂场景的性能较好; 高档计算机图形系统一般集成了深度缓存算法的硬件实现。,深度缓存算法,不同的算法有不同的

温馨提示

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

评论

0/150

提交评论