Z-bufr算法的步骤如下: 1.初始化:把Z缓存中各(xy)单元置为z的最小值,而 帧缓存各(xy)单元置为背景色 2.在把物体表面相应的多边形扫描转换成帧缓存中的 信息时,对于多边形内的每一采样点(xy)进行处理: (1)计算采样点xy)的深度z(xy); (2)如z(xy)大于Z缓存中在(xy)处的值,则把z(xy)存入Z 缓存中的(xy)处,再把多边形在z(xy)处的颜色值存入 帧缓存的(xy)地址中 2021/2/21 华中理工大学计算机学院陆枫 6 99-7
2021/2/21 华中理工大学计算机学院 陆枫 99-7 6 Z-buffer算法的步骤如下: 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)地址中
问题:计算采样点(x2y)的深度x2y) 假定多边形的平面方程为:Ax+By+Cz+D=0。 z(x,y)=s4x-By-D C 2021/2/21 华中理工大学计算机学院陆枫 7 99-7
2021/2/21 华中理工大学计算机学院 陆枫 99-7 7 问题:计算采样点(x,y)的深度z(x,y)。 假定多边形的平面方程为:Ax+By+Cz+D=0。 C Ax By D z x y − − − ( , ) =
利用连贯性加速深度的计算: y 人多边形 y-1 扫描线 x+1 图92利用扫描线的连贯性加速深度的计算 2021/2/21 华中理工大学计算机学院陆枫 8 99-7
2021/2/21 华中理工大学计算机学院 陆枫 99-7 8 利用连贯性加速深度的计算: 图9-2 利用扫描线的连贯性加速深度的计算 0 x y x x+1 y y-1 扫描线 多边形
扫描线上所有后继点的深度值: z(x+ )-A(x+1)-B-D=2(xy子 C C ·当处理下一条扫描线y=y-1时,该扫描线上与多边形相 交的最左边(x最小)交点的x值可以利用上一条扫描线 上的最左边的x值计算: 1 xy-1,min=x y,mn 2021/2/21 华中理工大学计算机学院陆枫 9 99-7
2021/2/21 华中理工大学计算机学院 陆枫 99-7 9 扫描线上所有后继点的深度值: • 当处理下一条扫描线y=y-1时,该扫描线上与多边形相 交的最左边(x最小)交点的x值可以利用上一条扫描线 上的最左边的x值计算: ( , ) ( 1) ( 1, ) C A z x y C A x By D z x y = − − + − − + = 1 1,min ,min k x x y− = y −