11
EECS 487: Interactive Computer Graphics Lecture 36: Parametric surfaces Swept surfaces Geometric continuity Bézier curves and patches Extruded/Swept Surfaces Yu,Terzopoulos Consider a curve in space as being swept out by a moving point: p(u) = [x (u) y(u) z(u)] T as we vary u the point moves through space the curve is the path taken by the point Similarly we can think of a surface: s(u, t) = [x (u, t) y(u, t) z(u, t)] T as being swept out by a profile curve along a trajectory curve the set of points visited by the curve during its motion defines the surface General Sweep Surfaces Fussell,Durand,Terzopoulos Trajectory path may be any arbitrary curve The profile curve may be transformed as it moves along the path scaled, rotated with respect to path orientation, … Example: surface s(u, t) is formed by a profile curve in the xy-plane p(u) = [x (u) y(u) 0 1] T extruded along the z-axis: s(u, t): T(t)p(u): x (u, t) = x (u), y(u, t) = y(u), 0 u 1, z(u, t) = t, z min t z max Extruded/Swept Surfaces Different profile curves, same trajectory curve Schulze

EECS 487: Interactive Computer GraphicsBezier.pdf · Computer Graphics Lecture 36: Parametric surfaces • Swept surfaces • Geometric continuity • Bézier curves and patches Extruded/Swept

  • Upload
    others

  • View
    15

  • Download
    1

Embed Size (px)

Citation preview

Page 1: EECS 487: Interactive Computer GraphicsBezier.pdf · Computer Graphics Lecture 36: Parametric surfaces • Swept surfaces • Geometric continuity • Bézier curves and patches Extruded/Swept

EECS487:Interactive

ComputerGraphicsLecture36:Parametricsurfaces

•  Sweptsurfaces

•  Geometriccontinuity

•  Béziercurvesandpatches

Extruded/SweptSurfaces

Yu,Terzopoulos

Consideracurveinspaceasbeingsweptout

byamovingpoint:p(u) = [x(u) y(u) z(u)]T

• aswevaryuthepointmovesthroughspace

• thecurveisthepathtakenbythepoint

Similarlywecanthinkofasurface:

s(u, t) = [x(u, t) y(u, t) z(u, t)]T

• asbeingsweptoutbyaprofilecurve

alongatrajectorycurve

• thesetofpointsvisitedbythecurveduringitsmotiondefinesthesurface

GeneralSweepSurfaces

Fussell,Durand,Terzopoulos

Trajectorypathmaybeanyarbitrarycurve

Theprofilecurvemaybetransformed

asitmovesalongthepath

• scaled,rotatedwithrespecttopathorientation,…

Example:surfaces(u, t) isformedbyaprofile

curveinthexy-planep(u) = [x(u) y(u) 0 1] T

extrudedalongthez-axis:s(u, t): T(t)p(u):x(u, t) = x(u), y(u, t) = y(u), 0 ≤ u ≤ 1, z(u, t) = t, zmin ≤ t ≤ zmax

Extruded/SweptSurfaces

Differentprofilecurves,

sametrajectorycurve

Schulze

Page 2: EECS 487: Interactive Computer GraphicsBezier.pdf · Computer Graphics Lecture 36: Parametric surfaces • Swept surfaces • Geometric continuity • Bézier curves and patches Extruded/Swept

SurfacesofRevolution

Schulze,Durand

Userotationaroundan

axisinsteadoftranslation

alongapath

• or,extrusionwherethe

trajectorycurveisacircle • s(u, t): R(t)p(u)

ABananaasaGeneralizedCylinder

Whatwespecify

•  amostlycircularprofile

•  aspineforthebanana•  ascalingfunction

Periodicallyalongthespine

•  placeacrosssection•  scaleitappropriately•  connecttoprevioussection

crosssection scalingfunction

Yu,Snyder

GeneralSweepSurfaces

Thetrajectorycurveislikeaspine

•  sweepingtheprofilecurve“skins”asurfacearoundthe

