Photometric stereo is an image processing technique for 2 ~ dimensional surface reconstruction from local shading. The classical theory of photometric stereo has been developed only for surfaces that reflect in a Lambertian plus specular manner. However, there is plenty of experimental evidence that most real-world surfaces are not Lambertian plus specular.This thesis develops the theory of photometric stereo for non-Lambertian surfaces. First, based on the physics of reflection and scattering, a general class of reflectance maps is proposed. This class is shown to model real world data more accurately than the Lambertian model. Then, the normalized photometric stereo equation using these reflectance maps is analyzed and conditions for a globally unique solution for the equation are obtained. Furthermore, the un-normalized photometric stereo equation is studied and conditions for getting a globally unique solution using only three light sources are identified. The problem of jointly estimating the reflectance map and the surface normal is proposed and shown to be ill-posed. A regularized solution to the problem is demonstrated. Finally, it is shown that extra light sources are needed to obtain a complete reconstruction of the surface, and the number of new light sources needed to achieve this is identified.