1. A method of recognizing objects under various lighting conditions comprising the steps of: (a) providing a database comprising a plurality of three dimensional models, (b) providing an input image, (c) positioning each three dimensional model relative to the input image, (d) determining, for each three dimensional model, a rendered image which is most similar to the input image, said determining step comprising: (i) deriving a reflectance function that describes an approximation of the set of all possible rendered images that each three dimensional model can produce under all possible lighting conditions, said rendered images including both diffusely and broadened-specularly reflected light; and (ii) optimizing the reflectance function to determine rendered image of each model that is most similar to the input image; (e) computing a measure of similarity between the input image and each optimal rendered image; and (f) selecting the three dimensional model corresponding to the optimal rendered image whose measure of similarity is most similar to the input image.