trajectorycurve

•  theshapeofthespinecontrolstheshapeoftheobject

•  niceforanimation:•  don’thavetocontrolthesurface•  justreshapethespineandthesurfacefollowsalong

Yu,Chenney,Terzopoulos

GeneralSweepSurfaces

Foreverypointalongq(t),layp(u)sothatopcoincideswithq(t)

Thisgivesuslocationsalongq(t),howaboutorientation?

1.  fixedorstatic:alignsp(u)withanaxis

2.  allowssmoothlyvaryingorientationthat“follows”the

orientationofq(t):howtospecifytheorientationofq(t)?

p(u) q(t)

op

Curless

p(u)

q(t)

op

s(u, t)

Page 3: EECS 487: Interactive Computer GraphicsBezier.pdf · Computer Graphics Lecture 36: Parametric surfaces • Swept surfaces • Geometric continuity • Bézier curves and patches Extruded/Swept

DifferentialGeometryofCurves

Uses:

• defineorientationofsweptsurfaces

•  computevelocityofanimation

•  computenormalsofsurfaces

•  analyzesmoothness/continuity

Tangent:

Thevelocityofmovement,1stderivativewithrespecttotq’(t) = (x’(t), y’(t), z’(t))orq’(t) ≈ (q(t+Δt) – q(t))/Δt•  ||q’(t)||isthespeedofmovement

•  normalizedtangentt(t) = q’(t)/||q’(t)||isthedirectionofmovement

•  thenumericformofforwarddifferenceisusefulifq(t)isablackbox

Thetangentprovidesuswiththefirstofthree

orientationsforsweptsurfaces

Durand

Forsmoothmotion,wewantcontinuous1stand2nd

derivativeswithrespecttotimedq/dt

Buttodescribeshape,wecouldaskforcontinuity

withrespecttoequalsteps(arclength):dq/ds

Arclengthparameterization:

equalstepsinparameter

spacesmapstoequal

distancesalongthecurve

•  intrinsictoshapeofcurve,notdependentonanyparticularcoordinatesystem

ArcLengthParameterization

TP3,Hart [Curless]

q(t) q(s)

Ifsisthelengthofcurvefromq(0)toq(t),q(s) canbeexpressedintermsoft:q(s) = {q(t): s(t) = s},e.g.,

Unlessmovingatconstant

speed,arclength

travelledisnot

proportionaltopassingtime:

•  i.e.,equalstepsintime(t)doesnotnecessarilygiveequaldistancesinarclength(s)

ArcLengthParameterization

TP3,Hart,Curless

q(t) q(s)

t = 0, s = s(0) = 0

t = 1, s = s(1) = curvelength

s(t) = q '(τ ) dτ

0

t

∫ = x '(τ )2 + y '(τ )2 + z '(τ )2 dτ0

t

∫usually

cannotbe

evaluated

analytically

Instead:

•  pre-computeasetofvariablearclengthssiforpointsonthe

curveusingtparameterization

•  tofindthecorrespondingpoint(pk)

onthecurveforagivensk,linearly

interpolatethepointsofthe2nearestarclengthstoeitherside

siandsi+1,si ≤ sk ≤ si+1:

ArcLengthbyLinearInterpolation

pk =

si+1 − sk

si+1 − si

pi +sk − si

si+1 − si

pi+1

TP3

Page 4: EECS 487: Interactive Computer GraphicsBezier.pdf · Computer Graphics Lecture 36: Parametric surfaces • Swept surfaces • Geometric continuity • Bézier curves and patches Extruded/Swept

CurvatureandNormal

lowcurvature

highcurvatureDurand

Curvature(κ):derivativeoftangentwithrespecttoarclength(dt(s)/ds)•  howfastthecurvepullsaway

fromastraightline

•  alwaysorthogonaltotangent

•  constantforacircle•  zeroforastraightline

Normal:normalizedcurvature

•  vectorpointstothecenterofcurvature

