curves and surfaces chapter 10. cs 480/680 2chapter 9 -- hierarchical models introduction:...

74
Curves and Curves and Surfaces Surfaces Chapter 10 Chapter 10

Upload: lucy-oliver

Post on 04-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

Curves and Curves and SurfacesSurfaces

Chapter 10Chapter 10

Page 2: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 2Chapter 9 -- Hierarchical Models

Introduction:Introduction: Until now we have worked with flat Until now we have worked with flat

entities such as lines and flat entities such as lines and flat polygonspolygons Fit well with graphics hardwareFit well with graphics hardware Mathematically simpleMathematically simple

But the world is not composed of flat But the world is not composed of flat entitiesentities Need curves and curved surfacesNeed curves and curved surfaces May only have need at the application May only have need at the application

levellevel Implementation can render them Implementation can render them

approximately with flat primitivesapproximately with flat primitives

Page 3: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 3Chapter 9 -- Hierarchical Models

Modeling with CurvesModeling with Curves

data pointsapproximating curve

interpolating data point

Page 4: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 4Chapter 9 -- Hierarchical Models

What Makes a Good What Makes a Good Representation?Representation? There are many ways to represent There are many ways to represent

curves and surfacescurves and surfaces Want a representation that isWant a representation that is

StableStable SmoothSmooth Easy to evaluateEasy to evaluate Must we interpolate or can we just come Must we interpolate or can we just come

close to data?close to data? Do we need derivatives?Do we need derivatives?

Page 5: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 5Chapter 9 -- Hierarchical Models

1. Representation of Curves 1. Representation of Curves and Surfacesand Surfaces

Before proceeding to our development Before proceeding to our development of parametric polynomial curves and of parametric polynomial curves and surfaces, we pause to summarize our surfaces, we pause to summarize our knowledge of the three major types of knowledge of the three major types of object representation, object representation,

And to observe the advantages and And to observe the advantages and disadvantages of each form.disadvantages of each form.

Page 6: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 6Chapter 9 -- Hierarchical Models

1.1 Explicit Representations1.1 Explicit Representations Most familiar form of curve in 2DMost familiar form of curve in 2D

y=f(x)y=f(x) Cannot represent all curvesCannot represent all curves

Vertical linesVertical lines CirclesCircles

Extension to 3D Extension to 3D y=f(x), z=g(x)y=f(x), z=g(x) The form The form z = f(x,y)z = f(x,y) defines a surface defines a surface

x

y

x

y

z

Page 7: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 7Chapter 9 -- Hierarchical Models

1.2 Implicit Representations1.2 Implicit Representations Two dimensional curve(s)Two dimensional curve(s)

g(x,y)=0g(x,y)=0 Much more robustMuch more robust

All lines All lines ax+by+c=0ax+by+c=0 Circles Circles xx22+y+y22-r-r22=0=0

Three dimensions Three dimensions g(x,y,z)=0g(x,y,z)=0 defines a defines a surfacesurface Intersect two surface to get a curveIntersect two surface to get a curve

In general, we cannot solve for In general, we cannot solve for points that satisfypoints that satisfy

Page 8: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 8Chapter 9 -- Hierarchical Models

Algebraic SurfaceAlgebraic Surface

Quadric surface 2 i+j+k

At most 10 terms

Can solve intersection with a ray by reducing problem to solving

quadratic equation

0 zyxkj

i j k

i

Page 9: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 9Chapter 9 -- Hierarchical Models

1.3 Parametric Form1.3 Parametric Form Separate equation for each spatial variableSeparate equation for each spatial variable

x=x(u)x=x(u)

y=y(u)y=y(u)

z=z(u)z=z(u)

For uFor umaxmax u u u uminmin we trace out a curve in two or we trace out a curve in two or

three dimensionsthree dimensions

p(u)

p(umin)

p(umax)

Page 10: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 10Chapter 9 -- Hierarchical Models

Selecting FunctionsSelecting Functions Usually we can select “good” Usually we can select “good”

functions functions not unique for a given spatial curvenot unique for a given spatial curve Approximate or interpolate known dataApproximate or interpolate known data Want functions which are easy to Want functions which are easy to

evaluateevaluate Want functions which are easy to Want functions which are easy to

differentiatedifferentiate Computation of normalsComputation of normals Connecting pieces (segments)Connecting pieces (segments)

Want functions which are smoothWant functions which are smooth

Page 11: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 11Chapter 9 -- Hierarchical Models

Parametric LinesParametric Lines

