CHS UCB SIAM 2001, Sacramento, CA Circle Splines on the Sphere and in 3-Space Carlo Séquin, EECS, UCB Kiha Lee, ME, UCB Jane Yen, (now at PIXAR)
Download ReportTranscript CHS UCB SIAM 2001, Sacramento, CA Circle Splines on the Sphere and in 3-Space Carlo Séquin, EECS, UCB Kiha Lee, ME, UCB Jane Yen, (now at PIXAR)
CHS UCB SIAM 2001, Sacramento, CA Circle Splines on the Sphere and in 3-Space Carlo Séquin, EECS, UCB Kiha Lee, ME, UCB Jane Yen, (now at PIXAR) CHS UCB Concepts and Goals Smooth Interpolating Curves: Design needs only a few control points. These get interpolated exactly. All symmetries are maintained. Produces pleasing looking curves. But only local support (4 control points). If circles are possible, they will result. CHS UCB Applications on the Sphere “Grand Tour” camera movements to look inward on an object. Sculpture Design: “Viae Globi” (Pathways on a Sphere). Sweep a suitable cross section along a smooth curve on a sphere. CHS UCB Inspiration: Brent Collins’ “Pax Mundi” a sweep path on a sphere CHS UCB How Do You Design these Things ? Marker pen on tennis ball ? CHS UCB Brent Collins: Carved Wood Master Create hollow sphere by lamination (30” diam). Draw path on sphere. Carve a thick band. Profile the band. Sand and polish. Takes 3-4 months. Visualization ? Prototyping ? CHS UCB Circle-Splines (C-Splines) in the plane. on the sphere. in 3D space. CHS UCB Circle Splines: in the Plane (1) Original data points and control polygon CHS UCB Circle Spline Construction (1) Original data points and control polygon Focus on 4 consecutive points: A, B, C, D B D A C CHS UCB Circle Spline Construction (1) 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 CHS UCB Circle Spline Construction (1) 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 CHS UCB Circle Spline Construction (1) 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 BLEND CURVE between B and C CHS UCB Qualitative Results (1) Z Original data points PURE CIRCLE B D A PURE CIRCLE O BLEND C CHS UCB Qualitative Results (2) STRAIGHT LINE Original data points BLEND STRAIGHT LINE C CHS UCB 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 CHS UCB How to do the Blending ? Left Circle thru: A, B, C; Right Circle thru: B, C, D. D B A C CHS UCB Blending With Intermediate Circles Left Circle thru: A, B, C; Right Circle thru: B, C, D. Draw Tangent Vectors for both circles at B and C. D B A C CHS UCB Blending With Intermediate Circles 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 A C CHS UCB Blending With Intermediate Circles 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 A C CHS UCB Blending With Intermediate Circles 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. Make n equal segments on each arc and D choose ith point on ith circle. B S A C CHS UCB Circle Blending: Previous Art 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 A S CHS UCB Previous Work with Circles i 0 n H.- J. Wenz (CAGD 1996) “Interpolation of curve data by blended generalized circles.” Linear interpolation: L(i) *(1-i) + R(i) *(i) G-1 Continuity at B, C. M. Szilvasi-Nagi & T.P. Vendel (CAGD 2000) “Generating curves and swept surfaces by blended circles.” Trigonometrical blend: L(i) *cos2(i) + R(i) *sin2(i) G-2 Continuity at B, C. But Cusps are still possible !! CHS UCB A Bad Case … Trigonometrically blended circular arcs: Cusp ! CHS UCB Trigonometric Angle Blending 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 A C STEP i CHS UCB Trigonometric Angle Blending 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 A C CHS UCB Trigonometric Angle Blending 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 B S A D C CHS UCB Comparison SL New Midpoint S SP SA Linearly averaged point positions Averaged circle, based on angles ! SR B C A D CHS UCB Angle Iteration in the Plane SL Linearly vary the angles defining the intermediate arcs. Linearly vary the arc-length position along arc i. S1 S2 S3 B A SR C D CHS UCB Angle Iteration in the Plane SL Linearly vary the angles defining the intermediate arcs. Linearly vary the arc-length position along arc i. S1 Segment picks up the tangents from the circles at both ends. S2 G-1 Continuity. S3 B A SR C D CHS UCB Problem of Position Averaging SL It would be difficult to reach tangent direction at C from mid point SP SP S1 Segment picks up the tangents from the circles at both ends. S2 G-1 Continuity. S3 B A SR C D CHS UCB Use of Angle-based Approach Subdivision Technique (Siggraph’01 Sketch) Find new midpoints for all segments; Double the number of control points; Recurse. Iterative (Sweep) Technique Calculate n intermediate circles (based on angle division); Calculate i-th point along arc i. CHS UCB Subdivision Schemes (SIGGRAPH’01) 1 step 5 steps Too “loopy” AngleAveraged C-Spline Cubic Polynomial Interpolation PositionAveraged Circles ( Wenz ) CHS UCB Various Interpolation Schemes Too sharp Too “loopy” “Just right” Cubic Polynomial Interpolation Trigonometrically Position-Blended Circular Arcs ( Szilvasi-Nagi ) Trigonometrically Angle-Blended C-Spline NO CUSPS ! CHS UCB Smooth Curves on the Sphere Avoid Euler Angles ! (use quat. / pure geom.) Iterative Spline Constructions Spherical “B-splines” can readily be implemented with a Blossoming / De Casteljau technique by using great arcs rather than straight chords. – However, this produces approximating curves! Quaternion Splines Refs: Shoemake 1985, Kim et al. 1995 + Good results on continuity. – Non-commutativity No front-to-back symmetry. CHS UCB Concept: Swivel Planes thru B,C 3 consecutive points define a plane and a circle on it. A, B, C Left Circle. B, C, D Right Circle. Intermediate planes / arcs at <lin./trig.> angle-steps. CHS UCB Finding a New Mid-point S SPHERE: SIDE VIEW Find SL and SR, on sphere, then find S by halving the angle between them: S is closer to SR. PLANE: In the plane we find S by halving angle (SL C SR) and intersecting with line m TOP VIEW CHS UCB Circle-Splines on the Sphere Examples from a prototype editor program CHS UCB CAD -- from Concept to Prototype ! Make nice curvy paths on the surface of a sphere: Circle-splines (C-splines). Sweep various cross sections along these spherical paths: SLIDE (Jordan Smith, Berkeley). Fabricate the resulting surfaces: Send B-rep to FDM machine. CHS UCB “Via Globi” -- Virtual Design Wilmin Martono CHS UCB “Viae Globi” FDM Maquettes (8” tall) “Maloja” “Altamont” “Lombard” CHS UCB Circle Splines in 3D 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. etc … D Also works in 3D ! MIRROR B C Two different planes A CHS UCB Further Generalization Left Tangent at: B; Right Tangent at: C; With any suitable method (e.g., weighted avrg.) Draw a bundle of regularly spaced Tangent Vectors. Draw n equal-angle-spaced Circles from B to C. Allows to handle tangent constraints at B,C! MIRROR D B C Two different planes A CHS UCB Implementation Hints 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 as an offset from end point B or C. Pi B C Linear steps, ti CHS UCB Curve Construction Using Circles Not affine invariant -- curves do not transform exactly as their control points (except for uniform scaling). Avoids cusps, hairpin turns Predisposed to produce (exact) circles Well-behaved curves with local support G1-continuous with linear blending G2-continuous with trigonometric blending Angle averaging is crucial when blending circles of widely differing radii. CHS UCB Angle-Averaging and MVC The nicest interpolating curves are produced by the globally optimal MVC (Minimum Variation Curve). MVC tries to maintain constant curvature, because its penalty function is: 2 ( d ds ) ds In a piecewise linear curve with equal-length line segments, all turning angles should be the same. In the plane, the angle-averaged segment midpoint also averages the turning angle of the piece-wise linear control curve. Conjecture: In the subdivision limit, angle-averaging approximates behavior of MVC (as far as is possible with only local support). CHS UCB Subdivision vs. Iteration SIGGRAPH’01: Subdivision Scheme Calculate segment midpoints only, recurse No simple linear interpolating mask / matrix Difficult to analyze continuity of result TODAY: Iterated Scheme Resulting Continuity is understood Tangent direction, curvature at joints (B,C) does not change, is forced onto blend curve One single scheme for 2D, Sphere, 3D, ... CHS UCB Conclusions Angle-Averaged Circles (C-Splines) are useful for making smooth shapes on a sphere, in the plane, and in 3D. CHS UCB ========= SPARE ========= ========================= CHS UCB Summary / Discussion Geometric Construction Using Circles: Not affine invariant - curves do not transform exactly as their control points (except for uniform scaling). Advantages: G2-continuous curves with local support Avoids cusps, reduces overshoots Predisposed to produce (exact) circles Approximates MVC behavior Disadvantages: Cannot use a simple linear interpolating mask / matrix Difficult to analyze continuity of subdivision scheme (not a problem for the iterated approach!) CHS UCB Justification for Angle-Averaging Angle averaging looks so good, because it locally approximates a MVC (Minimum Variation Curve): MVC tries to maintain constant curvature, because its penalty function is: (d ds ) 2 ds In a piecewise linear curve with equal-length line segments, all turning angles should be the same. In the limit, angle-averaging approximates the behavior of the MVC. CHS UCB Circle-Splines Summary Useful as a design primitive. Interpolate constraint points. Produce nice, rounded shapes. Approximate the Minimum Variation Curve (MVC) yields fair, “natural”, “organic” shapes; minimizes squared magnitude of derivative of curvature: 2 ( d ds ) ds CHS UCB Trigonometric Angle Interpolation Linear sweep of angle, (& linear sweep of position): G-1 Continuity. (1-t)*LEFT CIRCLE + t*RIGHT CIRCLE Trigonometric angle sweep, (& linear sweep of position): G-2 Continuity. cos2(t)*LEFT CIRCLE + sin2(t)*RIGHT CIRCLE CHS UCB Various Interpolation Schemes Too sharp Cubic Polynomial Interpolation Too “loopy” Trigonom. Blended Circ.-Arcs Position Blended C-Spline “Just right” Angle Blended C-Spline CHS UCB Blending With Intermediate Circles Left Circle thru: A, B, C. Right Circle thru: B, C, D. n equal-angle-spaced circles in between. Choose ith point on ith circle. B S A D C CHS UCB Turning-Angle Averaging Find the point S SL on the bisector m that interpolates the turning angles m at SL and SR F F S lies on angle- S divider (SL C SR ). SR B A C D CHS UCB Review: What is Subdivision? Recursive using splitting and averaging Example: scheme to create spline curves Chaikin’s Algorithm corner cutting algorithm ==> quadratic B-Spline subdivision subdivision CHS UCB An Interpolating Subdivision Curve 4-point cubic interpolation in the plane: S = 9B/16 + 9C/16 – A/16 – D/16 S = M + (B – A)/16 + (C – D)/16 S B M C A D CHS UCB Circle-Splines on the Sphere Use similar construction as in planar case: m S S C B C B 2 CIRCLES C-SPLINE CTRL. POLYG. CHS UCB Difficulty with Angle-Averaging On the sphere, in an extremely “loopy” arch, the angle in the control polygon goes to 180° (rather than 0°); This invalidates the planar angle-averaging scheme. 180° S B C 180°