1. A method in a computing system having a processor for tracking the-movement of a surface having an arbitrary appearance relative to a camera, comprising: capturing an image of the surface using the camera; analyzing by the computing system the captured image of the surface to identify visual features present in the image surface; from the identified visual features, selecting by the computing system a plurality of visual features for use in tracking the movement of the surface with respect to the camera, wherein the selection of identified features includes selecting visual features in at least two different size ranges; selecting one of the size ranges based upon a measure of distance from the camera to a present location of the surface; receiving by the computing system a sequence of images captured by the camera, at least some of which constitute a view of at least a portion of the surface; for each image of the sequence: identifying by the computing system 2-dimensional positions at which the selected features occur in the image; and based upon the 2-dimensional positions at which the selected features are identified in the image, determining by the computing system 3-dimensional location and orientation of the surface in the image of the sequence with respect to the camera, wherein selected features in the selected size range are used to determine the location and orientation of the surface.