•  the2ndof3orientationsforsweptsurfaces

TorsionandBinormal

Béchet

Torsion:deviationofthecurve

fromtheplaneformedbythe

tangentandnormalvectors

•  zeroforaplanecurve•  binormalvectorpointstothewinding

directionofthespacecurve

•  the3rdof3orientationsforsweptsurfaces

Acurveisa1Dmanifoldinaspaceofhigherdimension

• Plane(2D)curves,describedby:

•  position,tangent,curvature

• Space/skew(3D)curves,describedby:•  position,tangent,curvature,torsion

FrenetFrame

Givenacurve q(t)wecanattachasmoothlyvarying

coordinatesystemconsistingofthreebasisvectors

(reparameterizedtoarclength):

•  tangent:t(s) = q’(s(t))(normalized)

•  normal:n(s) = t’(s)/||t’(s)||•  binormal:b(s) = n×t

DuetoJeanFrédéricFrenet(1847)andJosephAlfredSerret(1851)

Aswemovealongq(t),theFrenetframe(t(s),b(s),n(s))variessmoothly

Curless

q(t)

q’(s)

q’’(s)

normalplane

formedbynandb

osculatingplane

formedbynandt

FrenetSweptSurfaces

Curless,wikipedia

Orienttheprofilecurve p(u)usingtheFrenetframeofthetrajectoryq(t)•  putp(u)inthenormalplaneofq(t)•  placeoponq(t)•  alignpx(u)withb•  alignpy(u)with−n

Ifq(t)isacircle,yougetasurfaceofrevolutionexactly!

q(t)

py(u)

px(u)

op

p(u)

Page 5: EECS 487: Interactive Computer GraphicsBezier.pdf · Computer Graphics Lecture 36: Parametric surfaces • Swept surfaces • Geometric continuity • Bézier curves and patches Extruded/Swept

Variations

Curless,Funkhouser

q(t)

p(u)

q

b t

n

Severalvariationsarepossible:

•  scalep(u)asitmoves,

possiblyscaledto||q(t)||• morphp(u)intosomeothercurve

f(u)asitmovesalongq(t)

ProblemswithSweptSurfaces

Whathappensatinflectionpoints?

•  curvaturegoestozero•  thennormalflips!

•  resultinginanon-smoothsweptsurface

Also,difficulttoavoidself-intersection

Curless,Fussell,Durand,Chenney

Free-formSurfaces

Sweptsurfacesaregreat,butwewould

liketorepresent“free-form”(asymmetric,

irregular)curvesandsurfaces

Wewouldalsoliketogivemodelbuilders

anintuitivecontrolofasmoothshape

•  specifyobjectswithafewcontrolpoints

•  resultinginvisuallypleasing(smooth)objects

Schulze

CAGD(Computer-AidedGeometricDesign):

areaofCGdealingwithfree-formshapes

1960’s:•  theneedformathematicalrepresentationsoffree-form

shapesbecameapparentintheautomotiveand

aeronauticindustries

•  PauldeCasteljau&PierreBézierindependentlydevelopedthetheoryofpolynomialcurves&surfaces

•  whichbecamethebasictoolfordescribingandrendering

free-formshapes

PolynomialSurfaces

TP3

Page 6: EECS 487: Interactive Computer GraphicsBezier.pdf · Computer Graphics Lecture 36: Parametric surfaces • Swept surfaces • Geometric continuity • Bézier curves and patches Extruded/Swept

ParametricPatches

Parametriccurvesandsurfacesgiveandrequire

fewerdegreesofcontrolthanpolygonalmeshes

•  userscontrolafewpoints

•  programsmoothlyfillsintherest

•  representationprovidesanalyticalexpressionsfornormals,tangents,etc.

Surfaceispartitionedintopatches:

• piecewiseparametricsurfaces(3Dsplines)

• eachdefinedbycontrolpointsforming

acontrolnet

Mostpopularformodelingare

Bézier,B-splines,andNURBS

