This paper studies geometric features of surfaces that can be computed directly from stereo, motion, and shading. In the first part it is shown that the sign of the Gaussian curvature and the direction of motion can be computed directly from motion disparities. First, the sign of the normal curvature in a given direction at a given point in the image is obtained without the computation of the depth or slant/tilt map, given any two matched images, taken from stereo or general motion. The curvature sign is obtained from a 2-D geometrical relation, which involves the difference of slopes of line-segments in one image. Using this result local surface patches are classified as convex, concave, parabolic (cylindrical), hyperbolic (saddle point), or planar with a simple computation. This classification can be useful for the segmentation of objects into parts and for the construction of a concise object representation. When three (or more) such points are used, the focus of expansion, or the point toward which the motion is directed, is computed. In the second part the computation of geometric features from local shading analysis is studied. Local shading is ambiguous. For example, concave, convex, and saddle-like surfaces exist that appears the same from certain viewpoints. The shading approximation to shape, i.e., the relationship between the shape of the shading, the surface whose depth at each point equals the brightness in the image, and the shape of the original surface are discussed. This approximation is shown to be exact for more families of surfaces than other known local shape from shading techniques. It is obtained in the coordinate system of the light source. Without knowledge of the light source direction, it is shown that this approximation can be used to obtain some geometrical properties of surfaces, such as the sign of the Gaussian curvature.