Suggestive Contours for Conveying Shape

After my first meeting about my thesis, I got the assignment to read a few papers (most of them from SIGGRAPH talks) about various topics in Non-Photorealistic Rendering. It was a good opportunity to put down the (otherwise excellent) Accelerated C++ and dive into the wonderful world of research papers.

The first one on the list was Suggestive Contours for Conveying Shape by Doug DeCarlo et al., from SIGGRAPH 2003.

The paper starts off by stating that drawing just contour lines (=edges of planes wich are perpendicular to the camera viewpoint) alone is not enough to convey shape. That’s why several artists also add extra lines, to add a certain amount of shape perception to a surface.

That’s where this paper introduces Suggestive Contours. These come into play when (very generalized) you have a point that is not a contour in viewpoint A, but might be a contour in the viewpoints surrounding A. This often results in sudden “pop-in” of contours. It’s these lines we wish to add automatically.

Three definitions are given:

  • (I) The set of points on the surface at which its radial curvature K(r) is 0, and the directional derivative of K(r) in the direction of w (which is the view vector v smashed down on the tangent plane in that point).
  • (II) The set of minima of the scalar product of n (normal at point p) and v in the direction of w.
  • (III) The set of points on the contour generator of a nearby viewpoint that are not in radial correspondence with points on the contour generators of any closer viewpoint.

All these definitions are equal, which is proven with enough maths mumbo-jumbo. An additional factor (theta(c)) is introduced. This places a tighter bound on the third (III) definition: for viewpoints very close to the viewpoint, the data is too unstable to decide whether or not a certain point is on a suggestive contour.

Two algorithms are given:

  • Object-Space: Solving the first definition (Kr = 0) gives a set of results. Then the second derivative of the point is made to exclude false points. This method needs pre-computed values of radial curvatures at the vertices (which – I suppose – are then interpolated across the polygon).
  • Image Space: A rather vague definition is given here on how to use image filters to extract suggestive contours from a given image.

In conclusion, I found this paper interesting. The results are rather spectacular when you know that all the extra lines are extracted from the geometry itself. This might be a possible topic to base my thesis on, but I’ll be looking into some more papers on other subjects in the following days.