• we’llstudytheseas2Dsplinesfirst,

thenwe’llusethemas3DpatchesFunkhouser,FvDFHFig.11.44

MeasuresofJoint

Smoothness

Parametriccontinuity:

• continuousbyparametert• usefulfortrajectories• 0thorder,C0�curvesegmentsmeet(joinpoint):f2(0) = f1(1)

• 1storder,C1�

1stderivatives,velocities,areequalatjoinpoint:f2’(0) = f1’(1)

• 2ndorder,C2�

2ndderivatives,accelerations,areequalatjoinpoint

y (t )

x(t )

SC1C0

C2

Join point

Foley,vanDam92

C1

C0

C2y(t)

x(t)

Hodgins,Marschner

C0 C1 C2

JointSmoothness

C0continuous

•  curve/surfacehasnobreaks/gaps/holes• modelis“watertight”

C1continuous

• model“lookssmooth,no

facets”(butsometimes

lookslikealumpypotato)

C2continuous

•  looksmorepolished:

smoothspecularhighlights

DurandC2almosteverywhere C1only

C 0

C1

C2

G1

G2

MeasuresofJointSmoothness

Geometriccontinuity:

• continuousbyparameters (arclength)• usefulfordefiningshapes

• 1storder,G1

1stderivatives,tangents,areinthesame

directionandofproportionalmagnitude

atjoinpoint:f2’(0) = k f1’(1), k > 0

• 2ndorder,G2

2ndderivatives,curvatures,

areproportionalatjoinpoint

� GncontinuityisusuallyaweakerconstraintthanCncontinuity

(e.g.,the“speed”alongthecurvedoesnotmatter)

ButneitherformofcontinuityisguaranteedbytheotherShirley,Marschner

Page 7: EECS 487: Interactive Computer GraphicsBezier.pdf · Computer Graphics Lecture 36: Parametric surfaces • Swept surfaces • Geometric continuity • Bézier curves and patches Extruded/Swept

G1butnotC1whentangentdirectiondoesn’tchange,

butthemagnitudechangesabruptly

y (t )

x (t )

P1P2

Q3P3

Q2Q1

TV2

TV3

C1�

G1

y(t)

x(t)

Rockwoodetal.,Marschner,FvD

G1notC1 C1notG1

Rockwoodetal.,Marschner

Whenthecurvep(t)goestozero,velocitychanges

direction,andstartsagain

p(t)

CubicSplines

Arepresentationofcubicsplineconsistsof:

•  fourcontrolpoints(whyfour?)

•  thesearecompletelyuserspecified

•  determineasetofblendingfunctions

Thereisnosingle“best”representationofcubicspline:

*n/awhensomeofthecontrol“points”aretangents,notpoints

Cubic Interpolate? Local? Continuity Affine? Convex*? VD*?

Hermite � � C1 � n/a n/a

Cardinal

(Catmull-Rom)

except

endpoints

� C1 � no no

Bézier endpoints � C1 � � �

natural � � C2 � n/a n/a

B-splines � � C2 � � �

Watt

BézierCurve

NamedafterPierreBézier,

acardesigneratRenault

Independentlydevelopedby

PauldeCasteljauatCitroën

Hasanintuitivegeometric“feel”,

easytocontrol•  commoninterfaceforcreatingcurvesin

drawingprograms

• usedinfontdesign(Postscript)

Foley&vanDam

Page 8: EECS 487: Interactive Computer GraphicsBezier.pdf · Computer Graphics Lecture 36: Parametric surfaces • Swept surfaces • Geometric continuity • Bézier curves and patches Extruded/Swept

BézierCurve

Usesanarbitrarynumberof

controlpoints(notjustcubic)

• thefirstandlastcontrolpointsinterpolatethecurve

• therestapproximatethecurve,controlpointiexertsthestrongestattractionatu = i/n, 1 ≤ i < n−1, 0 ≤ u ≤ 1

