Computer Graphics

42
Computer Graphics Computer Graphics Lecture 13 Curves and Surfaces I

description

Lecture 13 Curves and Surfaces I. Computer Graphics. Types of Curves / Surfaces. Explicit: y = mx + b z = A x + B y + C Implicit: Ax + By + C = 0 (x – x 0 ) 2 + (y – y 0 ) 2 – r 2 = 0 Parametric: - PowerPoint PPT Presentation

Transcript of Computer Graphics

Page 1: Computer Graphics

Computer Graphics

Computer Graphics

Lecture 13

Curves and Surfaces I

Page 2: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 2

Types of Curves / Surfaces• Explicit:

y = mx + b z = A x + B y + C

• Implicit: Ax + By + C = 0 (x – x0)2 + (y – y0)2 – r2 = 0

• Parametric:

x = x0 + (x1 – x0)t x = x0 + rcos

y = y0 + (y1 – y0)t y = y0 + rsin

Page 3: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 3

Today• Implicit Surfaces

– Metaball

• Parametric surfaces – Hermite curve– Bezier curve– Biubic patches– Tessalation

Page 4: Computer Graphics

Computer Graphics

3/10/2008 Lecture 3 4

Implicit Surfaces• Functions in the form of F(x,y,z) = 0

– i.e. Quadric functions

Sphere: f(x,y,z) = x + y + z = 0

2 2 2

Page 5: Computer Graphics

Computer Graphics

Metaballs • One type of implicit surface• Also known as blobby objects• Negative volume to produce hollows• Can be used to model smooth surfaces, liquid

Page 6: Computer Graphics

Computer Graphics

Metaballs (2)• A point surrounded by a density field• The density decreases with distance from the point • The density of multiple particles is summed• A surface is implied by sampling the area where

the density is a predefined threshold

Page 7: Computer Graphics

Computer Graphics

An Example of the density function

where (x0,y0,z0) is the centre of the metaball

20

20

