void zBuffer(void) { int x,y; for(y=0;y<YMAX;y++){ /* Clear frame buffer and z-buffer */ for(x=0;x<XMAX;x++){ WritePixel(x,y,BACKGROUND_VALUE); WriteZ(x,y,0); } } for(each polygon){ /* Draw polygons */ for(each pixel in polygon's projection){ double pz=polygon's z-value at pixel coords(x,y); if(pz>ReadZ(x,y){ /* New point is not farther */ WriteZ(x,y,pz); WritePixel(x,y,polygon's color at pixel coords (x,y)) } } } } /* z-buffer */