• tangentatthestartofthecurveisproportionaltothevectorbetweenthefirstandsecondcontrolpoints

• tangentattheendofthecurveisproportionaltothevectorbetweenthesecondlastandlastcontrolpoints

• then-thderivativeatthestart(end)ofthecurvedependsonthefirst(last)n+1controlpoints

p0

p1

p2

p3

p1-p

0

p3-p2

f’(0)=3(p1-p0)

f’(1)=3(p3-p2)

cubic

Shirley

deCasteljauAlgorithm

AgeometricevaluationschemeforBézier:

createsBéziercurveiteratively

Tocomputef(u):•  connectadjacentcontrolpointswith

straightlinesintoacontrolpolygon

•  createtheuinterpolatepoints,u ∈ [0,1],ontheselines•  ateachiteration,therearen-1suchpoints

•  connectthenewpointswithstraightlines

•  repeatuntilonlyonenewpointiscreated

u

u

u

1–u 1–u

1-u

1–u

u1–u

1–u

uu

deCasteljauQuadraticBézier

4/5

1/5 4/5

1/5 1/5

4/5

quadratic

Letu = 45

pk = p0 + 45 (p1 − p0 ) = 1

5 p0 − 45 p1

q0 = 15 ( 15 p0 + 4

5 p1)+ 45 ( 15 p1 + 4

5 p2 )Ormoregenerally:

f (u) = (1− u)((1− u)p0 + up1)+ u((1− u)p1 + up2 )whichisthequadraticBéziercurve:

f (u) = (1− u)2p0 + 2u(1− u)p1 + u2p2

AquadraticBéziercurvehas3controlpoints

deCasteljauCubicBézierGivenfourcontrolpointsp0, p1, p2, p3,use

deCasteljaualgorithmtobuildacubicBéziercurve

f(u), 0 ≤ u ≤ 1,withp0 = f(0), p3 = f(1)asshown:

1

2 3

4 1

2 3

4

p0

p1

p2

p3

q0 = p0 + u p1 − p0( )= (1− u)p0 + up1

q1 = (1− u)p1 + up2q2 = (1− u)p2 + up3 u = ½

u = ¼u = ¾

1–u

u

u

1–u

u 1–u

q0

q1

q2

u

1–u u

1–ur0 r1u 1–u

f(u)

r0 = (1− u)q0 + uq1r1 = (1− u)q1 + uq2

f(u) = (1− u)r0 + ur1f(u) = (1− u)3p0 + 3u(1− u)

2p1 + 3u2 (1− u)p2 + u

3p3

Page 9: EECS 487: Interactive Computer GraphicsBezier.pdf · Computer Graphics Lecture 36: Parametric surfaces • Swept surfaces • Geometric continuity • Bézier curves and patches Extruded/Swept

Drawoutthecurvebysweepingthroughtime

deCasteljauCubicBézier

[wikipedia]

f(u) = (1− u)3p0 + 3u(1− u)2p1 + 3u

2 (1− u)p2 + u3p3

Thenset:

f '(0) = 3(p1 − p0 )f '(1) = 3(p3 − p2 )

CubicBézierCurve

Controlpointsconsistofendpointinterpolationsand

derivatives:

Constraintmatrix

Basismatrix:

C =

1 0 0 01 1

3 0 01 2

313 0

1 1 1 1

⎢⎢⎢⎢

⎥⎥⎥⎥

B = C−1 =

1 0 0 0−3 3 0 03 −6 3 0−1 3 −3 1

⎢⎢⎢⎢

⎥⎥⎥⎥

f(u) = a0 + u1a1 + u2a2 + u3a3

p0 = f(0) = a0 + 01a1 + 02a2 + 03a3

p3 = f(1) = a0 + 11a1 + 12a2 + 13a33(p1 − p0 ) = f '(0) = a1 + 2*0

1a2 + 3*02a3

