When artists design imagery to portray a visual scene, they need not just render visual information veridically. They can select the visual cues to portray, and adapt the information each carries. Their results can depart dramatically from natural scenes, but can nevertheless convey visual information effectively, because viewers' perceptual inferences still work flexibly to arrive at a consistent understanding of the imagery.
We suggest that lines in line-drawings can convey information about shape in this indirect way, and work to develop tools for realizing such lines automatically in non-photorealistic rendering. In the figure above, the picture on the left renders silhouettes. The picture in the center renders occluding contours, and shows that contours, on their own, can be quite limited in the information they convey about shape. The picture on the right, however, includes additional lines we call suggestive contours that convey an object's shape consistently and precisely.
Suggestive contours are distinct from creases and lines along ridges or valleys. They are in some sense an extension of contours to account for "nearby" viewpoints. In the following paper, we introduce suggestive contours by providing three equivalent mathematical characterizations, along with some descriptive results. We also describe algorithms for their computation, and show a number of results and comparisions to alternative approaches.
One of the more pressing questions about suggestive contours was whether they exhibited temporally coherent behavior for a moving camera. We explore this question, along with a number of other issues in the following paper:
Extracting suggestive contours requires good estimates of curvature and derivative of curvature. The following paper describes our algorithm for computing these quantities on triangle meshes:
More recently, we have investigated algorithms for efficient extraction of linear features from volume data:
And also highlight lines, drawn in white, that also convey shape:
Click here for some pictures, together with the 3D models from which they were generated.
Suggestive contour software: rtsc
rtsc is an interactive viewer for suggestive contours and highlights
(and other types of lines, such as
ridges) starting from 3D models.
The distribution includes Win32 and Linux x86 binaries, as well as source code. All files are distributed under the GNU General Public License (GPL).
To run rtsc, simply pass in a 3D triangle mesh file on the command line. Under Windows, you should also be able to "drag-n-drop" a model file onto the rtsc binary. rtsc can read most flavors of PLY files, as well as many OFF, 3DS, and Wavefront OBJ files (some models are available from our gallery page). Please see the enclosed README for a description of options and mouse buttons.
Source code is included in the zip file and tarball above, and you will also need the latest version of the trimesh2 library. The source is in C++, and is known to compile with g++ version 3.3.x or later (in its native, Cygwin, and Mingw32 incarnations). Some versions of g++ are buggy: if you get unexpected behavior, try turning off loop unrolling (remove -funroll-loops from the appropriate Makedefs file) or disabling optimization altogether.
Please contact Szymon Rusinkiewicz if you have any questions about the code.