1. A computer-implemented method, comprising: defining a set of normal vectors corresponding to a set of pixels in an image, each normal vector of the set of normal vectors defined in terms of an azimuth and a zenith measured in a spherical coordinate system centered on a light source illuminating the image; constraining the zenith of each normal vector based on an observed shading of a respective pixel of the set of pixels; and constructing a shape from the image that comprises minimizing an energy function of the set of normal vectors, the azimuth and the zenith treated separately to specify constraints on an azimuth value and a zenith value for the azimuth and the zenith, respectively, of each normal vector, the minimizing the energy function further comprises constraining the azimuth of each normal vector based on an image gradient of the image at each respective pixel to enforce a coplanar assumption between the image gradient expressed in a 3-dimensional space and the respective normal vector.