Line connecting two points p0 and p1

p(u)=(1-u)p0+up1

We can normalize u to be over the interval (0,1)

p(0) = p0

p(1)= p1

Ray from p0 in the direction d

p(u)=p0+ud

p(0) = p0

p(1)= p0 +d

d

Page 12: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 12Chapter 9 -- Hierarchical Models

Parametric Polynomial SurfacesParametric Polynomial Surfaces Surfaces require 2 parametersSurfaces require 2 parameters

x=x(u,v)x=x(u,v)

y=y(u,v)y=y(u,v)

z=z(u,v)z=z(u,v)

pp(u,v) = [x(u,v), y(u,v), z(u,v)](u,v) = [x(u,v), y(u,v), z(u,v)]TT

Want same properties as curves: Want same properties as curves: SmoothnessSmoothness DifferentiabilityDifferentiability Ease of evaluationEase of evaluation

x

y

z p(u,0)

p(1,v)p(0,v)

p(u,1)

Page 13: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 13Chapter 9 -- Hierarchical Models

NormalsNormals

We can differentiate with respect to We can differentiate with respect to uu and and vv to obtain the normal at any point to obtain the normal at any point pp

uvu

uvu

uvu

u

vu

/),(z

/),(y

/),(x),(p

vvu

vvu

vvu

v

vu

/),(z

/),(y

/),(x),(p

v

vu

u

vu

),(),( ppn

Page 14: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 14Chapter 9 -- Hierarchical Models

Parametric PlanesParametric Planes

point-vector form

p(u,v)=p0+uq+vr

n = q x rq

r

p0

n

three-point form

p0

n

p1

p2

q = p1 – p0

r = p2 – p0

Page 15: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 15Chapter 9 -- Hierarchical Models

Parametric SphereParametric Sphere

x(u,v) = r cos sin y(u,v) = r sin sin z(u,v) = r cos

360 0180 0

constant: circles of constant longitude constant: circles of constant latitude

differentiate to show n = p

Page 16: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 16Chapter 9 -- Hierarchical Models

Curve SegmentsCurve Segments After normalizing u, each curve is After normalizing u, each curve is

writtenwritten

pp(u)=[x(u), y(u), z(u)](u)=[x(u), y(u), z(u)]TT, 1 , 1 u u 0 0 In classical numerical methods, we In classical numerical methods, we

design a single global curvedesign a single global curve In computer graphics and CAD, it is In computer graphics and CAD, it is

better to design small connected better to design small connected curve curve segmentssegmentsp(u)

q(u)p(0)q(1)

join point p(1) = q(0)

Page 17: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 17Chapter 9 -- Hierarchical Models

1.4 Parametric Polynomial Curves1.4 Parametric Polynomial Curves

ucux iN

ixi

0

)( ucuy jM

jyj

0

)( ucuz kL

kzk

0

)(

•If N=M=K, we need to determine 3(N+1) coefficients

•Equivalently we need 3(N+1) independent conditions

•Noting that the curves for x, y and z are independent,we can define each independently in an identical manner

•We will use the form where p can be any of x, y, z

ucu kL

kk

0

)(p

Page 18: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 18Chapter 9 -- Hierarchical Models

Why PolynomialsWhy Polynomials Easy to evaluateEasy to evaluate Continuous and differentiable Continuous and differentiable

everywhereeverywhere Must worry about continuity at join Must worry about continuity at join

points including continuity of derivativespoints including continuity of derivativesp(u)

q(u)

join point p(1) = q(0)but p’(1) q’(0)

Page 19: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 19Chapter 9 -- Hierarchical Models

Cubic Parametric PolynomialsCubic Parametric Polynomials N=M=L=3, gives balance between ease of N=M=L=3, gives balance between ease of

evaluation and flexibility in designevaluation and flexibility in design

Four coefficients to determine for each of Four coefficients to determine for each of x, yx, y and and zz

Seek four independent conditions for Seek four independent conditions for various values of u resulting in 4 equations various values of u resulting in 4 equations in 4 unknowns for eachin 4 unknowns for each ofof x, y x, y andand z z

Conditions are a mixture of continuity Conditions are a mixture of continuity requirements at the join points and requirements at the join points and conditions for fitting the data conditions for fitting the data

ucu k

kk

3

0

)(p

Page 20: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 20Chapter 9 -- Hierarchical Models

Cubic Polynomial SurfacesCubic Polynomial Surfaces

vucvu ji

i jij

3

0

3

0

),(p

p(u,v)=[x(u,v), y(u,v), z(u,v)]T

where

p is any of x, y or z

Need 48 coefficients ( 3 independent sets of 16) to determine a surface patch

Page 21: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 21Chapter 9 -- Hierarchical Models

3. Parametric and Cubic 3. Parametric and Cubic Polynomial CurvesPolynomial Curves

Matrix-Vector FormMatrix-Vector Form

ucu k

kk

3

0

)(p

c

c

c

c

3

2

1

0

c

u

u

u

3

2

1

udefine

uccu TTu )(pthen

Page 22: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 22Chapter 9 -- Hierarchical Models

Cubic Polynomial SurfacesCubic Polynomial Surfaces

vucvu ji

i jij

3

0

3

0

),(p

p(u,v)=[x(u,v), y(u,v), z(u,v)]T

where

p is any of x, y or z

Need 48 coefficients ( 3 independent sets of 16) to determine a surface patch

Page 23: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 23Chapter 9 -- Hierarchical Models

Matrix-Vector FormMatrix-Vector Form

ucu k

kk

3

0

)(p

c

c

c

c

3

2

1

0

c

u

u

u

3

2

1

udefine

uccu TTu )(pthen

Page 24: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 24Chapter 9 -- Hierarchical Models

4. Interpolation4. Interpolation

Given four data (control) points p0 , p1 ,p2 , p3

determine cubic p(u) which passes through them

Must find c0 ,c1 ,c2 , c3

p0

p1

p2

p3

Page 25: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 25Chapter 9 -- Hierarchical Models

Interpolation EquationsInterpolation Equations

apply the interpolating conditions at u=0, 1/3, 2/3, 1

p0=p(0)=c0

p1=p(1/3)=c0+(1/3)c1+(1/3)2c2+(1/3)3c2

p2=p(2/3)=c0+(2/3)c1+(2/3)2c2+(2/3)3c2

p3=p(1)=c0+c1+c2+c2

or in matrix form with p = [p0 p1 p2 p3]T

p=Ac

11113

2

3

2

3

21

3

1

3

1

3

11

0001

32

32

A

Page 26: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 26Chapter 9 -- Hierarchical Models

Interpolation MatrixInterpolation MatrixSolving for c we find the interpolation matrix

5.45.135.135.4

5.4185.229

15.495.5

0001

1

AMI

c=MIp

Note that MI does not depend on input data and

can be used for each segment in x, y, and z

Page 27: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 27Chapter 9 -- Hierarchical Models

Interpolating Multiple SegmentsInterpolating Multiple Segments

use p = [p0 p1 p2 p3]T use p = [p3 p4 p5 p6]T

Get continuity at join points but notcontinuity of derivatives

Page 28: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 28Chapter 9 -- Hierarchical Models

4.1 Blending Functions4.1 Blending Functions Rewriting the equation for p(u)

p(u)=uTc=uTMIp = b(u)Tp where b(u) = [b0(u) b1(u) b2(u)

b3(u)]T is an array of blending polynomials such that p(u) = b0(u)p0+ b1(u)p1+ b2(u)p2+

b3(u)p3b0(u) = -4.5(u-1/3)(u-2/3)(u-1)b1(u) = 13.5u (u-2/3)(u-1)b2(u) = -13.5u (u-1/3)(u-1)b3(u) = 4.5u (u-1/3)(u-2/3)

Page 29: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 29Chapter 9 -- Hierarchical Models

Blending FunctionsBlending Functions These functions are not smoothThese functions are not smooth

Hence the interpolation polynomial is not Hence the interpolation polynomial is not smoothsmooth

Page 30: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 30Chapter 9 -- Hierarchical Models

4.2 The Cubic 4.2 The Cubic Interpolating PatchInterpolating Patch

Need 16 conditions to determine the 16 coefficients cij

Choose at u,v = 0, 1/3, 2/3, 1

vucvup j

jij

i

oi

3

0

3

),(

Page 31: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 31Chapter 9 -- Hierarchical Models

Matrix FormMatrix FormDefine v = [1 v v2 v3]T

C = [cij] P = [pij]

p(u,v) = uTCv

If we observe that for constant u (v), we obtaininterpolating curve in v (u), we can show

p(u,v) = uTMIPMITv

C=MIPMI

Page 32: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 32Chapter 9 -- Hierarchical Models

Blending PatchesBlending Patches

pvbubvup ijjj

ioi

)()(),(3

0

3

Each bi(u)bj(v) is a blending patch

Shows that we can build and analyze surfaces from our knowledge of curves

Page 33: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 33Chapter 9 -- Hierarchical Models

5. Hermite Curves and 5. Hermite Curves and SurfacesSurfaces

Other Types of Curves and SurfacesOther Types of Curves and Surfaces How can we get around the limitations How can we get around the limitations

of the interpolating formof the interpolating form Lack of smoothnessLack of smoothness Discontinuous derivatives at join pointsDiscontinuous derivatives at join points

We have four conditions (for cubics) We have four conditions (for cubics) that we can apply to each segmentthat we can apply to each segment Use them other than for interpolationUse them other than for interpolation Need only come close to the dataNeed only come close to the data

Page 34: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 34Chapter 9 -- Hierarchical Models

5.1 The Hermite Form5.1 The Hermite Form

p(0) p(1)

p’(0) p’(1)

Use two interpolating conditions andtwo derivative conditions per segment

Ensures continuity and first derivativecontinuity between segments

Page 35: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 35Chapter 9 -- Hierarchical Models

EquationsEquations Interpolating conditions are the same

at ends p(0) = p0 = c0 p(1) = p3 = c0+c1+c2+c3

Differentiating we find p’(u) = c1+2uc2+3u2c3

Evaluating at end points p’(0) = p’0 = c1 p’(1) = p’3 = c1+2c2+3c3

Page 36: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 36Chapter 9 -- Hierarchical Models

Matrix FormMatrix Form

Solving, we find c=MHq where MH is the Hermite matrix

cq

3210

0010

1111

0001

p'

p'

p

p

3

0

3

0

1122

1233

0100

0001

MH

Page 37: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 37Chapter 9 -- Hierarchical Models

Blending Polynomials Blending Polynomials p(u) = b(u)Tq

Although these functions are smooth, the Hermite form is not used directly in Computer Graphics and CAD because we usually have control points but not derivatives

However, the Hermite form is the basis of the Bezier form

uu

uuu

uu

uu

u

23

23

23

23

2

32

132

)(b

Page 38: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 38Chapter 9 -- Hierarchical Models

5.2 Geometric and Parametric 5.2 Geometric and Parametric ContinuityContinuity We can require the derivatives of x, We can require the derivatives of x,

y,and z to each be continuous at join y,and z to each be continuous at join points (points (parametric continuityparametric continuity))

Alternately, we can only require that Alternately, we can only require that the tangents of the resulting curve be the tangents of the resulting curve be continuous (continuous (geometry continuitygeometry continuity))

The latter gives more flexibility as we The latter gives more flexibility as we have need satisfy only two conditions have need satisfy only two conditions rather than three at each join pointrather than three at each join point

Page 39: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 39Chapter 9 -- Hierarchical Models

ExampleExample Here the p and q Here the p and q

have the same have the same tangents at the ends tangents at the ends of the segment but of the segment but different derivativesdifferent derivatives

Generate different Generate different Hermite curvesHermite curves

This techniques is This techniques is used in drawing used in drawing applicationsapplications

Page 40: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 40Chapter 9 -- Hierarchical Models

Higher Dimensional ApproximationsHigher Dimensional Approximations The techniques for both interpolating The techniques for both interpolating

and Hermite curves can be used with and Hermite curves can be used with higher dimensional parametric higher dimensional parametric polynomialspolynomials

For interpolating form, the resulting For interpolating form, the resulting matrix becomes increasingly more ill-matrix becomes increasingly more ill-conditioned and the resulting curves conditioned and the resulting curves less smooth and more prone to less smooth and more prone to numerical errorsnumerical errors

In both cases, there is more work in In both cases, there is more work in rendering the resulting polynomial rendering the resulting polynomial curves and surfacescurves and surfaces

Page 41: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 41Chapter 9 -- Hierarchical Models

6. Bezier Curves and 6. Bezier Curves and SurfacesSurfaces

Bezier’s IdeaBezier’s Idea In graphics and CAD, we do not usually In graphics and CAD, we do not usually

have derivative datahave derivative data Bezier suggested using the same 4 data Bezier suggested using the same 4 data

points as with the cubic interpolating points as with the cubic interpolating curve to approximate the derivatives in curve to approximate the derivatives in the Hermite form the Hermite form

Page 42: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 42Chapter 9 -- Hierarchical Models

6.1 Bezier Curves6.1 Bezier Curves Approximating DerivativesApproximating Derivatives

p0

p1p2

p3

p1 located at u=1/3 p2 located at u=2/3

3/1

pp)0('p 01

3/1

pp)1('p 23

slope p’(0) slope p’(1)

u

Page 43: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 43Chapter 9 -- Hierarchical Models

Page 44: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 44Chapter 9 -- Hierarchical Models

6.2 Bezier Surface Patches6.2 Bezier Surface Patches

Page 45: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 45Chapter 9 -- Hierarchical Models

7. Cubic B-Splines7. Cubic B-Splines

Page 46: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 46Chapter 9 -- Hierarchical Models

7.1 The Cubic B-Spline Curve7.1 The Cubic B-Spline Curve

Page 47: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 47Chapter 9 -- Hierarchical Models

7.2 B-Splines and Bases7.2 B-Splines and Bases

Page 48: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 48Chapter 9 -- Hierarchical Models

7.3 Spline Surfaces7.3 Spline Surfaces

Page 49: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 49Chapter 9 -- Hierarchical Models

8. General B-Splines8. General B-Splines

Page 50: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 50Chapter 9 -- Hierarchical Models

8.1 Recursively Defined B-Splines8.1 Recursively Defined B-Splines

Page 51: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 51Chapter 9 -- Hierarchical Models

8.2 Uniform Splines8.2 Uniform Splines

Page 52: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 52Chapter 9 -- Hierarchical Models

8.3 Nonuniform B-Splines8.3 Nonuniform B-Splines

Page 53: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 53Chapter 9 -- Hierarchical Models

8.4 NURBS8.4 NURBS

Page 54: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 54Chapter 9 -- Hierarchical Models

9. Rendering of Curves and 9. Rendering of Curves and SurfacesSurfaces

Page 55: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 55Chapter 9 -- Hierarchical Models

9.1 Polynomial Evaluation 9.1 Polynomial Evaluation MethodsMethods

Page 56: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 56Chapter 9 -- Hierarchical Models

9.2 Recursive Subdivision of 9.2 Recursive Subdivision of Bezier PolynomialsBezier Polynomials

Page 57: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 57Chapter 9 -- Hierarchical Models

9.3 Rendering of Other Polynomial 9.3 Rendering of Other Polynomial Curves by SubdivisionCurves by Subdivision

Page 58: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 58Chapter 9 -- Hierarchical Models

9.4 Subdivision of Bezier Surfaces9.4 Subdivision of Bezier Surfaces

Page 59: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 59Chapter 9 -- Hierarchical Models

10. The Utah Teapot10. The Utah Teapot

Page 60: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 60Chapter 9 -- Hierarchical Models

11. Algebraic Surfaces11. Algebraic Surfaces

Page 61: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 61Chapter 9 -- Hierarchical Models

11.1 Quadrics11.1 Quadrics

Page 62: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 62Chapter 9 -- Hierarchical Models

11.2 Rendering of Surfaces by Ray 11.2 Rendering of Surfaces by Ray CastingCasting

Page 63: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 63Chapter 9 -- Hierarchical Models

11.3 Subdivision Curves and 11.3 Subdivision Curves and SurfacesSurfaces

Page 64: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 64Chapter 9 -- Hierarchical Models

12. Curves and Surfaces in 12. Curves and Surfaces in OpenGLOpenGL

Page 65: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 65Chapter 9 -- Hierarchical Models

12.1 Bezier Curves12.1 Bezier Curves

Page 66: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 66Chapter 9 -- Hierarchical Models

12.2 Bezier Surfaces12.2 Bezier Surfaces

Page 67: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 67Chapter 9 -- Hierarchical Models

12.3 Displaying the Teapot12.3 Displaying the Teapot

Page 68: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 68Chapter 9 -- Hierarchical Models

12.4 NURBS Functions12.4 NURBS Functions

Page 69: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 69Chapter 9 -- Hierarchical Models

12.5 Quadrics12.5 Quadrics

Page 70: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 70Chapter 9 -- Hierarchical Models

Page 71: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 71Chapter 9 -- Hierarchical Models

Page 72: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 72Chapter 9 -- Hierarchical Models

13. Summary and Notes13. Summary and Notes

Page 73: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 73Chapter 9 -- Hierarchical Models

14. Suggested Readings14. Suggested Readings

Page 74: Curves and Surfaces Chapter 10. CS 480/680 2Chapter 9 -- Hierarchical Models Introduction: Introduction: Until now we have worked with flat entities such

CS 480/680 74Chapter 9 -- Hierarchical Models

Exercises -- Due next Exercises -- Due next classclass