Suggestive Contours for Conveying Shape
-
Upload
idona-hopkins -
Category
Documents
-
view
47 -
download
1
description
Transcript of Suggestive Contours for Conveying Shape
Sorce: Suggestive Contours for ConveyiSorce: Suggestive Contours for Conveying Shape. (SIGGRAPH 2003) Doug Deng Shape. (SIGGRAPH 2003) Doug DeCarlo, Adam Finkelstein, Szymon RusiCarlo, Adam Finkelstein, Szymon Rusinkiewicz, Anthony Santella. nkiewicz, Anthony Santella.
11
Suggestive Contours for Conveying Suggestive Contours for Conveying ShapeShape
CS 174CS 174
Robert Li Robert Li May 24, 2004May 24, 2004
ContoursContours
Contour GeneratorContour Generator = all p s.t. = all p s.t. nn(p)(p)٠٠vv(p) = 0(p) = 0 set of points on the surface such that the unit surface normal is set of points on the surface such that the unit surface normal is
perpendicular to the view vector.perpendicular to the view vector.
ContourContour = The visible portions of the contour generator = The visible portions of the contour generator projected onto the image planeprojected onto the image plane
S =S = a smooth closed surface a smooth closed surface nn(p) = unit surface normal at (p) = unit surface normal at ppvv(p) = c - p, the view vector(p) = c - p, the view vector
p = a point on Sc = the camera
CurvatureCurvatureThe curvatureThe curvature k(p) = The reciprocal of the radius of the circle that best k(p) = The reciprocal of the radius of the circle that best approximates the curve at p.approximates the curve at p.
The radial planeThe radial plane = Plane defined by the vectors = Plane defined by the vectors nn, , ww and the point p. and the point p.
The radial curveThe radial curve = The set of points in S intersect the radial plane. = The set of points in S intersect the radial plane.
ww = The un-normalized projection of v onto the tangent plane at p = The un-normalized projection of v onto the tangent plane at p
w w = The projection of = The projection of vv onto onto the tangent plane.the tangent plane.
Suggestive ContoursSuggestive Contours Definition IDefinition I
Suggestive Contour Generator (I)Suggestive Contour Generator (I): The set of points on the surface at which : The set of points on the surface at which its radial curvature kits radial curvature krr is 0, and the directional derivative of k is 0, and the directional derivative of krr in the direction in the direction of w is positive: Dof w is positive: Dwwkkrr > 0 > 0
Equivalent DefinitionsEquivalent DefinitionsDefinition II and IIIDefinition II and III
Suggestive Contour Generator (II)Suggestive Contour Generator (II) = The set of minima of = The set of minima of n n ٠٠ v v in in the direction of the direction of ww..
►Suggestive Contour Generator Suggestive Contour Generator (III) (III) The set of points on the The set of points on the contour generator of a nearby contour generator of a nearby viewpoint (of radial distance less viewpoint (of radial distance less than 90 degrees) that are not in than 90 degrees) that are not in radial correspondence with radial correspondence with points on the contour generators points on the contour generators of any (radially) closer viewpointof any (radially) closer viewpoint►Additionally Additionally
Object Space AlgorithmObject Space Algorithm
Test each triangle for two vertices whose sign of n dot v is Test each triangle for two vertices whose sign of n dot v is different. Interpolate to get the zero crossing (Hertzmann different. Interpolate to get the zero crossing (Hertzmann zero crossing algorithm for smooth surfaces)zero crossing algorithm for smooth surfaces)
Find kFind krr(p) = k(p) = k11(p) cos(p) cos22 ΦΦ+ k+ k22(p) sin(p) sin22 ΦΦ for each point. k for each point. k11 and and
kk22 are the principle curvatures of the face and are the principle curvatures of the face and ΦΦ is the is the
angle between w(p) and the principle curvature direction angle between w(p) and the principle curvature direction corresponding to kcorresponding to k11
Find the zeros of kFind the zeros of krr(p) using the zero crossing algorithm (p) using the zero crossing algorithm
These should be loops on the surfaceThese should be loops on the surface
Calculate DCalculate Dwwkkrr and make sure it is positive and make sure it is positive
Handle numerical errorsHandle numerical errors
Image Space AlgorithmImage Space Algorithm
Approximate Approximate n n ٠٠ v v by placing a diffuse light source at the by placing a diffuse light source at the camera origin.camera origin.
Search image for valleys in intensity by finding stable Search image for valleys in intensity by finding stable minima of (minima of (n n ٠٠ vv) /||) /||vv|||| ::
For pixel For pixel i i with intensity with intensity ppii, , define the pixel of the define the pixel of the greatest intensity in a radius r around pgreatest intensity in a radius r around pii to be to be ppmaxmax..
Label Label i i a valley if two conditions are met: no more than a a valley if two conditions are met: no more than a certain percentage certain percentage s s of the pixels in this disk are strictly of the pixels in this disk are strictly darker than darker than ppii; and ; and ppmaxmax - p- pii exceeds a fixed threshold exceeds a fixed threshold dd..
Remove small irregularities with a median filter of radius r.Remove small irregularities with a median filter of radius r.
Results from PaperResults from Paper
Contours image space object space
My ResultsMy Results
ComparisonComparison
Comparison Between AlgorithmsComparison Between Algorithms
Image:Image: SlowerSlower Good resultsGood results Very easy to implement - < 50 lines of codeVery easy to implement - < 50 lines of code
Object:Object: FasterFaster Theoretically better resultsTheoretically better results Much harder to implement – several hundred Much harder to implement – several hundred
lines of codelines of code
Future DirectionsFuture Directions
Improve object space algorithm. Need less Improve object space algorithm. Need less parameters.parameters.
Implement algorithms on the GPU by Implement algorithms on the GPU by using vertex and pixel shaders.using vertex and pixel shaders.
Work better with smooth surfacesWork better with smooth surfaces