We present an approach for the recognition of multiple 3-D object models from three 3-D scene data. We work on dense data, but neither the models nor the scene data have to be complete. We are addressing the problem in a realistic environment; the viewpoint is arbitrary, the objects vary widely in complexity, and we make no assumptions about the structure of the surface. Our approach is novel in that it uses two different types of primitives for matching: small surface patches, where differential properties can be reliably computed, and lines corresponding to depth or orientation discontinuities. These are represented by splashes and 3-D curves, respectively. We show how both of these primitives can be encoded by a set of super segments, consisting of connected linear segments. These super segments are entered into a table and provide the essential mechanism for fast retrieval and matching. We address in detail the issues of robustness and stability of our features. The acquisition of the 3-D models is performed automatically by computing splashes in highly structured areas of the objects and by using boundary and surface edges for the generation of 3-D curves. For every model, all features are recorded in a database. The scene is screened for highly structured areas, and splashes are computed in these areas and encoded. 3-D curves, corresponding to depth or orientation discontinuities, are also encoded. These features are used to retrieve hypotheses from the database. Clusters of mutually consistent hypotheses represent instances of models. The precise pose of a model instance in the scene is found by applying a least squares match on all corresponding features. We present results with our current system (three dimensional object recognition based on super segments (TOSS)) and discuss further extensions.