例(7-5-2)
扫描线Z-buffer算法()
{
1) 对每个多边形求取其顶点中所含的y的最小值ymin和最大值ymax,按ymin进行排序,将多边形置入多边形y桶;
2) 活化多边形表APT,活化边表AET初始化为空;
3) For(每条扫描线i,i从小到大)
{
(1) 帧缓存CB置为背景色;
(2) 深度缓存ZB置为负无穷大(因为视方向为Z轴的负方向);
(3) 将多边形y桶中对应扫描线i的新的多边形加入到活化多边形表APT中;
(4) 对新加入的多边形,生成其相应的边Y桶;
(5) 对APT中每一个多边形,若其边Y桶中对应扫描线i增加了新的边,则将新的边配对,加到活化边对表AET中;
(6) for(AET中的每一对边)
{
for (每一个满足xl <j < xr的象素j)
{
d = z +Δzl; //深度depth
if (d > ZB(i,j))
{
ZB(i,j) =d;
计算当前象素点的颜色值c;
写帧缓存CB(i,j)=c;
}
}
}

(7) 删除APT中多边形顶点最大y坐标为i的多边形,并删除相应的边;
(8) for (活化边表AET中的每一个边对)
{
if (ylmax=i && yrmax=i) 删除ylmax和yrmax已等于i的边对;
else if (ylmax或yrmax 已等于i)
{
删除ylmax或yrmax 已等于i的边;
对该多边形的边重新配对;
}
//用增量公式计算新的xlxrzl
 xl=xl+Δxl;
 xr=xr+Δxr;
 zl=zl+Δxl Δzl +Δz ;
}
}
}