A z-buffer technique of exhaustive sampling is disclosed for rendering general surfaces in a computer graphics system. The system avoids the need for surface normal calculations or the computation of surface intersections with either ray or plane. It employs a dense surface scan of the object, which produces sample points on the surface. The samples thus obtained are passed through viewing transformations and then sorted into a z-buffer. The z-buffer retains the nearest sample to the viewer for each pixel, recording its x, y and z co-ordinates in object space. The surface normal at each pixel is estimated by comparison of neighboring entries and the corresponding intensity value is computed according to a standard illumination model.
As disclosed, the system is applicable to a wide variety of surface types, e.g. parametric, implicit and procedurally defined surfaces; and to a wide variety of display styles such as shadowing, texturing and hidden-line.