1、第九章 可见面判别算法,本章重点讲述内容: 后向面消除法 深度缓冲器算法 A缓冲器算法 深度排序算法,可见面判别 消隐_在绘制时隐藏实际不可见的线和面消隐的考虑: 三维物体的真实图形 选择不同的消隐算法,第九章 可见面判别算法,可见面判别算法,按实现空间分类 物空间算法 像空间像法,第九章 可见面判别算法,可见面判别算法,物空间算法 在对象定义时所处的坐标系中实现。 这种方法把物体和物体的某些部分彼此比较,通过有关几何运算,以确定哪些线或表面是不可见的然后仅显示可见线,以此实现消隐, 算法精度较高,生成的图形可以放大多倍而仍然令人满意,适用于精密的工程应用领域,像空间算法 在显示图形的屏幕坐标
2、系中实现 对投影平面或显示屏幕上的每一个像素位置逐点地检测其可见性。 算法比较粗糙而且按图像空间算法得到的画面在放大后往往不能令人满意。 算法计算效率比较高,因为在光栅扫描过程中可以充分利用画面的连贯性等性质,可见面判别算法,两个方法一般都利用排序和连贯性来提高算法性能 排序主要用在深度比较 连贯性利用图形的规则性,可见面判别算法,13.1 可见面判别算法的分类,可见面判别算法 后向面消除法 深度缓冲器算法 A缓冲器算法 深度排序算法,后向面判别,思想 平面方程: Ax+By+Cz+D=0 如果点(x, y, z)为视线上的点,并且满足Ax+By+Cz+D 0 该平面为后向面,简单测试方法一
3、多边形面法向量N(A, B, C),视线向量V,世界坐标系 若VN 0, 则为后向面,视角 简单测试方法二 V=(0, 0, Vz),右手观察坐标系; VN=VzC,若C 0,则为后向面,后向面判别,后向面判别,总结是一种高效的物空间算法;可用于预处理。,也叫Z缓冲器算法 思想:对投影平面上每个像素所对应的表面深度进行比较,深度缓冲器算法,如图,s1平面距离投影平面最近,所以投影点(x,y)将保存s1平面上相应点的属性信息。,深度缓冲器算法,Xv,Zv,Yv,观察方向,(x,y),s1,s2,s3,缓冲区 深度缓冲区(Z缓冲区) 刷新缓冲区 算法的实质对给定的x, y,寻找最小的z(x, y)
4、,深度缓冲器算法,深度缓冲器算法,算法描述: 缓冲器初始化depth(x, y)=0, refresh(x, y)=Ibg 计算多边形上各点的深度值z(x, y)并判断if z(x, y) depth(x, y) depth(x, y) = z(x, y),refresh(x, y) = Isurf(x, y),深度缓冲器算法,最终结果:深度缓冲器中保存的是可见面的深度值,刷新缓冲器中保存的是这些表面的对应属性值。,如何计算多边形平面上各点的深度z(x, y) ? 采用连贯性方法以提高效率 沿一条y=const的扫描线计算各点的深度假设平面方程为:Ax+By+Cz+D=0 已知z(x, y),
5、求z(x+1, y) z (x+1, y) = z - (A/C) 沿多边形的左边界计算各点的深度已知z(x, y),求z(x-1/m, y-1) z (x-1/m, y-1) = z + (A/m + B)/C,深度缓冲器算法,评价 易于实现; 空间需求大; 只能处理非透明表面; 对于复杂场景的性能较好。,深度缓冲器算法,思想 对深度缓冲器算法进行扩展,使每个像素点对应一个表面链表。 A的含义: 反走样(antialiased) 区域平均(area-averaged) 累计缓冲器(accumulation-buffer),A缓冲器算法,单元的深度域和强度域:,A缓冲器法,情况1:只有一个表面
6、覆盖该像素,情况2:有多个表面覆盖该像素,Surf(i)中含有的数据项: RGB强度分量 表面的标识名 透明性参数 其他表面绘制参数 深度 覆盖度 指向下一表面的指针,A缓冲器算法,评价 是深度缓冲器算法的改进; 可以处理透明表面; 可以对物体的边界进行反走样处理。,A缓冲器算法,深度排序算法,也叫画家算法 思想:若场景中任何多边形表面在深度上均不贯穿或循环遮挡,则各多边形的优先级顺序可完全确定 深度排序算法: 将表面按深度递减方向排序 由深度最大的表面开始,逐个对表面进行扫描转换 算法同时运用物空间与像空间操作,深度排序算法,深度无重叠情况:按深度优先级顺序处理各个表面,s和s无深度重叠,深度排序算法,深度有重叠情况:对与s平面重叠的表面s分别作如下测试: 两表面在xy平面上投影的包围矩形无重叠 相对于观察位置,面s完全位于重叠表面之后 相对于观察位置,重叠表面完全位于面s之前 两表面在观察平面上的投影无重叠 结论:只要有一个条件为真,则s和s无需重新排序 四个条件的测试方法:P438439,评价 对于在z方向上分离的表面组成的场景,深度排序算法效率高; 对于表面较少的场景是高效的。,深度排序算法,不同的算法有不同的应用背景 可见面判别算法常常是硬件实现,可见面判别算法小结,