p1 = 13 (f '(0)+ 3p0 ) = a0 + 1

3 a1 + 02a2 + 0

3a33(p3 − p2 ) = f '(1) = a1 + 2* 1

1a2 + 3*12a3

p2 = 13 (3p3 − f '(1)) =1a0 + 2

3 a1 + 13 a2 − 0a3

Blendingfunctions:

CubicBézierCurve

Watt,Hodgins

f (u) = (1− u)3p0 + 3u(1− u)2p1 + 3u2 (1− u)p2 + u3p3

= (1− 3u + 3u2 − u3 )p0 + (3u − 6u2 + 3u3 )p1 + (3u

2 − 3u3 )p2 + u3p3

x

y

b(u)

u

uB = bi (u)i=0

n

b0,3(u)

b0,3(u)

b1,3(u)

b1,3(u)

b2,3(u)

b2,3(u)

b3,3(u)

b3,3(u)

CubicBézierProperties

Properties:

•  eachbispecifiestheinfluenceof pi

•  convexhull:∑bi = 1, bi ≥ 0•  interpolatesonlyatp0andp3•  b0 =1atu = 0,b3 =1atu = 1•  b1andb2 neverreach1

•  thebasisfunctionsareeverywhere

non-zero,exceptattheendpoints

�thecontrolpointsdonotexert

localcontrol

•  thecurvesaresymmetric:reversing

thecontrolpointsyieldsthesame

curve

b0

b1 b2

b3

u

b(u)

u = 1 u = 0

p0

p2

p3

p1

Durand,Hodgins

Page 10: EECS 487: Interactive Computer GraphicsBezier.pdf · Computer Graphics Lecture 36: Parametric surfaces • Swept surfaces • Geometric continuity • Bézier curves and patches Extruded/Swept

Watt

Non-LocalControl

Everycontrolpointaffectseverypoint

onthecurve(excepttheendpoints)

Movingasinglecontrolpointaffects

thewholecurve!

Curless

VariationDiminishingProperty

Béziercurveshavethevariationdiminishingproperty:

eachisnomore“wiggly”thanitscontrolpolygon

�doesnotcrossalinemorethanitscontrolpolygon

VariousBéziercurves,ofdegrees2-6:

Shirley

BernsteinBasisPolynomials

Theblending/basisfunctionsforBéziercurvescan

ingeneralbeexpressedastheBernsteinbasis

polynomials:

Béziercurveeqn:

bk,n (u) =nk

⎛⎝⎜

⎞⎠⎟uk (1− u)n−k = n!

k!(n − k)!uk (1− u)n−k

f(u) = n!k!(n − k)!

uk (1− u)n−kpkk=0

n

Shirley

Multiple-segmentcubicBéziercurvecanachieve

•  G1continuityif:q0 = f2(0) = f1(1) = p3

and(q1 − q0) = k(p3 − p2),thethreepoints(p2,p3 = q0,andq1)arecollinear

•  ifyouchangedoneofthesethree,youmustchangetheothers,butonly

needtochangethesethree,

notp1forexample�localsupport

•  C1continuityifk = 1

•  can’tguaranteeC2orhighercontinuity•  eachadditionaldegreeofcontinuityrestrictsthepositionofanadditionalcontrolpoint�cubicBézierhasnonetospare

p3 = q0�

p2

q1�

f1(u)

f 2(u)

JoiningBézierCurves

Shirley

Page 11: EECS 487: Interactive Computer GraphicsBezier.pdf · Computer Graphics Lecture 36: Parametric surfaces • Swept surfaces • Geometric continuity • Bézier curves and patches Extruded/Swept

BézierCurve/SurfaceProblems

TomakealongcontinuouscurvewithBézier

segmentsrequiresusingmanysegments

Maintainingcontinuityrequiresconstraintsonthe

controlpointpositions

•  theusercannotarbitrarilymovecontrolpointsand

automaticallymaintaincontinuity

•  theconstraintsmustbeexplicitlymaintained

•  itisnotintuitivetohavecontrolpointsthatarenotfree

Consider:B-spline