This renders a polygon surface by linearly interpolating intensity values across the surface. Intensity values for each polygon are matched with the values of adjacent polygon along the common edges, thus eliminating the intensity discontinuities that can occur in flat shading. Each polygon surface is rendered with Gourand shading by performing the following calculation: (i) Determine the average unit normal vector at each polygon vertex. (ii) Apply an illumination model to each vertex to calculate the vertex intensity. (iii) Linearly interpolate the vertex intensities over the surface of the polygon. At each polygon vertex we obtain a normal vector by averaging the surface normal of all polygons sharing that vertex. Thus for vertex position V, we obtain the unit vertex normal width the calculation. One we have the vertex normal's, we determine the intensity at the vertices from a lightning model. Incremental calculations are used to obtain successive edge intensity values between scan lines and to obtain successive intensities along a scan line.