20 )()()(

1),,(

zzyyxxzyxf

Page 8: Computer Graphics

Computer Graphics

Metaballs (3)•The surface points are sampled and approximated by polygonal meshes for rendering

Demo animation of metaballs•http://www.youtube.com/watch?v=UWvGyKolkho&feature=related

•http://www.youtube.com/watch?v=Nf_OlfWMRaA&NR=1

Page 9: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 9

Today• Implicit Surfaces

– Metaball

• Parametric surfaces – Hermite curve– Bezier curve– Biubic patches– Tessalation

Page 10: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 10

Why parametric?

• Parametric curves are very flexible.• Parameter count gives the object’s

dimension.

(x(u,v), y(u,v), z(u,v)) : 2 D surface• Coord functions independent.

Page 11: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 11

Specifying curves• Control Points:

– A set of points that influence the curve’s shape.

• Interpolating curve:– Curve passes through the

control points.

• Control polygon:– Control points merely

influence shape.

Page 12: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 12

Piecewise curve segments

We can represent an arbitrary length curve as a series of curves pieced together.

But we will want to control how these curves fit together …

Page 13: Computer Graphics

Computer Graphics

• If the tangent vectors of two cubic curve segments are equal at the join point, the curve has first-degree continuity, and is said to be C continuous

• If the direction and magnitude of d / dt [Q(t)] through the nth derivative are equal at the join point, the curve is called C continuous

• If the directions (but not necessarily the magnitudes) of two segments’ tangent vectors are equal at the join point, the curve has G continuity

Continuity between curve segments

1

n

n n

1

Page 14: Computer Graphics

Computer Graphics

Example • The curves Q1 Q2 Q3 join at point P

• Q1 and Q2 have equal tangent vectors at P and hence C1 and G1 continuous

• Q1 and Q3 have tangent vectors in the same direction but Q3 has

twice magnitude, so they are only G1 continuous at P

Page 15: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 15

Parametric Cubic Curves

• In order to assure C2 continuity our functions must be of at least degree 3.

• Cubic has 4 degrees of freedom and can control 4 things.

• Use polynomials: x(t) of degree n is a function of t.

– y(t) and z(t) are similar and each is handled independently

nn

iitatx

0

)(

Page 16: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 16

Hermite curves

• A cubic polynomial • Polynomial can be specified by the position

of, and gradient at, each endpoint of curve.

• Determine: x = X(t) in terms of x0, x0’, x1,

x1’

Now:

X(t) = a3t3 + a2t2 + a1t + a0

and X/(t) = 3a3t2 + 2a2t + a1

Page 17: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 17

Finding Hermite coefficientsSubstituting for t at each endpoint:

x0 = X(0) = a0 x0’= X/(0) = a1

x1 = X(1) = a3 + a2 + a1 + a0 x1’= X/(1) = 3a3 + 2a2+ a1

And the solution is:

a0 = x0 a1 = x0’

a2 = -3x0 – 2x0’+ 3x1 – x1

’ a3 = 2x0 + x0’ - 2x1 + x1

Page 18: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 18

The Hermite matrix: MH

The resultant polynomial can be expressed in matrix form:

X(t) = tTMHq ( q is the control vector)

'

'

0001

0010

1323

1212

1)(

1

1

0

0

23

x

x

x

x

ttttX

We can now define a parametric polynomial for each coordinate required independently, ie. X(t), Y(t) and Z(t)

Page 19: Computer Graphics

Computer Graphics

Hermite Basis (Blending) Functions

')()32(')2()132(

'

'

0001

0010

1323

1212

1)(

123

123

023

023

1

1

0

0

23

xttxttxtttxtt

x

x

x

x

ttttX

Page 20: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 20

Hermite Basis (Blending) Functions

x0 x1

x0'

x1/

The graph shows the shape of the four basis functions – often called blending functions.

They are labelled with the elements of the control vector that they weight.

Note that at each end only position is non-zero, so the curve must touch the endpoints

')()32(')2()132()( 123

123

023

023 xttxttxtttxtttX

Page 21: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 21

Family of Hermite curves.

x(t)

y(t)

Note : Start points on left.

Page 22: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 22

Displaying Hermite curves.

• Simple : – Select step size to suit.

– Plug x values into the geometry matrix.

– Evaluate P(t) x value for current position.

– Repeat for y & z independently.

– Draw line segment between current and previous point.

• Joining curves:– Coincident endpoints for C0 continuity

– Align tangent vectors for C1 continuity

.

Page 23: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 23

Bézier Curves• Hermite cubic curves are difficult to model –

need to specify point and gradient.

• More intuitive to only specify points.• Pierre Bézier (an engineer at Renault)

specified 2 endpoints and 2 additional control points to specify the gradient at the endpoints.

• Can be derived from Hermite matrix:– Two end control points specify tangent

Page 24: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 24

Bézier Curves

P2

P1

P4

P3

P3

P4

P2

P1

Note the Convex Hull has been shown as a dashed line – used as a bounding extent for intersection purposes.

Page 25: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 25

Bézier Matrix

• The cubic form is the most popular X(t) = tTMBq (MB is the Bézier matrix)

• With n=4 and r=0,1,2,3 we get:

• Similarly for Y(t) and Z(t)

3

2

1

0

23

0001

0033

0363

1331

1)(

q

q

q

q

ttttX

Page 26: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 26

Bézier blending functionsThis is how they look –

The functions sum to 1 at any point along the curve.

Endpoints have full weight

The weights of each function is clear and the labels show the control points being weighted.

q0 q3

q1 q2

Page 27: Computer Graphics

Computer Graphics

Joining Bezier Curves

• G continuity is provided at the endpoint when P2 – P3 = k (Q1 – Q0)

• if k=1, C continuity is obtained

1

1

Page 28: Computer Graphics

Computer Graphics

Bicubic patches• The concept of parametric curves can be

extended to surfaces • The cubic parametric curve is in the form of

Q(t)=tTM q where q=(q1,q2,q3,q4) : qi control points, M is the basis matrix (Hermite or Bezier,…), tT=(t3, t2, t, 1)

Page 29: Computer Graphics

Computer Graphics

• Now we assume qi to vary along a parameter s,• Qi(s,t)=tTM [q1(s),q2(s),q3(s),q4(s)]• qi(s) are themselves cubic curves, we can write

them in the form …

Page 30: Computer Graphics

Computer Graphics

Bicubic patches

sMMt

MsMsMttsQTT

TTT

....

])[..],...,[...(.),( 444411111

q

q,q,q,qq,q,q,q 4324321

where q is a 4x4 matrixEach column contains the control points of q1(s),…,q4(s) x,y,z computed by

44342414

43332313

42322212

41312111

qqqq

qqqq

qqqq

qqqq

sMMttsz

sMMttsy

sMMttsx

Tz

T

Ty

T

Tx

T

....),(

....),(

....),(

q

q

q

Page 31: Computer Graphics

Computer Graphics

14/10/2008 Lecture 6 31

Bézier example

• We compute (x,y,z) by

coordszofarrayisq

sMqMttsz

coordsyofarrayisq

sMqMttsy

coordsxofarrayisq

sMqMttsx

z

TBzB

T

y

TByB

T

x

TBxB

T

44

....),(

44

....),(

44

....),(

Page 32: Computer Graphics

Computer Graphics

14/10/2008 Lecture 6 32

Continuity of Bicubic patches.• Hermite and Bézier patches

– C0 continuity by sharing 4 control points between patches.

– C1 continuity when both sets of control points either side of the edge are collinear with the edge.

Page 33: Computer Graphics

Computer Graphics

14/10/2008 Lecture 6 33

Displaying Bicubic patches.

• Need to compute the normals– vector cross product of the 2 tangent vectors.

• Need to convert the bicubic patches into a polygon mesh – tessellation

Page 34: Computer Graphics

Computer Graphics

Normal Vectors

),,(),(),(

....]0,1,2,3[

...).()....(),(

]0,1,2,3.[...

)(....)....(),(

2

2

sttssttsstts

TT

TTTT

TTx

T

TTTT

yxyxxzxzzyzytsQt

tsQs

sMqMtt

sMqMtt

sMqMtt

tsQt

ssMqMt

ss

MqMtsMqMts

tsQs

The surface normal is biquintic (two variables, fifth-degree) polynomial and very expensiveCan use finite difference to reduce the computation

Page 35: Computer Graphics

Computer Graphics

14/10/2008 Lecture 6 35

Tessellation

• We need to compute the triangles on the surface• The simplest way is do uniform tessellation, which

samples points uniformly in the parameter space• Adaptive tessellation – adapt the size of triangles

to the shape of the surface– i.e., more triangles where the surface bends more

– On the other hand, for flat areas we do not need many triangles

Page 36: Computer Graphics

Computer Graphics

Adaptive Tessellation• For every triangle edges, check if each edge is

tessellated enough (curveTessEnough())• If all edges are tessellated enough, check if the

whole triangle is tessellated enough as a whole (triTessEnough())

• If one or more of the edges or the triangle’s interior is not tessellated enough, then further tessellation is needed

Page 37: Computer Graphics

Computer Graphics

• When an edge is not tessellated enough, a point is created halfway between the edge points’ uv-values

• New triangles are created and the tessellator is once again called with the new triangles as input

Adaptive Tessellation

Four cases of further tessellation

Page 38: Computer Graphics

Computer GraphicsAdaptive TessellationAdaptiveTessellate(p,q,r)• tessPQ=not curveTessEnough(p,q)• tessQR=not curveTessEnough(q,r)• tessRP=not curveTessEnough(r,p)• If (tessPQ and tessQR and tessRP)

– AdaptiveTessellate(p,(p+q)/2,(p+r)/2);– AdaptiveTessellate(q,(q+r)/2,(q+p)/2);– AdaptiveTessellate(r,(r+p)/2,(r+q)/2);– AdaptiveTessellate((p+q)/2,(q+r)/2,(r+p)/2);

• else if (tessPQ and tessQR) – AdaptiveTessellate(p,(p+q)/2,r);– AdaptiveTessellate((p+q)/2,(q+r)/2,r);– AdaptiveTessellate((p+q)/2,q,(q+r)/2);

• else if (tessPQ) – AdaptiveTessellate(p,(p+q)/2,r);– AdaptiveTessellate(q,r,(p+q)/2);

• Else if (not triTessEnough(p,q,r))AdaptiveTessellate((p+q+r)/3,p,q); AdaptiveTessellate((p+q+r)/3,q,r); AdaptiveTessellate((p+q+r)/3,r,p);

end;

Page 39: Computer Graphics

Computer Graphics

curveTessEnough• Say you are to judge whether ab needs

tessellation• You can compute the midpoint c, and compute

its distance l from ab • Check if l/||a-b|| is under a threshold• Can do something similar for triTessEnough

– Sample at the mass center and calculate its distance from the triangle

a b

c

d

Page 40: Computer Graphics

Computer Graphics

Other factors to evaluate

• Inside the view frustum• Front facing• Occupying a large area in screen space• Close to the sillhouette of the object• Illuminated by a significant amount of

specular lighting

Page 41: Computer Graphics

Computer Graphics

Demo

• http://www.nbb.cornell.edu/neurobio/land/OldStudentProjects/cs490-96to97/anson/BezierPatchApplet/

Page 42: Computer Graphics

Computer Graphics

10/10/2008 Lecture 5 42

Reading for this lecture

• Foley et al. Chapter 11, section 11.2 up to and including 11.2.3

• Introductory text Chapter 9, section 9.2 up to and including section 9.2.4

• Foley at al., Chapter 11, sections 11.2.3, 11.2.4, 11.2.9, 11.2.10, 11.3 and 11.5.

• Introductory text, Chapter 9, sections 9.2.4, 9.2.5, 9.2.7, 9.2.8 and 9.3.

• Real-time Rendering 2nd Edition Chapter 12.1-3