View
216
Download
0
Tags:
Embed Size (px)
Citation preview
SIGGRAPH 2003, San DiegoSIGGRAPH 2003, San Diego
Fair and Robust Circle Splines
Carlo Séquin, EECS, UCB
Kiha Lee, ME, UCB
Motivation: Smooth Curves on a SphereMotivation: 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 GoalsConcepts and Goals
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
Smooth Interpolating Curves on Sphere:
Circle-Splines (“C-Splines”)Circle-Splines (“C-Splines”)
on the sphere,in 3D space,
in the plane,
One simple scheme: …
Circle Splines: in the Plane (0)Circle Splines: in the Plane (0)
Original data points and control polygon
Circle Spline Construction (1)Circle Spline Construction (1)
Original data points and control polygon
A
D
C
B
Focus on 4 consecutive points: A, B, C, D
Circle Spline Construction (2)Circle Spline Construction (2)
Original data points and control polygon
LEFT CIRCLE thru A, B, C
A
D
C
B
Focus on 4 consecutive points: A, B, C, D
Circle Spline Construction (3)Circle Spline Construction (3)
Original data points and control polygon
LEFT CIRCLE thru A, B, CRIGHT CIRCLE thru B, C, D
A
D
C
B
Focus on 4 consecutive points: A, B, C, D
Circle Spline Construction (4)Circle Spline Construction (4)
Original data points and control polygon
LEFT CIRCLE thru A, B, CRIGHT CIRCLE thru B, C, D
BLEND CURVE between B and C
A
D
C
B
Focus on 4 consecutive points: A, B, C, D
Local SupportLocal Support
STRAIGHT LINE STRAIGHT LINE
Pi
Pi–1Pi–2 Pi+2Pi+1
A
D
C
B
PURE CIRCLE
PURE CIRCLE
BLEND
How to do the Blending ?How to do the Blending ?
A
B
D
C
Left Circle thru: A, B, C; Right Circle thru: B, C, D.
?
Circle Blending: Previous Art (1)Circle Blending: Previous Art (1)
A
B
D
C
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.
SLinearly weighted:[ Wenz, 1996 ]
Circle Blending: Previous Art (2)Circle Blending: Previous Art (2)
A
B
D
CS
0 STEP u 1
WEIGHT
Trigonometrically weighted: Wu = Lu cos2(u /2) + Ru sin2(u /2)
[ Szilvasi-Nagy & Vendel, 2000 ]
Curve clings to base circleG2-continuity @ B
STEP u
Circle Blending: Previous Art (3)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 Blending With Intermediate CirclesCircles (1) (1)
A
B
D
C
Left Circle thru: A, B, C; Right Circle thru: B, C, D.Draw Tangent Vectors for both circles at B and C.
Blending With Intermediate Blending With Intermediate CirclesCircles (2) (2)
A
B
D
C
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.
Blending With Intermediate Blending With Intermediate CirclesCircles (3) (3)
A
B
D
C
Left Circle thru: A, B, C; Right Circle thru: B, C, D.
Draw n equal-angle-spaced Circles from B to C.
Draw Tangent Vectors for both circles at B and C.Draw a bundle of regularly spaced Tangent Vectors.
Blending With Intermediate Blending With Intermediate CirclesCircles (4) (4)
A
B
D
C
Left Circle thru: A, B, C; Right Circle thru: B, C, D.
S
Draw n equal-angle-spaced Circles from B to C.
Draw Tangent Vectors for both circles at B and C.
Make n equal segments on each arc andchoose uth point on uth circle.
Draw a bundle of regularly spaced Tangent Vectors.
G1-continuity @ B, C
Trigonometric Angle Blending (1)Trigonometric Angle Blending (1)
A
B
D
C
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.
STEP u
ANGLE
Trigonometric Angle Blending (2)Trigonometric Angle Blending (2)
A
B
D
C
Left Circle thru: A, B, C; Right Circle thru: B, C, D.
Draw n trigonometrically-spaced Circles from B to C.
Draw Tangent Vectors for both circles at B and C.Draw a bundle of trigonometrically spaced Tangents.
Trigonometric Angle Blending (3)Trigonometric Angle Blending (3)
A
B C
Left Circle thru: A, B, C; Right Circle thru: B, C, D.
Draw n trigonometrically-spaced Circles from B to C.
Draw Tangent Vectors for both circles at B and C.Draw a bundle of trigonometrically spaced Tangents.
S
Blend curve “hugs” initial circles longer: G2 D
Various Interpolation SchemesVarious Interpolation Schemes
TrigonometricallyAngle-Blended
C-SplineNO CUSPS !
CubicPolynomialSubdivision
Too “loopy”
TrigonometricallyPosition-Blended
Circular Arcs ( Szilvasi-Nagi )
Too sharp “Just right”
Comparing Interpolation SchemesComparing Interpolation Schemes A simple control polygon
( Test case 2 )
Comparing Interpolation SchemesComparing Interpolation Schemes Cubic polynomial subdivision scheme
[ Butterfly, Loop, Zorin ]
Too sharp
EXTREMECURVATURE
Comparing Interpolation SchemesComparing Interpolation Schemes (Non-uniform) Lagrange Interpolation
Too sharp
EXTREMECURVATURE
Comparing Interpolation SchemesComparing Interpolation Schemes Linearly position-blended circular arcs
[ Wenz, 1996 ]
Too “loopy”
Comparing Interpolation SchemesComparing Interpolation Schemes Trigonometrically position-blended circular arcs
[ Szilvasi-Nagi and Vendel, 2000 ]
Too “loopy”
Comparing Interpolation SchemesComparing Interpolation Schemes Angle-blended C-splines: C0 / G2
[ Séquin - Lee, 2003 ]
“Just right”
Comparing Interpolation SchemesComparing Interpolation Schemes Angle-blended C-splines, reparameterized: C2 / G2
[ Séquin - Lee, 2003 ]
“Just right”
Comparing Circle-Blending SchemesComparing Circle-Blending Schemes
Positional interpolationSzilvasi-Nagy & Vendel, 2000
Angle-based parametrization (new)
u=0
u=1
D
A
B CB C
PARAMETERLINESINTERSECT
SA
DC
SL
SR
AB
Averaged circle,based on angles !
Linearly averaged point position.SP
Comparison of Location of Midpoint SComparison of Location of Midpoint S
SA
DC
SL
SR
AB
SP
Problem of Position AveragingProblem of Position Averaging
It would be difficult to reach tangent direction at C from mid-point SP
Key Points about Circle SplinesKey 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 CurvatureBounded Curvature For non-extreme control polygons,
the resulting curvature is bounded.
D CB
A179° SWITCHBACK @ B MAX. CURVATURE = 10
Circle-Splines Circle-Splines on the Sphereon the Sphere
Examples from a prototype editor program.
We only need one small conceptual change …
Concept: Swivel Planes thru B,CConcept: 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.
A
P(u)
(u)
Discrete Sample Points on Swivel PlaneDiscrete Sample Points on Swivel Plane
C
DA
B
END VIEW SIDE VIEW
C
DA
B
“Trigonometric Swivel” for G2-continuity
Circle-Splines in 3D Free SpaceCircle-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 3DCircle-Splines in 3D
A
B
D
C
Left Circle thru: A, B, C; Right Circle thru: B, C, D.
Mirror Tangent Vectors for both circles at B and C.
Draw a bundle of suitably spaced Tangent Vectors.
Corresponding tangent pairs define intermediate arcs.
Two different planes
MIRROR
Circle-Splines on SphereCircle-Splines on Sphere
A
B
D
C
There is always at least one sphere through A, B, C, D.
Left Circle and Right 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 !
Tangent planes
MIRROR
A 3D Circle-Spline (Figure-8 Knot)A 3D Circle-Spline (Figure-8 Knot)
(Cross-eye stereo view)
Important Implementation IssuesImportant Implementation Issues
P(u)
Linear steps, t(u)
B C
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.
Parametric Representation of Blend CurveParametric Representation of Blend Curve
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)) (u) = (1-u) t(u)
(Blend curve P(u) in polar coordinates)
Bf(u)
(u)C
P(u)t(u)
How to Find Arc Through 3 Data Points ?How to Find Arc Through 3 Data Points ?(We don’t really need arc, just need tangents!)(We don’t really need arc, just need tangents!)
B
a
C
Ac
b
Do not try to find center, radius !
Key InsightsKey Insights The typical polynomial spline
blends 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 WorksWhy 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.
CaveatCaveat 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 !
BAD TANGENT
UNNECESSARY INFLECTION POINTS
ExtensionsExtensions
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…An “Evolutionary” Process…
From rulers…
Polynomial splines with their linear interpolation
are reminiscent of straight edge rulers…
An Evolutionary Process…An Evolutionary Process…
From rulers…
to compasses…
Circle splines capture the power of compasses…
An Evolutionary Process…An Evolutionary Process…
From rulers…
to compasses…
to French Curves !
QUESTIONSQUESTIONS ??