+ All Categories
Home > Documents > 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

Date post: 18-Jan-2016
Category:
Upload: griffin-flowers
View: 221 times
Download: 3 times
Share this document with a friend
24
04/18/02 (c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves
Transcript
Page 1: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Last Time

• Hermite Curves

• Bezier Curves

Page 2: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Today

• Bezier Continuity

• Bezier surface patches

Page 3: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Longer Curves

• A single cubic Bezier or Hermite curve can only capture a small class of curves– At most 2 inflection points

• One solution is to raise the degree– Allows more control, at the expense of more control points and higher

degree polynomials– Control is not local, one control point influences entire curve

• Alternate, most common solution is to join pieces of cubic curve together into piecewise cubic curves– Total curve can be broken into pieces, each of which is cubic– Local control: Each control point only influences a limited part of the curve– Interaction and design is much easier

Page 4: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Piecewise Bezier Curve

“knot”P0,0

P0,1 P0,2

P0,3

P1,0

P1,1

P1,2

P1,3

Page 5: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Continuity

• When two curves are joined, we typically want some degree of continuity across the boundary (the knot)– C0, “C-zero”, point-wise continuous, curves share the same point where

they join– C1, “C-one”, continuous derivatives, curves share the same parametric

derivatives where they join– C2, “C-two”, continuous second derivatives, curves share the same

parametric second derivatives where they join– Higher orders possible

• Question: How do we ensure that two Hermite curves are C1 across a knot?

• Question: How do we ensure that two Bezier curves are C0, or C1, or C2 across a knot?

Page 6: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Achieving Continuity

• For Hermite curves, the user specifies the derivatives, so C1 is achieved simply by sharing points and derivatives across the knot

• For Bezier curves:– They interpolate their endpoints, so C0 is achieved by sharing control points– The parametric derivative is a constant multiple of the vector joining the

first/last 2 control points– So C1 is achieved by setting P0,3=P1,0=J, and making P0,2 and J and P1,1

collinear, with J-P0,2=P1,1-J– C2 comes from further constraints on P0,1 and P1,2

Page 7: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Bezier Continuity

P0,0

P0,1 P0,2

J

P1,1

P1,2

P1,3

Disclaimer: PowerPoint curves are not Bezier curves, they are interpolating piecewise quadratic curves! This diagram is an approximation.

Page 8: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

DOF and Locality

• The number of degrees of freedom (DOF) can be thought of as the number of things a user gets to specify– If we have n piecewise Bezier curves joined with C0 continuity, how many

DOF does the user have?– If we have n piecewise Bezier curves joined with C1 continuity, how many

DOF does the user have?

• Locality refers to the number of curve segments affected by a change in a control point– Local change affects fewer segments– How many segments of a piecewise cubic Bezier curve are affected by each

control point if the curve has C1 continuity?– What about C2?

Page 9: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Geometric Continuity

• Derivative continuity is important for animation– If an object moves along the curve with constant parametric speed, there

should be no sudden jump at the knots

• For other applications, tangent continuity might be enough– Requires that the tangents point in the same direction– Referred to as G1 geometric continuity– Curves could be made C1 with a re-parameterization– The geometric version of C2 is G2, based on curves having the same radius

of curvature across the knot

• What is the tangent continuity constraint for a Bezier curve?

Page 10: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Bezier Geometric Continuity

P0,0

P0,1 P0,2

J

P1,1 P1,2

P1,3

Page 11: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Parametric Surfaces

• Define points on the surface in terms of two parameters

• Simplest case: bilinear interpolation

s

t

s

x(s,t)

P0,0

P1,0

P1,1P0,1

x(s,0)

x(s,1)

1

0

1

0,,,

,1,0

,1,0

1,11,0

0,10,0

)()(),(

,1

,1

)1,()0,()1(),(

)1()1,(

)1()0,(

i jtjsiji

tt

ss

tFsFPtsx

tFtF

sFsF

stxsxttsx

sPPssx

sPPssx

Page 12: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Tensor Product Surface Patches

• Defined over a rectangular domain– Valid parameter values come from within a rectangular region in

parameter space: 0s<1, 0t<1

• Use a rectangular grid of control points to specify the surface– 4 points in the bi-linear case on the previous slide, more in other

cases

• Surface takes the form:– For some functions Fi,s and Fj,t

s td

i

d

jtjsiji tFsFts

0 0,,, )()(),( Px

Page 13: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Bezier Patches

• As with Bezier curves, Bin(s) and

Bjm(t) are the Bernstein polynomials

of degree n and m respectively• Most frequently, use n=m=3: cubic

Bezier patch– Need 4x4=16 control points, Pi,j

n

i

m

j

mj

niji tBsBts

0 0,, Px

Page 14: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Bezier Patches (2)

• Edge curves are Bezier curves• Any curve of constant s or t is a Bezier curve• One way to think about it:

– Each row of 4 control points defines a Bezier curve in s– Evaluating each of these curves at the same s provides 4 virtual control

points– The virtual control points define a Bezier curve in t– Evaluating this curve at t gives the point x(s,t)

x(s,t)

Page 15: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Properties of Bezier Patches

• Which vertices, if any, does the patch interpolate? Why?

• What can you say about the tangent plane at each corner? Why?

• Does the patch lie within the convex hull of its control vertices?

Page 16: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Properties of Bezier Patches

• The patch interpolates its corner points– Comes from the interpolation property of the underlying curves

• The tangent plane at each corner interpolates the corner vertex and the two neighboring edge vertices– The tangent plane is the plane that is perpendicular to the normal vector at a

point

– The tangent plane property derives from the curve tangent properties and the way to compute normal vectors

• The patch lies within the convex hull of its control vertices– The basis functions sum to one and are positive everywhere

Page 17: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Bezier Patch Matrix Form

• Note that the 3 matrices stay the same if the control points do not change– The middle product can be pre-computed, leaving only:

10001

0033

0363

1331

0001

0033

0363

1331

1),(

),(

2

3

3,32,31,30,3

3,22,21,20,2

3,12,11,10,1

3,02,01,00,0

23

t

t

t

PPPP

PPPP

PPPP

PPPP

ssstsx

PBTBStsx TT

1

1),(2

3

3,32,31,30,3

3,22,21,20,2

3,12,11,10,1

3,02,01,00,0

23

t

t

t

MMMM

MMMM

MMMM

MMMM

ssstsx

Page 18: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Bezier Patch Meshes

• A patch mesh is just many patches joined together along their edges– Patches meet along complete edges– Each patch must be a quadrilateral

OK

OK Not OK Not OK

Page 19: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Bezier Mesh Continuity

• Just like curves, the control points must satisfy rigid constraints to ensure parametric continuity– How do we ensure C0 continuity along an edge?

– How do we ensure C1 continuity along an edge?

– How do we ensure C2 continuity along an edge?

• For geometric continuity, constraints are less rigid

• What can you say about the vertices around a corner if there must be C1 continuity at the corner point?

Page 20: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Bezier Mesh Continuity

• Just like curves, the control points must satisfy rigid constraints to ensure parametric continuity– C0 continuity along an edge? Share control points at the edge– C1 continuity along an edge? Control points across edge are

collinear and equally spaced– C2 continuity along an edge? Constraints extent to points farther

from the edge

• For geometric continuity, constraints are less rigid– Still collinear for G1, but can be anywhere along the line

• What can you say about the vertices around a corner if there must be C1 continuity at the corner point?– They are co-planar (not the interior points, just corner and edge)

Page 21: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Rendering Bezier Patches

• Option 1: Evaluate at fixed set of parameter values and join up with triangles– Can’t use quadrilaterals because points may not be co-planar

– Ideal situation for triangle strips

– Advantage: Simple, and OpenGL has commands to do it for you

– Disadvantage: No easy way to control quality of appearance

• Option 2: Subdivide– Allows control of error in the triangle approximation

– Defined much like curve subdivision, but done once in each parametric direction

Page 22: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Midpoint Subdivision

• Repeatedly join midpoints to find new control vertices– Do it first for each row of original control points: 4x4 -> 4x7

– Then do it for each column of new control points:4x7 -> 7x7

Page 23: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

A Potential Problem

• One (good) way to subdivide, is:– If a control mesh is flat enough – draw it– Else, subdivide into 4 sub-patches and recurse on each

• Problem: Neighboring patches may not be subdivided to the same level– Cracks can appear because join edges have different control meshes– This can be fixed by adding extra edges

Crack

Page 24: 04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.

04/18/02 (c) 2002 University of Wisconsin

Computing Normal Vectors

• The partial derivative in the s direction is one tangent vector

• The partial derivative in the t direction is another

• Take their cross product, and normalize, to get the surface normal vector

n

i

m

j

mj

s

ni

jits

tBds

dB

s 0 0,

,

Px

n

i

m

j t

mjn

ijits dt

dBsB

t 0 0,

,

Px

n

nn

xxn

ˆ ,, tsts ts


Recommended