A dynamic span storing method is presented to reduce the large space requirement of the conventional z-buffer algorithm for hidden surface removal, but retain the simplicity to calculate spans of polygons. The method is also applied to the conventional scan-line algorithm using span coherence, resulting in a new scan-line algorithm having a much simpler control in span manipulation. A new polygon filling scheme is also presented for span generation, which handles singularities properly in all cases.