1. A computer program product tangibly embodied in a machine-readable storage device, the product comprising instructions operable to cause a data processing apparatus to: receive a signal to produce an image, the image to include a first object; determine the location of a vertex of the first object; determine a global ambient occlusion (AO) at the vertex of the first object using a first technique; determine a local ambient occlusion (AO) at the vertex of the first object using a second technique; determine a total ambient occlusion (AO) at the vertex of the first object as a function of the local AO and global AO; and, produce the image, the shading at the vertex of the first object to be dependent on the total AO, wherein the image includes other objects formed on triangle-based models comprising a plurality of triangles and approximated by sphere-based models comprising a plurality of spheres, wherein the local AO is determined as a function of the geometry of a set of triangles in the triangle-based model.