Transcript Suggestive Contours for Conveying Shape
Suggestive Contours for Conveying Shape
CS 174 Robert Li May 24, 2004 Sorce: Suggestive Contours for Conveying Shape. (SIGGRAPH 2003) Doug DeCarlo, Adam Finkelstein, Szymon Rusinkiewicz, Anthony Santella. 1
Contours
S = a smooth closed surface n(p) = unit surface normal at p v(p) = c - p, the view vector p = a point on S c = the camera Contour Generator = all p s.t.
n
(p) ٠
v
(p) = 0 set of points on the surface such that the unit surface normal is perpendicular to the view vector.
Contour = The visible portions of the contour generator projected onto the image plane
Curvature
The curvature k(p) = The reciprocal of the radius of the circle that best approximates the curve at p.
w = The projection of v onto the tangent plane.
The radial plane = Plane defined by the vectors
n
,
w
and the point p.
The radial curve = The set of points in S intersect the radial plane.
w = The un-normalized projection of v onto the tangent plane at p
Suggestive Contours
Definition I Suggestive Contour Generator (I) : The set of points on the surface at which its radial curvature k r is 0, and the directional derivative of k direction of w is positive: D w k r > 0 r in the
Equivalent Definitions
Definition II and III Suggestive Contour Generator (II) the direction of
w
.
= The set of minima of
n
٠
v
in ► Suggestive Contour Generator (III) The set of points on the contour generator of a nearby viewpoint (of radial distance less than 90 degrees) that are not in radial correspondence with points on the contour generators of any (radially) closer viewpoint ► Additionally
Object Space Algorithm
Test each triangle for two vertices whose sign of n dot v is different. Interpolate to get the zero crossing (Hertzmann zero crossing algorithm for smooth surfaces) Find k
r
(p) = k 1 (p) cos 2 and k 2 Φ+ k 2 (p) sin 2 Φ for each point. k 1 are the principle curvatures of the face and Φ is the angle between w(p) and the principle curvature direction corresponding to k 1 Find the zeros of k r (p) using the zero crossing algorithm These should be loops on the surface Calculate D w k r and make sure it is positive Handle numerical errors
Image Space Algorithm
Approximate
n
٠ camera origin.
v
by placing a diffuse light source at the Search image for valleys in intensity by finding stable minima of (
n
٠
v
) /||
v
|| : For pixel
i
with intensity
p i ,
define the pixel of the greatest intensity in a radius r around p i to be
p
max .
Label
i
a valley if two conditions are met: no more than a certain percentage
s
of the pixels in this disk are strictly darker than
p i
; and
p
max
- p i
exceeds a fixed threshold
d
.
Remove small irregularities with a median filter of radius r.
Results from Paper
Contours image space object space
My Results
Comparison
Comparison Between Algorithms
Image: Slower Good results Very easy to implement - < 50 lines of code Object: Faster Theoretically better results Much harder to implement – several hundred lines of code
Future Directions
Improve object space algorithm. Need less parameters.
Implement algorithms on the GPU by using vertex and pixel shaders.
Work better with smooth surfaces