510 likes | 639 Views
SIGGRAPH 2003, San Diego. Fair and Robust Circle Splines. Carlo Séquin, EECS, UCB Kiha Lee, ME, UCB. Motivation: Smooth Curves on a Sphere. “Grand Tour” camera movements to look inward towards an object.
E N D
SIGGRAPH 2003, San Diego Fair and Robust Circle Splines Carlo Séquin, EECS, UCBKiha Lee, ME, UCB
Motivation: Smooth Curves on a Sphere • “Grand Tour” camera movements to look inward towards an object. • Sculpture Design:“Viae Globi” (Pathways on a Sphere)Sweep along a smooth curve on a sphere.
Concepts and Goals Smooth Interpolating Curves on Sphere: • Sparse set of control points. • These get interpolated exactly. • All symmetries are maintained. • Produces round, pleasing looking curves. • If circles are possible, they will result. • Like MVC*, but only local support. * MVC = Minimum (Curvature) Variation Curve
Circle-Splines (“C-Splines”) One simple scheme: … in the plane, on the sphere, in 3D space,
Circle Splines: in the Plane (0) Original data points and control polygon
B D A C Circle Spline Construction (1) Original data points and control polygon Focus on 4 consecutive points: A, B, C, D
B D A C Circle Spline Construction (2) Original data points and control polygon Focus on 4 consecutive points: A, B, C, D LEFT CIRCLE thru A, B, C
B D A C Circle Spline Construction (3) Original data points and control polygon Focus on 4 consecutive points: A, B, C, D LEFT CIRCLE thru A, B, C RIGHT CIRCLE thru B, C, D
B D A C Circle Spline Construction (4) Original data points and control polygon Focus on 4 consecutive points: A, B, C, D LEFT CIRCLE thru A, B, C RIGHT CIRCLE thru B, C, D BLEND CURVE between B and C
Pi–2 Pi–1 Pi+1 Pi+2 STRAIGHT LINE STRAIGHT LINE Pi PURE CIRCLE B D A C BLEND PURE CIRCLE Local Support
How to do the Blending ? Left Circle thru: A, B, C; Right Circle thru: B, C, D. D ? B C A
Circle Blending: Previous Art (1) Left Circle thru: A, B, C. Right Circle thru: B, C, D. n points on Left Circle. n points on Right Circle. Interpolate positions between corresponding points. D C B S Linearly weighted:[ Wenz, 1996 ] A
WEIGHT 0 STEP u 1 Circle Blending: Previous Art (2) Trigonometrically weighted: Wu = Lu cos2(u p/2) + Ru sin2(u p/2)[ Szilvasi-Nagy & Vendel, 2000 ] D Curve clings to base circleG2-continuity @ B C B S A STEP u
Circle Blending: Previous Art (3) • Angle-based blending [ Séquin & Yen, 2001 ] • Subdivision technique (find mid-point only, and recurse) • Curves looked good • Could not formally prove continuity • 2003: Sampled (Morph) Construction • Curves look even better! • Can formally prove G2-continuity • Can also obtain C2 with re-parameterization
Blending With Intermediate Circles (1) Left Circle thru: A, B, C; Right Circle thru: B, C, D. Draw TangentVectors for both circles at B and C. D B C A
Blending With Intermediate Circles (2) Left Circle thru: A, B, C; Right Circle thru: B, C, D. Draw Tangent Vectors for both circles at B and C. Draw a bundle of regularly spaced Tangent Vectors. D B C A
Blending With Intermediate Circles (3) Left Circle thru: A, B, C; Right Circle thru: B, C, D. Draw Tangent Vectors for both circles at B and C. Draw a bundle of regularly spaced Tangent Vectors. Draw n equal-angle-spaced Circles from B to C. D B C A
S Blending With Intermediate Circles (4) Left Circle thru: A, B, C; Right Circle thru: B, C, D. Draw Tangent Vectors for both circles at B and C. Draw a bundle of regularly spaced Tangent Vectors. Draw n equal-angle-spaced Circles from B to C. D Make n equal segments on each arc andchoose uth point on uth circle. B C A G1-continuity @ B, C
Trigonometric Angle Blending (1) Left Circle thru: A, B, C; Right Circle thru: B, C, D. Draw Tangent Vectors for both circles at B and C. Draw a bundle of trigonometrically spaced tangents. D ANGLE B C A STEP u
Trigonometric Angle Blending (2) Left Circle thru: A, B, C; Right Circle thru: B, C, D. Draw Tangent Vectors for both circles at B and C. Draw a bundle of trigonometrically spaced Tangents. Draw n trigonometrically-spaced Circles from B to C. D B C A
Trigonometric Angle Blending (3) Left Circle thru: A, B, C; Right Circle thru: B, C, D. Draw Tangent Vectors for both circles at B and C. Draw a bundle of trigonometrically spaced Tangents. Draw n trigonometrically-spaced Circles from B to C. Blend curve “hugs” initial circles longer: G2 D B C S A
Various Interpolation Schemes Too sharp Too “loopy” “Just right” CubicPolynomialSubdivision TrigonometricallyPosition-BlendedCircular Arcs ( Szilvasi-Nagi ) TrigonometricallyAngle-Blended C-Spline NO CUSPS !
Comparing Interpolation Schemes • A simple control polygon( Test case 2 )
Comparing Interpolation Schemes • Cubic polynomial subdivision scheme[ Butterfly, Loop, Zorin ] EXTREMECURVATURE Too sharp
Comparing Interpolation Schemes • (Non-uniform) Lagrange Interpolation EXTREMECURVATURE Too sharp
Comparing Interpolation Schemes • Linearly position-blended circular arcs[ Wenz, 1996 ] Too “loopy”
Comparing Interpolation Schemes • Trigonometrically position-blended circular arcs[ Szilvasi-Nagi and Vendel, 2000 ] Too “loopy”
Comparing Interpolation Schemes • Angle-blended C-splines: C0 / G2[ Séquin - Lee, 2003 ] “Just right”
Comparing Interpolation Schemes • Angle-blended C-splines, reparameterized: C2 / G2[ Séquin - Lee, 2003 ] “Just right”
Comparing Circle-Blending Schemes u=0 D B C B C PARAMETERLINESINTERSECT A u=1 Positional interpolationSzilvasi-Nagy & Vendel, 2000 Angle-based parametrization (new)
Comparison of Location of Midpoint S SL Linearly averaged point position. SP Averaged circle,based on angles ! SA SR C B D A
Problem of Position Averaging SL It would be difficult to reach tangent direction at C from mid-point SP SP SA SR C B D A
Key Points about Circle Splines Going from Polynomial Splines to Blended Circles: • Give up affine invariance • Give up linear precision Avoid cusps and hair-pin turns Get nicely rounded, loopy curves Approximate the behavior of the MVC
Bounded Curvature • For non-extreme control polygons, the resulting curvature is bounded. A 179° SWITCHBACK @ B MAX. CURVATURE = 10 B C D
Circle-Splines on the Sphere Examples from a prototype editor program. We only need one small conceptual change …
Concept: Swivel Planes thru B,C 3 consecutive points define a plane and a circle on it. A, B, C Left Plane. B, C, D Right Plane. Intermediate planes / arcs at <lin./trig.> angle-steps. (u) P(u) A
“Trigonometric Swivel” for G2-continuity B C C B D A D A Discrete Sample Points on Swivel Plane END VIEW SIDE VIEW
Circle-Splines in 3D Free Space • We want to have a seamless, unnoticeable transition from sphere to plane: No “if” statements in the code associated with a check for planarity ! • In 2001, we had a very cumbersome wayto bring spheres and planes under one hat. • Today, the 3D case and the spherical casenaturally turn out to be the same !
Circle-Splines in 3D Left Circle thru: A, B, C; Right Circle thru: B, C, D. MirrorTangentVectorsfor both circles at B and C. Draw a bundle of suitably spaced Tangent Vectors. Corresponding tangent pairs define intermediate arcs. D MIRROR C B Two different planes A
Circle-Splines on Sphere There is always at least one sphere through A, B, C, D. Left Circle andRight Circle lie on that sphere; The two tangent bundles are tangent to this sphere; All intermediate arcs lie on sphere through A,B,C,D; All generated points lie on sphere ! D MIRROR C B Tangent planes A
A 3D Circle-Spline (Figure-8 Knot) (Cross-eye stereo view)
Important Implementation Issues • Avoid calculations that explicitly involve the centers of the circular arcs,since these will go off to infinity, when the arcs become straight. • Calculate points along arc (B,C)as an offset from end point B. P(u) B C Linear steps, t(u)
Parametric Representation of Blend Curve P(u) t(u) f(u) For: u = 0 1 • t(u) = ti cos2(u p/2) + ti+1 sin2(u p/2) (Trigonometric angle parametrization) • f(u) = d sin(u t(u)) / sin(t(u)) • f(u) = (1-u) t(u) (Blend curve P(u) in polar coordinates) B C f(u)
How to Find Arc Through 3 Data Points ?(We don’t really need arc, just need tangents!) • Do not try to find center, radius ! B b b C a b a a c a b A b a
Key Insights • The typical polynomial splineblends between the straight-line segments of the control polygon. • Circle splines start with an overlapping sequence of circular arc segmentsand then blend between those. • The relevant parameter in this contextare ( turning / tangent ) angles.
Why This Works • We want to emulate a (loopy) MVC. • The ideal MVC result is a circle. If you want to see circles, start with circles ! • Affine invariance dimensional collapse. • Circles always consider problem in a 2D way, giving equal weight to both coordinate axes.
BAD TANGENT UNNECESSARY INFLECTION POINTS Caveat • These curves are not MVC’s ! • While they are G2 (C2) continuous, theymay possess unnecessary undulations. A local scheme cannot compete with a global scheme !
Extensions • Extend range of local support to >3 points. • Better approximation to MVC: Cornu spiral or clothoid(curvature is linear with arc length). • In 3D also consider a helix as a primitive. Issues are : • How to find robustly and efficiently the (unique?) matching primitives ? • How to blend them ?
An “Evolutionary” Process… • From rulers… Polynomial splineswith their linear interpolationare reminiscent of straight edge rulers…
An Evolutionary Process… • From rulers… • to compasses… Circle splinescapture the power of compasses…