230 likes | 446 Views
Suggestive Contours for Conveying Shape. Doug DeCarlo, Adam Finkelstein, Szymon Rusinkiewicz, and Anthony Santella. Problem. What measures can we use besides contours and creases to convey shape? Contours are good, but they don’t convey enough of the object. Suggestive Contours.
E N D
Suggestive Contours for Conveying Shape Doug DeCarlo, Adam Finkelstein, Szymon Rusinkiewicz, and Anthony Santella
Problem • What measures can we use besides contours and creases to convey shape? • Contours are good, but they don’t convey enough of the object.
SuggestiveContours • Include features that are almost contours by: • Extending current contours. • Anticipating almost contours.
How? First we need a couple of definitions • Contour – where dot(n,v) = 0 (aka silhouette). • Curvature • Reciprocal of the radius of the circle that best approximates the curve at P. • Radial Curvature
Idea • Include the lines marking features where the surface bends sharply away from the viewer. • That is, we want points where the radial curvatures is zero, and the surface is bending away from the viewer. • This will give us the contours of nearby viewpoints.
Definition I Zeroes of Radial Curvature • Radial curvature = 0 • The derivative of the radial curvature in the direction of w is > 0.
Definition II Minima of Dot(n,v) • The suggestive contour generator is the set of minima of dot(n,v) in the direction of w.
Stability • As viewing vector nears n, the suggestive silhouette has many responses to even small changes in viewpoint. • If (Dot(n,v) / || v ||) < cos(theta) we declare the suggestive silhouette unstable. • Experimentally determined useful values for theta range from 20-30 degrees.
Object Space Algorithm Comes from definition I. • Calculate curvature of all vertices of the model. Linearly interpolate for Kr = 0, and save these points. • Cull any points where the curvature derivative <= 0. • Remove unstable points dot(n,v) / ||v|| < cos(theta) theta is chosen interactively by user.
Image Space Algorithm Comes from definition II. • Render with diffuse light source at the camera - this gives approximation of dot(n,v). • Check each pixel pi. Check other pixels in radius r. Call the darkest pixel in this neighborhood pmax. If pmax – pi > d and the percentage of pixels in the neighborhood darker than pi is less than s, pixel pi is added to the suggestive contour.
Object Space VS Image Space • Object space algorithm generates continuous strokes paths. • Object space algorithm is faster than the image space algorithm for mediumly complex models and large images. • Object space algorithm relies on preprocessing of curvature.
Problems • Nasty adjustable constants for stability. (Theta in object space algorithm, r & s in the image space algorithm) • What happens when we animate the picture? Unstable suggestive contours cause flickering. • Objects without concavities have no suggestive contours.
Future Work • Applying strokes and styles. • Speeding up the algorithm through randomized testing. • Determining the causes/properties of unstable suggestive contours. • See Interactive Rendering of Suggestive Contours at NPAR 2004!
Smoothness • How do we know that these new lines/points will merge smoothly with the old ones? • Two cases
Extension Intersections between suggestive contours and contours always occur at ending contours.
Definition III Contours of Nearby Viewpoints • Suggestive contours are formed by those points that are contours in nearby viewpoints, but do not have corresponding contours in any closer views. • If the viewpoint is within 90 degrees of p’s normal along the radial plane, p is either not visible or p is a contour, or none of p’s neighbors are contours.