Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1...

224
1-1 Department of Computer Science and Engineering 1 Three-Dimensional Object Representations Chapter 1 Three-Dimensional Object Representations

Transcript of Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1...

Page 1: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-1Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

Chapter 1

Three-Dimensional Object Representations

Page 2: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-2Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.1 OverviewThe main goal of three-dimensional computer graphics is to generate two-dimensional images of a scene or of an object based on a a description or a model.The internal representation of an object depends on several implications:

– The object may be a real object or it exists only as a computer representation

– The manufacturing of the object is bound closely to the visualization:

• Interactive CAD systems• Modeling and visualization as a tool during design and

manufacturing• More than just 2-D output possible!

Page 3: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-3Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.1 OverviewImplications (continued)

– The precision of the internal computer representation depends on the application. For example, an exact description of the geometry and shape in CAD applications vs. an approximation sufficient for rendering of the object.

– For interactive applications, the object may be described by several internal representations. These representations may be generated in advance or on-the-fly.

• Level-of-detail (LOD) techniques

Page 4: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-4Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.1 OverviewThe modeling and representation of an object involves the following in particular:• Generation of 3-D geometry data

CAD interface, digitizer, laser scanner (reverse engineering), analytic techniques (e.g. sweeping), image (2-D) and video (3-D) analysis

• Representation, efficient data access and conversionPolygonal nets (e.g. triangulation), is the most common representation for rendering objects. Alternatives: finite elements (FEM), constructive solid geometry (CSG), boundary representation (B-rep), implicit surfaces (isosurfaces), surface elements (surfels = points + normals), …

• Manipulation of objects (change shape, …)e.g. Boolean operations, local smoothing, interpolation of features (e.g. boundary curves), “engraving” of geometric details, …

Page 5: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-5Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.1 OverviewThe topics of this chapter will be:

– Polygonal representations– Rendering Polygons with OpenGL– Quadric surfaces– Blobby Objects– Spline representations

• Cubic splines• Bézier splines• B-Splines• Rational splines

– Octree, BSP tree

Page 6: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-6Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.2 Polygonal RepresentationProperties/Characteristics:• The precision of the approximation (number and size of

polygons) can be chosen depending on the application, but several questions arise, e.g.:

– What polygonal resolution is required for a precise representation?

– What polygonal resolution is required for the renderer to make the piecewise approximation appear smooth?

– What is the correlation between number of polygons and the size of the final display of the object?Often the following rule of thumb is used: Choose the polygonal resolution based on the curvature of the object

Page 7: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-7Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.2 Polygonal RepresentationProperties/Characteristics:• Classic representations of three-dimensional objects in

computer graphics• Object is represented by a net of polygonal surfaces

(usually triangles) piecewise linear interpolation• The polygonal surfaces are usually an approximation of

the curved surface, representing the object’s boundary.

Page 8: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-8Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.2 Polygonal RepresentationHierarchy of the representation:Concept: The object constitutes of several surface

elements. Each surface element is represented by several polygons. Every polygon has vertices and edges.

Page 9: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-9Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.2 Polygonal RepresentationHierarchy of the representation (continued):Topology:

object

surfaces

polygons

edges

vertices

Page 10: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-10Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.2 Polygonal RepresentationHierarchy of the representation (continued):Data structure:

Vertices are stored only once

Page 11: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-11Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.2 Polygonal RepresentationComment on data structures:Data structures can contain – besides geometry information – special attributes required for the application or for the rendering:

– Surface attributes:Representation (triangle, polygon, free-form surface), coefficients, normal vector, properties (plane, convex, holes, …), reference to vertices (and edges, if necessary)

– Edge attributes:Length, type (round edge, feature line, virtual edge, reference to vertices and/or polygon

– Vertex attributes:Normal vector, color, texture coordinates, reference to polygon and/or edge

Page 12: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-12Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.2 Polygonal RepresentationComment on edges:Obviously, there are two different kinds ofedges involved in the approximaterepresentation:

– Sharp edges (feature lines)• This type of edge should be visible

– Virtual edges (“inside” a smooth surface)• These should be invisible after rendering• Interpolative shading algorithms

flat, Gouraud, Phong shading (now implemented in hardware)

Which kind of edge is to be used can be enforced by the data structure by storing edges multiple times (see image).

Page 13: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-13Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.3 Polygon Rendering with OpenGLOpenGL rendering pipeline:Both, vertex and fragment shader are programmable

Page 14: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-14Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.3 Polygon Rendering with OpenGLOpenGL supports several types of polygons:

GL_POLYGON

GL_TRIANGLES

GL_TRIANGLE_STRIP

GL_TRIANGLE_FAN

GL_QUADS

GL_QUAD_STRIP

Convenience functions exist for certain objects:glutSolidTetrahedron glutWiredTetrahedron

glutSolidCube glutWireCube

Page 15: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-15Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.3 Polygon Rendering with OpenGL

Page 16: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-16Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.3 Polygon Rendering with OpenGLBeware: OpenGL will ignore invalid polygons, e.g. self intersecting, non-convex, or non-planar polygons

Page 17: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-17Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.3 Polygon Rendering with OpenGLThere are basically four different ways to render geometric objects with OpenGL:• Direct rendering• Display lists• Vertex arrays• Vertex buffer objects

Page 18: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-18Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.3 Polygon Rendering with OpenGLDirect rendering:

glBegin (GL_TRIANGLES);

glNormal3f ( … );

glVertex3f ( … );

glNormal3f ( … );

glVertex3f ( … );

glEnd ();

In case of polygons with a fixed number of vertices, i.e. triangles, quads, etc., you can generate several such polygons using one glBegin/glEnd block.

Page 19: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-19Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.3 Polygon Rendering with OpenGLDisplay lists:Stores OpenGL API commands in graphics memory for faster access.

GLuint index = glGenLists (1);

if (index != 0) {

glNewList (index, GL_COMPILE);

… // draw something

glEndList ();

}

glCallList (index);

Using GL_COMPILE_AND_EXECUTE instead of GL_COMPILE makes the glCallList unnecessary.

Page 20: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-20Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.3 Polygon Rendering with OpenGLVertex arrays:Store vertices in bulk arrays to reduce number of OpenGL function calls.

GLfloat vertices[] = { … };

GLfloat normals[] = {… };

glEnableClientState (GL_VERTEX_ARRAY);

glEnableClientState (GL_NORMAL_ARRAY);

glNormalPointer (GL_FLOAT, 0, normals);

glVertexPointer (3, GL_FLOAT, 0, vertices);

glDrawArrays (GL_TRIANGLE_STRIP, 0, 10);

This constructs a triangle strips using the first ten elements. The 0 as argument for the arrays is the stride parameter allowing you to skip elements within the arrays.

Page 21: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-21Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.3 Polygon Rendering with OpenGLVertex buffer objects (VBO):Vertex buffer objects are like vertex arrays, but stored in graphics memory for faster access.Fill the VBO with data; use indices to remember them:

GLuint vbovertices, vbonormals;GLfloat vertices[] = { … }, normals[] = {… };glGenBuffers (1, vbovertices);glGenBuffers (1, vbonormals);glBindBuffer (GL_ARRAY_BUFFER vbovertices);glBufferData (GL_ARRAY_BUFFER, datasize,

vertices, GL_STREAM_DRAW);glBindBuffer (GL_ARRAY_BUFFER, vbonormals);glBufferData (GL_ARRAY_BUFFER, datasize,

normals, GL_STREAM_DRAW);

Page 22: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-22Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.3 Polygon Rendering with OpenGLVertex buffer objects (continued):Now, draw the previously generated VBOs:

glBindBuffer (GL_ARRAY_BUFFER vbovertices);

glVertexPointer (3, GL_FLOAT, 0, (GLvoid *)0);

glBindBuffer (GL_ARRAY_BUFFER, vbonormals);

glNormalPointer (GL_FLOAT, 0, (GLvoid *)0);

glDrawArrays (GL_TRIANGLE_STRIP, 0, count);

Notes:– There is no actual data pointer required for the glVertexPointer and glNormalPointer calls since the VBOs are used as data repository.

– The client states need to be set just like with vertex arrays

Page 23: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-23Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.4 Quadric SurfacesQuadric surfaces are described with second-degree equations (quadrics). Quadratic surfaces are common elements in computer graphics and CAD. Some examples are:

Sphere:

Ellipsoid:

rzyx =++ 222

1222

=⎟⎟⎠

⎞⎜⎜⎝

⎛+⎟

⎟⎠

⎞⎜⎜⎝

⎛+⎟⎟

⎞⎜⎜⎝

zyx rz

ry

rx

Page 24: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-24Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.4 Quadric SurfacesOpenGL supports quadric surfaces directly using the GLUT or GLU libraries.For example:

glutSolidSphere (r, xdiscretization, ydiscretization);

Or:GLUQuadric *quadric;

quadric = gluNewQuadric ();

gluSphere (quadric, r, xdiscretization, ydiscretization);

Page 25: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-25Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.5 Blobby ObjectsIdea: describe the surface or volume of an object as iso-surface within a scalar field (i.e. a point is part of the iso-surface if and only if the scalar field has the same so-called iso-value). The scalar field itself is generated through generating primitives (functions).Example: point heat sources create a spherical field. By adding two of those fields we get a global scalar field.

Page 26: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-26Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.5 Blobby ObjectsThe appearance of the iso-surface is relatively easy to handle if the center points and the individual scalar fields are chosen reasonably. The following image shows two iso-surfaces which are generated by two radial symmetric fields. The two centers of the generating fields approach each other when going from top to bottom and left to right in the image until they are at the exact same location.You can see the merging effect during the transition of the smooth iso-surface (C1-continuous in this case) after the two centers get close enough. In the opposite case, where the centers move apart we would see the iso-surface separating.

Page 27: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-27Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.5 Blobby Objects

Page 28: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-28Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.5 Blobby ObjectsDensity function:The most commonly used density functions with have the following properties:

– For is a polynomial– for is the maximal radius––– is monotonically decreasing

The following graph shows an example for such a density function.

],0[: 0 af →ℜ+

0, >ℜ∈ aafbbbt )0,](,0[ >ℜ∈∈

0)( =tf bt >

f

0)(,)0( == bfaf0)(',0)0(' == bff

Page 29: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-29Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.5 Blobby ObjectsDensity function (continued):

Then, a radial symmetric field of a discrete blob at a point P can be defined as withℜ→ℜ3:dF )()(

2PxfxFd −=

Page 30: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-30Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.5 Blobby ObjectsApplication example: flow simulation

Page 31: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-31Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.5 Blobby ObjectsApplication example: flow simulation

Page 32: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-32Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.5 Blobby ObjectsApplication example: flow simulation

Page 33: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-33Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsMotivation:Free-form-curves and –surfaces became very popular during the last decade, particularly due to their application in several engineering disciplines. Free-form-curves are nowadays a fundamental design method in CAD/CAM software. This section will introduce basic concepts.

Specifically, we will cover:– Interpolation using polynomials and splines– Bézier curves, B-splines– Rational B-splines

Page 34: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-34Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

Surface consisting of several segments (patches)

Page 35: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-35Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

interpolation

Page 36: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-36Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

interpolation

Page 37: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-37Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

Piecewise smooth surface reconstructionbased on a network of curves

Page 38: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-38Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

Usually, more than one possible solution exist to the interpolation problem

Page 39: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-39Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsInterpolation problem:Letbe a set of pairs of real numbers with pairwise unequal nodes ,

A polynomial p of degree less than n+1,

with real coefficients cj is called interpolation problem of

if

),( ii ft ni ,...,0=

itjitt ji ≠≠ for

),( ii ftniftp ii ,...,0)( == for

∑=

⋅=n

j

jj tctp

0)(

Page 40: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-40Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsQuestions:• Does a unique solution to this problem exist?• Is there an algorithmic method to solve the problem? Is

it efficient enough?• Is the quality good enough for the application?

Theorem 1: There exist a unique solution to the interpolation problem.

Page 41: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-41Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsProof:Plugging in the definition of the polynomial into the interpolation problem results in a system of linear equations:

or . The matrix is the well-known Vandermonde matrix with the property:

Since is regular, we have proven the theorem.

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

=

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

nnnnnn

n

n

f

ff

c

cc

ttt

tttttt

MM

L

MM

L

L

1

0

1

0

2

1211

0200

1

11

fcA =⋅ A

A

∏>=

−=n

jijiji ttA

;0,

)(det

Page 42: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-42Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsNote: Let be a set of n+1 points at different nodes ti.Then, an interpolation 3-D curve p withcan be determined in an analog fashion by solving the linear equation system:Here, the coefficients are vectors, i.e.

For each coordinate, we get a linear system with an identical matrix A.

f i xi , yi , zi IR3

p t i f i

Ac fci IR3

xz

y f1

fn

...

t0 t1 tn

parametrisation

Page 43: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-43Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsLagrange interpolationThe solution of the linear equation system of the interpolation problem usually has complexity O(n3). However, we would prefer a set of basis functions with the property:

such that

Using these so called blending functions simplifies the matrix of the linear equation system to the identity matrix, i.e. and the resulting polynomial can be written as

Li ti 0n Li t j ij

p ti 0

n

f i Li t

ci f i i 0, . . . , n

Page 44: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-44Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsTheorem 2: The Lagrange polynomials

fulfill the desired property:

Li tk 0,k i

n t t k

t i t k

Li t j ij .

Page 45: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-45Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsProof:

Plug in ti

and for

Li tik 0, k i

n ti t k

ti t k1

j i : Li t j . . .t j t j

ti t j. . . 0

Page 46: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-46Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsLagrange polynomials

t0

1

t0 tnti

Li (t)

......

Page 47: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-47Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsExample:1. n=1, i.e. linear interpolation

Interpolate the points (x0,y0) and (x1, y1) (use x0,x1 as nodes)

2. Interpolate the following set of points:

0.2220.511100yixii

10

10 )(

xxxxxL

−−

=01

01 )(

xxxxxL

−−

=

10

0110

01

01

10

10

)()()(xx

xxyxxyxxxxy

xxxxyxP

−−+−

=−−

+−−

=

Page 48: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-48Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

( ) ( )( ) ( )

( ) ( )( ) ( ) ( )

( ) ( )( ) ( )

( ) ( )( ) ( )

( ) ( )( ) ( )

( ) ( )( ) ( ) ( )

( ) ( ) ( )16.01.0

2.0215.02123

21)(

21

120210)(

2210120)(

2321

201021)(

2

222

2

1202

102

2

2101

201

2

2010

210

+⋅−⋅=

⋅−+⋅+−+⋅+−=

−=−⋅−−⋅−

=−⋅−−⋅−

=

+−=−⋅−−⋅−

=−⋅−−⋅−

=

+−=−⋅−−⋅−

=−⋅−−⋅−

=

xx

xxxxxxxP

xxxxxxxx

xxxxxL

xxxxxxxx

xxxxxL

xxxxxxxx

xxxxxL

Page 49: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-49Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsExample: cubic Lagrange polynomials with uniform nodes

3iti =

Page 50: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-50Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

ttttLtL

ttttLtL

tttttt

ttttttt

tttt

tttttL

tttttt

ttttttt

tttt

tttttL

+−=−=

−+−=−=

−+−=−

−+−=

⎟⎟⎠

⎞⎜⎜⎝

⎛−−

⎟⎟⎠

⎞⎜⎜⎝

⎛−−

⎟⎟⎠

⎞⎜⎜⎝

⎛=⎟⎟

⎞⎜⎜⎝

⎛−−

⎟⎟⎠

⎞⎜⎜⎝

⎛−−

⎟⎟⎠

⎞⎜⎜⎝

⎛−−

=

+−+−=−

−+−=

⎟⎠⎞

⎜⎝⎛−−

⎟⎟⎠

⎞⎜⎜⎝

⎛−−

⎟⎟⎠

⎞⎜⎜⎝

⎛−−

=⎟⎟⎠

⎞⎜⎜⎝

⎛−−

⎟⎟⎠

⎞⎜⎜⎝

⎛−−

⎟⎟⎠

⎞⎜⎜⎝

⎛−−

=

2293

29

03

2923

227

12

22453

227

92

92

91123

32

3132

31

31

3

21

2

01

01

21123

29

92

92

91123

3232

3131

30

3

20

2

10

10

)1()(

18)1()(

92

1)(

192

11)(

Page 51: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-51Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsNewton interpolationThe Newton scheme has the advantage of being a dynamic scheme, i.e. additional nodes can be added without having to re-compute all basis functions.For this scheme, the following basis functions are used:

with properties for i>j

N i tk 0

i 1

t t k

N i t j 0

N i t i 0 .

Page 52: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-52Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsThe coefficients ai for the solution

Are computed recursively using the k-th divided differences

p ti 0

n

ai N i t

f t j , . . . ,t j k

f t j : f j j 0, . . . , n

f t j , . . . ,t j k :f t j 1 , . . . , t j k f t j , . . . , t j k 1

t j k t jai f t0 , . . . , t i

Page 53: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-53Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsThis results in the following scheme:

...t3

......t2

t1

t0

321k=0f 0 f t0 a0

f 1 f t1

f 2 f t2

f 3 f t 3

f t0 , t1 a1

f t1 , t2

f t2 , t3

f t0 , t1 , t2 a2

f t1 , t2 , t3

f t0 , . . . , t3 a3

0

1

2

3

Page 54: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-54Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsNote: the coefficients ai can also be determined using a linear equation system. Since the matrix of the resulting linear system is a triangular matrix, solving this system would be equivalent to the scheme using the divided differences.Example: ti , f i 0,1 ; 2,3 ; 4,5

541

0=a2321=a1

1=a00ti fi

p(x) = a0+a1(x-t0)+a2(x-t0)(x-t1)= 1 + x

Page 55: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-55Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsBeware: the interpolating polynomial interpolating n+1

nodes is not necessarily of degree n, but at most of degree n.

Note:– The order of the nodes does not change the result when using

Newton’s scheme– Interpolating a continuous function f on the interval [a,b] using

n points does not necessarily ensure that the series of interpolating polynomials fn converges to f.

Conclusion: Using more points does not necessarily improve the quality of the resulting interpolating polynomial!

Page 56: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-56Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsDisadvantages of polynomial interpolation (particularly with respect to CAD/CAM):

– Interpolating polynomials of degree larger than 5 often are quite “wavy”

Remedy: introduce additional conditions, such as minimization of folding energy(→ splines)

– Each point that is to be interpolated influences the resulting curve globally

Remedy: Use basis functions with local influence

Page 57: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-57Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsThe higher the degree of a polynomial, the more wavy its shape, especially at the end points of the interval. The parameterization (choice of nodes) influences the quality of the resulting curve.

Page 58: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-58Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsInterpolating derivativesLet ti (i=0,…,n) be different nodes and for each i the values of the first ni-1 derivatives are known:

fi, fi(1), …, fi

(n-1) (i=0,…,n)

We are looking for a polynomial of degree

such that p(j)(ti) = fi(j) (i=0,…n; j=0,…,ni-1)

∑=

−=≤n

iinm

01

∑=

=m

j

jjtctp

0)(

Page 59: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-59Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsPlugging in the desired conditions into the polynomial equation – similar to the previous interpolation problem –results in a linear system of equations.Theorem 3: There is a unique solution to this linear

system of equationsProof: Overall, there are m+1 conditional equations with m+1 coefficients. The system is regular if the homogenous problem (fi

(j)=0) only allows the trivial solution. This is exactly the case: since p has exactly m+1zeros (including multiplicities) and p is of degree ≤m, the polynomial p has to be zero.

Page 60: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-60Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsExample: We are looking for the cubic polynomial which interpolates f(0), f’(0), f(1), and f’(1). A cubic polynomial can be described as:

p(t) = c3t3 + c2t2 + c1t + c0

And the derivative:p’(t) = 3c3t2 + 2c2t + c1

This gives us:f(0) = c0

f’(0) = c1

f(1) = c3 + c2 + c1 + c0

f’(1) = 3c3 + 2c2 + c1

Page 61: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-61Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsOr in matrix form:

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

=

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

)1(')1()0(')0(

3210111100100001

3

2

1

0

ffff

cccc

Page 62: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-62Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsHermite interpolation:In analogy to the Lagrange interpolation, we can find basis polynomials that are optimal for interpolating derivatives. These are called Hermite polynomials.Example: we are looking for cubic Hermite polynomials for the system resulting from the previous example. The coefficients can be determined by inverting the matrix:

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

−−−−

=

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

)1(')1()0(')0(

12121323

00100001

3

2

1

0

ffff

cccc

Page 63: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-63Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsThen, the resulting Hermite polynomials are:

The Hermite polynomials have the following properties:

0

1

0 1

H 1H 0

H 1

H 0

231

231

230

230

)(

32)(

2)(

132)(

tttH

tttH

ttttH

tttH

−=

+−=

+−=

+−=

0)(

)(

=

=

jH

jH

i

iji δ

iji

i

jHjH

δ==

)('0)('

1,0, =ji

Interpolation: )1(')0(')1()0()(1010fHfHfHfHtX +++=

Page 64: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-64Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsBézier segments:Modeling of individual curve segments is easier and more intuitive if there is a correlation between the coefficients (design parameters) and the geometry of the curve. Interpolated points are not very suitable for this matter because the waviness cannot be controlled by the interpolated points. Bézier segments are polynomial curves, which are defined through a control polygon. This control polygon is approximated by the resulting curve, but only interpolates at the end points. The vertices of the control polygon (control points, here: Bézier points) constitute the coefficients of the representation using Bernstein polynomials (new basis).

Page 65: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-65Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsBézier segments:By changing the geometric layout of the control polygon, the curve can be easily modified. One of the properties of Bézier segments is that the number of inflection points of the curve is less or equal to the number of inflection points of the control polygon. This variation diminishing property allows for good control of the waviness of the curve.Bézier segments have many applications and are often used for modeling of composite curves and surfaces (Bézier splines). The Bézier technique is further explained in the following.

Page 66: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-66Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsBézier segments: the de Casteljau algorithmThe de Casteljau algorithm [Cast.59][Böhm84] generalizes linear interpolation of polynomial curves. Let b0 and b1 be two points and t a parameter between 0 and 1. Then t uniquely defines a point on the linear segment connecting b0 and b1:

X(t) = (1 - t) b0 + t b1

X(t)

t : (1-t)

b0

b1

Page 67: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-67Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representationsde Casteljau algorithm

X(t)

b0

b1

t:

(1 - t)

b0

b0

b1 b2

b3

b1

b2

t:

(1 - t)

t : (1-t)t

: (1 - t)

X(t)

X(t)

linear

cubic

quadratic

Page 68: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-68Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representationsde Casteljau algorithmLet bi (i=0,…,n) be n+1 Bézier points. Then, the de Casteljau algorithm for evaluating a Bézier segment is based on the following recursion:

n

ji

ji

ji

ii

btX

njjnitbbtb

nibb

0

11

1

0

)(

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

),...,0(

=

=−=+−=

==−+

b0

b1 ...

bn

b0 = X(t)

b02

bn-22

bn-11

b11

b01

n

Example: n=3

Page 69: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-69Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representationsde Casteljau algorithm

Scheme of the de Casteljau algorithmEvery point bi

j is a convex combination of its predecessors bi

j-1 and bi+1i-1, weighted using (1-t) and t,

respectively.bi

j(t) is a polynomial of degree j (or less).

X(t)bbb

bb

b

nnn =− 01

10

10

01

00

L

OMM

Page 70: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-70Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsProperties of Bézier segments1) Convex hull: the curve X(t), t [0,1] is located within

the convex hull of the control polygon, i.e. there are weights with

2) Variation diminishing: an arbitrary straight line intersects the curves as often or less than the control polygon (within the plane).

3) End point interpolation: X(0) = b0, X(1) = bn.

0≥iα

1

)(

0

0

=

=

=

=

n

ii

n

iiibtX

α

αX(t)

Page 71: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-71Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations4) Affine invariance: let φ be an affine mapping

φ(p) = Ap+v. Then, φ(X(t)) = Y(t), with the curve Ybeing defined by the transformed Bézier points φ(bi).

5) Bernstein basis: the de Casteljau algorithm results in a curve of (maximal) degree n. As basis the so called Bernstein polynomials are used:

X(t)Y(t)

inini

n

i

nii tt

in

tBtBbtX −

=

−⎟⎟⎠

⎞⎜⎜⎝

⎛==∑ )1()( , )()(

0

Page 72: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-72Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations6) Properties of the Bernstein polynomials: the

Bernstein polynomials are symmetric, not negative between [0,1], and the sum of all polynomials is one:

∑ =

∈≥

−= −

1)(

]1,0[ , 0)(

)1()(

tB

ttB

tBtB

ni

ni

nin

ni

00

1

10

0

1

1

B02

B12

B22 B0

3

B13 B2

3B3

3

Page 73: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-73Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations7) Symmetry: inverting the sequence of the control

points bi of X(t) results in a Bézier segment Y(t) with inverted parametrization: Y(t) = X(1-t).

8) Pseudo-local control: the Bernstein polynomials influence the curve globally, however, their maxima are located in the proximity of the control points: max(Bi

n) = Bin(i/n).

Moving a control point bi results in a limited change of the curve. The change is maximal at t=i/n. (Interpolated polynomials do not allow for pseudo-local control). However, small changes to the control points can change the curve significantly.

Page 74: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-74Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations9) Degree increase: a Bézier segment of degree n can

be represented as a Bézier segment of degree n+1 (of course, the actual degree will be the same but the representation will use the higher degree Bernstein polynomials):

)1,...,0( , 1

11

' 1 +=⎟⎠⎞

⎜⎝⎛

+−+

+= − nib

nib

nib iii

b2b1

b´3

b´2

b´1

b0 = b´0 bn = b´n+1

Page 75: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-75Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations10)Subdivision: a Bézier segment can be separated at a

location t into two Bézier segments using the de Casteljau algorithm. The new control points are b0

i

and bin-i (i=0,…,n).

b0

...

b3

b0

b02

b12

b21b0

1

3

00

Page 76: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-76Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations11)Derivative: the derivative of a Bézier segment of

degree n can be represented as a Bézier segment of degree n-1 using the control points

bi’ = n(bi+1 – bi) (i=0,…,n).

This can be concluded from the following equation

X(t)

b´0

b´2

b´1

b0

b2b1

b3

X´(t)

(scaled by 1/n)

0:, ))()(()( 111

111 =−= −−

−−−

−nn

nni

ni

ni BBtBtBntB

dtd

Page 77: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-77Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsDerivativesFor higher derivatives you can use the following recursive formula:

The derivatives can also be determined using the derivatives of the Bernstein polynomials:

iiip

ip

ip

pnii

pn

i

pp

p

bbbbb

tBbpn

ntXdtd

=ΔΔ−Δ=Δ

Δ−

=

+

−−

=∑

011

1

0)(

)!(!)(

and with

∑=

−+−⎟⎟

⎞⎜⎜⎝

⎛−

−=

p

k

pnkpi

knip

p

tBkp

pnntB

dtd

0)()1(

)!(!)(

Page 78: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-78Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsDerivatives at end pointsAt the end points the p-th derivative only depend on p+1control points:

)33)(2)(1()1(''')2)(1()1(''

)()1(')33)(2)(1()0('''

)2)(1()0('')()0('

321

21

1

0123

012

01

−−−

−−

−+−−−=+−−=

−=−+−−−=

+−−=−=

nnnn

nnn

nn

bbbbnnnXbbbnnX

bbnXbbbbnnnX

bbbnnXbbnX

Page 79: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-79Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsDerivativesThe derivatives of a Bézier segment can also be calculated using the de Casteljau algorithm:

)2)(1()(''

)()('2

02

12

2

10

11

−−−

−−

+−−=

−=nnn

nn

bbbnntX

bbntX

b0

b1 ...

bn

b0 = X(t)

b0n-1

b1n-1

b2n-2

b1n-2

b0n-2

n

Example: n=3

Page 80: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-80Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsComments:1) Due to the convex hull property the bounding box of

the control points encloses the Bézier segment. By splitting the segment recursively into sub-segments this enclosure can be refined.

2) The variation diminishing property means that the approximation using the Bernstein polynomials is at least as smooth as the control polygon itself. Hence, the waviness of the resulting curve can controlled by the control polygon.

Page 81: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-81Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsExample (n=3): basis transformation (to monomials)

( )⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

−−

−−

=

+

+−+

+−+

+−+−=

3

2

1

0

23

33

232

231

230

0001003303631331

1

)(

)33(

)363(

)133()(

bbbb

ttt

tb

ttb

tttb

tttbtX

Page 82: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-82Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsExample (n=3): Equivalence of Bernstein basis and de Casteljau

3

300

33

23

22

13

12

12

11

232

212

10

33

22

21

30

)1(

))1(()1)()1((

))1((

))1(2)()1(()1)()1((

)1(3)1(3)1()(

bBbtbtb

ttbtbttbtb

ttbtb

tttbtbttbtb

tbttbttbtbtX

==+−=

+−+−+−=

+−+

−+−+−+−=

+−+−+−=

11

b 12

b

1

3b

22

b 23

b

20

B 21

B

2

2B

10

B 11

B

Page 83: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-83Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsExample (de Casteljau algorithm)The control polygon has the vertices (0,0), (2,4.5), (8.5,6.5), and (11,2). Compute X(0.6) of the cubic Bézier segment: 0

0

2 1.24.50 4 2.7

0 6 8.5 5.9 4.026.5 5.7 4.511 6.6310 8.362 4.543.8 4.56

.

.

⎛ ⎞⎜ ⎟⎝ ⎠⎛ ⎞ ⎛ ⎞⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠⎛ ⎞ ⎛ ⎞ ⎛ ⎞⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠ ⎝ ⎠⎛ ⎞ ⎛ ⎞⎛ ⎞ ⎛ ⎞⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠⎝ ⎠ ⎝ ⎠

6.63(0.6)

4.54X ⎛ ⎞

⇒ = ⎜ ⎟⎝ ⎠

Split

ting

ratio

Page 84: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-84Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsExample (continued)Compute the first derivative X’(0.6) and second derivativeX’’(0.6):

( )2 23 2

8.36 4.02 13.020.6 3 3

4.56 4.50 0.18X ( ) b b

⎛ ⎞⎛ ⎞ ⎛ ⎞ ⎛ ⎞′ = ⋅ − = ⋅ − =⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠ ⎝ ⎠⎝ ⎠

( )1 1 13 2 1

10.00 5.9 1.2 3.60.6 6 2 6 2

3.80 5.7 2.7 29.4X ( ) b b b

⎛ ⎞ −⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞′′ = ⋅ − + = ⋅ − ⋅ + =⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟−⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠⎝ ⎠

Page 85: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-85Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsGeneralizationOften, a series of Bézier segments compose a spline curve. Therefore, the individual segments might be parameterized differently (e.g. on the interval [a,b]instead of [0,1]) so that a more general Bézier segment can be defined as:

Caution: changing the parameterization also changes the derivative so that the p-th derivative gets scaled by

n

inin

ii

n

i

nii ab

tbatni

babaBbtX

)()()(1)(

00 −−−

⎟⎟⎠

⎞⎜⎜⎝

⎛=⎟

⎠⎞

⎜⎝⎛

−−

=−

==∑∑

pab )(1−

Page 86: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-86Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsIntegrating a Bézier segment

Let a Bézier segment defined on

the interval [a,b]. The integral can then be computed by:

Proof:

∑=

⎟⎠⎞

⎜⎝⎛

−−

=n

i

nii ab

aBbtX0

1)(

)(1

)(10 m

b

a

bbbm

abdttX ++++−

=∫ K

asabsgdsabsBdtabatB

mim

tB

b

a

mi

+−=−=⎟⎠⎞

⎜⎝⎛

−−

=+

=

∫∫

)()())((

),,0(1

1)(

1

0

1

0

withngsubstituti after

get we From K

Page 87: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-87Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsInterpolating with Bézier segmentsInterpolating with Bézier segments can be achieved using a system of linear equations, which is derived directly from the interpolating condition:

There is a unique solution to this system of linear equations. This is obviously the case since the solution could be computed using the Lagrange basis as well.

∑=

==n

ij

niij

njtBbP0

),,0( )( K

Page 88: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-88Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsInterpolating with Bézier segmentsThe system for interpolating the Points P0,…,Pr using a Bézier segment is given by:

Example:

Chordal parameterization (i.e. choosing the parameter intervals based on the Euclidean distance between the points): [a,b]=[0,8.13]; t0=0; t1=1.42; t2=3.66; t3=8.13

),,0( )()(0

riPtBbtXii

rj

r

jji

K=≡= ∑=

⎟⎟⎠

⎞⎜⎜⎝

⎛=⎟⎟

⎞⎜⎜⎝

⎛=⎟⎟

⎞⎜⎜⎝

⎛=⎟⎟

⎞⎜⎜⎝

⎛=

66

24

12

21

3210PPPP

Page 89: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-89Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsInterpolating condition

Plugging in the definition of a Bézier segment:

⎟⎟⎠

⎞⎜⎜⎝

⎛==⎟⎟

⎞⎜⎜⎝

⎛==

⎟⎟⎠

⎞⎜⎜⎝

⎛==⎟⎟

⎞⎜⎜⎝

⎛==

66

)13.8()(24

)66.3()(

12

)42.1()(21

)0()(

32

10

XtXXtX

XtXXtX

33

3

0

33

0

33

00

33

0

)0(21

)66.3(24

)42.1(12

)0(21

bBbBb

BbbBb

ii

iii

i

ii

iii

i

==⎟⎟⎠

⎞⎜⎜⎝

⎛=⎟⎟

⎞⎜⎜⎝

=⎟⎟⎠

⎞⎜⎜⎝

⎛==⎟⎟

⎞⎜⎜⎝

∑∑

∑∑

==

==

Page 90: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-90Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsThis then results in the following system of linear equations:

⎟⎟⎠

⎞⎜⎜⎝

⎛=⎟⎟

⎞⎜⎜⎝

⎛−

=

=+

−=+

=+

=+

27.586.6

51.15.2

12.133.041.0

18.007.036.0

29.333.041.0

38.107.036.0

21

21

21

21

21

bb

bb

bb

bb

bb

yy

yy

xx

xx

and solution the with

Page 91: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-91Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsSpline curvesEspecially when using polynomials of higher degree for interpolation strong oscillating effects are the result. To control the waviness and to minimize the oscillating artifacts curves are often pieced together using several segments. These segments are then described by polynomials of lower degree (mostly three or five). The segments are usually defined in such a way that the transition between segments is “smooth”. Often, the segments are defined so that they connect two points that are to be interpolated to fulfill the interpolation condition X(t) = pi.

Page 92: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-92Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsExample:

Page 93: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-93Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsDefinition: Ck continuityA function f(t) is Ck continuous (k≥0) if the function itself and the first k derivatives are continuous. Ck[t0,tn] is the set of Ck continuous functions on the interval [t0,tn].

Definition: SplineLet τ={t0,t1,…,tn} be a monotonic vector composed of nodes ti<ti+1. A function S is called spline of degree k-1(of order k) if:

– S is a polynomial of degree k-1 in each of the intervals [ti,ti+1]– S is Ck-2 continuous on [t0,tn]

Page 94: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-94Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsComments:

1) The spline S is called interpolating spline if S(ti)=pifor a given set of points pi.

2) The interpolating spline is generally not uniquely defined. There are k-2 additional degrees of freedom, i.e. further boundary conditions are required.For cubic splines (k=4) often the natural boundary conditions S’’(t0) = 0 and S’’(tn) = 0 are chosen.If the two nodes t0 and tn are associated with the same points, i.e. p0 = pn, then a closed spline is the result (without additional boundary conditions).

Page 95: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-95Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsCubic splinesInstead of requiring a certain type of interpolating polynomials, e.g. a polynomial of a certain degree, we can demand properties, for example, a very smooth curve:Therefore, we require that

and use the boundary conditions

minimal is ∫ ′′nt

t

dttg0

2)(

nnjj ptgptgnjptg ′=′′=′== )()(),,0()( 00 and , , K

Page 96: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-96Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsTheorem: minimum norm property

Among all functions which fulfill the previous

boundary conditions, the cubic spline is the function with

the smallest value of . This is a well known

fact from calculus of variations [de Boor, 1966].

There are different ways for using the additional degrees

of freedom. The most common ones are:

∫ ′′nt

t

dttg0

2)(

],[ 02

nttCg∈

splineperiodic spline natural and

→′′=′′′=′=→=′′=′′

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

000

0

nnn

n

tStStStStStStStS

Page 97: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-97Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsIn order to better understand the algorithm for spline curves, we first start with computing the coefficients ai, bi, ci, and di of a natural cubic spline:

S(t) = Si(t) = ai+bi(t-ti)+ci(t-ti)2+di(t-ti)3

for t∈[ti,ti+1]; i=0,...,n-1This results in the following conditions for the polynomials (segments) Si:

Si(t) = pi i=0,...,nSi(ti) = Si-1(ti)Si´(ti) = Si-1´(ti) i=1,...,n-1Si´´(ti) = Si-1´´(ti)

Page 98: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-98Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsThis means for the coeffcients of the individual segments:

ai = pi i=0,...,nai = ai-1+bi-1(ti-ti-1)+ci-1(ti-ti-1)2+di-1(ti-ti-1)3 i=1,..,nbi = bi-1+2ci-1(ti-ti-1)+3di-1(ti-ti-1)2 i=1,...,n-1ci = ci-1+3di-1(ti-ti-1)

Page 99: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-99Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsBy defining Δi:=ti+1-ti we get the following after a few transformations:

1,,0 )2(3

)(1

1,,0 )(31

1,,1 )(3)(3

)())(2()(

11

1

11

1

1111

−=+Δ

−−Δ

=

−=−Δ

=

−=−Δ

−−Δ

=

Δ+Δ+Δ+Δ

++

+

−−

+

+−−−

niccaab

niccd

niaaaa

ccc

iii

iii

i

iii

i

iii

iii

iiiiiii

K

K

K

Page 100: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-100Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsSince ai = pi, the coefficients ai are well known. Hence, we have to solve a system of linear equations with n-1 equations and n+1 unknown variables ci (i=0,...,n).For a natural cubic spline we use S´´(t0) = S´´(tn) = 0 which results in c0 = cn = 0.

In summary, we can use this criteria to formulate an algorithm:

Page 101: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-101Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsAlgorithm for a natural cubic splineLet ti (i=0,...,n) be a set of nodes with t0<t1<...<tn and p0,...,pn a set of function values that are to be interpolated. We then look for the natural cubic spline S with the following representation:

Si(t) = ai+bi(t-ti)+ci(t-ti)2+di(t-ti)3

for t∈[ti,ti+1]; i=0,...,n-1We now need to describe an algorithm that computes the coefficients ai, bi, ci, and di.

Page 102: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-102Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsAlgorithm for a natural cubic spline (continued)

1,,0 )2(3

)(1

1,,0 )(31

)for systemequation (linear

1,,1 )(3)(3

)())(2()(0

11

1

11

1

1111

0

−=+Δ

−−Δ

=

−=−Δ

=

−=−Δ

−−Δ

=

Δ+Δ+Δ+Δ==

=

++

+

−−

+

+−−−

niccaab

niccd

c

niaaaa

cccccpa

iii

iii

i

iii

i

i

iii

iii

iiiiiii

n

ii

K

K

K

Page 103: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-103Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsComments:1) The previous system of linear equations can also be

expressed in matrix form Ac = b:

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

Δ−

−Δ−

Δ−

−Δ−

⋅=⎟⎟⎟

⎜⎜⎜

⎛=

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

Δ+ΔΔΔΔ

ΔΔ+ΔΔΔΔ+Δ

=

−−

−−

−−−

2

21

1

1

0

01

1

12

1

1

122

22

2211

110

3

)(200

0)(20)(2

n

nn

n

nnn

nnn

n

aaaa

aaaa

bc

cc

A

MM

MM

OO

O

LL

Page 104: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-104Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations2) The matrix A is tri-diagonal, symmetric, diagonal-

dominant, positive definite, and also has positive elements. Hence, A is regular und there is a unique solution for the system of linear equations. For solving the system of linear equations the LU decomposition for tridiagonal matrices is appropriate due to its complexity of O(n).

3) In case of a periodic cubic spline the additional boundary conditions is no longer necessary since the transistional conditions are already sufficient.

Page 105: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-105Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsAlgorithm for a peridodic cubic splineIf the nodes t0 and tn are identified, i.e. p0 = pn then the interpolating curve is closed and has a C2 continuous transition at t0 (or tn, respectively). In this case, the matrix describing the system of linear equations changes to:

⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜

Δ+ΔΔΔΔ

ΔΔΔ+ΔΔ

ΔΔΔ+Δ

=

−−

−)(20

0

0)(20)(2

0110

1

2

2211

0110

nn

n

A

L

OOM

MOOM

L

L

Page 106: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-106Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsThis matrix A is cyclic tri-diagonal, symmetric, diagonal-dominant, positive definite, and has only positive elements, i.e. A is well-conditioned. The system can again be solved with a complexity of O(n).Compared to the system for natural cubic splines, the matrix A has an additional row and an additional column due to the fact that there are n transitions between segments compared to n-1 in the previous case. In addition, there is an additional entry in the upper right and lower left corner of the matrix A because of the cyclic band-like structure.

Page 107: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-107Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsSince splines are often applied in CAD applications for modeling of 2-D or 3-D curves, we need the notion of vector-valued and parametric splines.Definition: Let Δ={t0,…,tn}, a=t0<t1<…<tn=b a set of nodes subdividing the interval [a,b]⊂IR. Then, the mapping X:[a,b]→IR3 is called parametric spline of degree k-1 (order k) if the components (segments) of the spline are of degree k-1.Particularly, the individual components xi are Ck-2

continuous, i.e. xi∈Ck-2[a,b] (i=0,…,n) which we abbreviate as X∈Ck-2[a,b].

Page 108: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-108Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsA common criterion for local smoothness of three-dimensional curves, which are composed of concatenated segments is defined using derivatives:Definition: If two parametric curves X:[t0,t1]→IR3 and Y:[s0,s1]→IR3 with X∈Cm[t0,t1] and Y∈Cm[s0,s1] and if both curves have the point X(t1)=Y(s0) in common we call the transition between the two segments Ck if:

For all r with 1≤r≤k.(If none of the derivatives are equal we call the transition C0)

)()( 01 sYdsdtX

dtd

r

r

r

r

=

Page 109: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-109Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsAlgorithm for parametric cubic curvesLet pi=(xi,yi,zi), i=0,…,n a set of 3-D points. We are then

looking for an interpolating parametric cubic spline.There are basically three steps for finding the

interpolating curve:Step 1: parameterization: Define the parameter values

(nodes) ti (i=0,…,n) corresponding to the points that are to be interpolated.

Step 2: choose boundary conditionsStep 3: Compute the spline curves for each component

Sx, Sy, Sz individually, such that Sx(ti)=xi, Sy(ti)=yi, Sz(ti)=ziusing the previously defined spline algorithm.

Page 110: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-110Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsSx(t)=Sx,i(t)=ax,i+bx,i(t-ti)+cx,i(t-ti)2+dx,i(t-ti)3

Sy(t)=Sy,i(t)=ay,i+by,i(t-ti)+cy,i(t-ti)2+dy,i(t-ti)3

Sz(t)=Sz,i(t)=az,i+bz,i(t-ti)+cz,i(t-ti)2+dz,i(t-ti)3

t∈[ti,ti+1], i=0,…,nComments:For closed parametric curves, periodic splines can be used, if the curve is supposed to be smooth at every point. If there are cusps (C0 transitions, e.g. the cross section of a wing of an airplane) then natural splines can be used with the cusp as start and end point.

Page 111: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-111Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsParameterizationThe choice of parameterization has great influence on the shape of the curve and therefore on the quality of the resulting curve (and surface).

Interpolation problem with different parameterizations

Page 112: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-112Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsParameterizationsThe effect of the chosen parameterization can be illustrated using the following analogon:Interpret the parameter t as the time which determines how long it takes for a point X to walk along the curve X(t).

We now introduce a few different parameterizations. Therefore, we assume that a curve interpolates a set of n+1 points on the parameter interval [a,b].

Page 113: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-113Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsEquidistant parameterizationThe equidistant parameterization assigns the same amount of time to each segment connecting the points (pi,pi+1).

If the distances between consecutive points differs a lot, then the point X has to walk along the curve X(t) at different speeds. For example, if a large distance between two points is followed by a short distance then the point X has to slow down which results in an “overshooting” effect.

niiatn

abt i ,...,0 ; ; =+=−

Page 114: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-114Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsChordal parameterizationThe parameterization should reflect the “structure of the point set”. This can be achieved by using the chordalparameterization:

The parameter intervals are chosen proportional to the distances between two consecutive points and then normalized using a constant factor s (e.g. s if often set to the overall length of the polygon defined by the set of points that are to be interpolated)

sPP

ttt iiiii

−=−=Δ +

+1

1

Page 115: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-115Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsCentripetal parameterizationAnother possibility for choosing a parameterization, which reflects the structure of the data, is the so called centripetal parameterization [Lee 1975]:

Here, the centripetal acceleration is approximately minimized. You can also combine the different types of parameterizations. A parameterization which not only considers distances but also takes the angular changes of the interpolated points into account was developed by T. Foley (see [Foley 1989])

sPP

t iii

−=Δ +1

Page 116: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-116Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsFoley parameterization

As distance function we can use the Euclidian metric of the affine-invariant Nielson-Metric.

Pi-1

φiPi

di

Pi+1

⎟⎠⎞

⎜⎝⎛ −=

⎟⎟⎠

⎞⎜⎜⎝

+⋅

⋅++⋅

⋅+=Δ+

++

2,minˆ where

ˆ5.1

ˆ5.11

1

11

1

1

πφπφ

φφ

ii

ii

ii

ii

iiii dd

ddd

ddt

Page 117: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-117Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsNielson metric

( )222

1

1

22

1

22

11

2

2

2

; )y-( )x-(1

; )y-(1 ; )x-(1

; 1y ; 1xwith

),(),(),(

∑∑∑∑∑

∑∑∑∑

∑∑

∑∑

∑∑

−=Δ⋅=

==

==

⎟⎟⎟⎟

⎜⎜⎜⎜

ΔΔ−

ΔΔ⋅=

=

==

==

xyyxyxn

xy

yn

yxn

x

yn

xn

yxxxy

xyy

yxyx

n

iii

n

ii

n

ii

n

ii

n

ii

N

Page 118: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-118Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsThe Nielson metric first scales the set of points in such a way that the variance in all directions is unified (see also Principal Component Analysis). The distances are derived from the scaled arrangement of the points. This metric allows for a complete independence from coordinate systems and scaling (i.e. it is affine invariant).

The effects of different parameterizations will be illustrated using the following figures which show interpolation of the same set of points with different parameterizations:

Page 119: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-119Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

Page 120: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-120Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

Page 121: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-121Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsParameter transformationThe parameterization of the interpolating points has great influence on the overall shape of the resulting curve. However, it is possible to change the parameterization afterwards without changing the shape of the curve.Definition:Let X(t) be a curve and φ(t) a bijective and continuous function. Then Y(t)=X(φ(t)) also defines a curve which results from X after parameter transformation.If both φ and φ-1 are continuous differentiable we call φ a C1 parameter transformation.

Page 122: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-122Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsExample: The length of an arc is

A curve can then be re-parameterized in such a way that and t represents the arc length of the curve.

dtdXXdttXttL

t

t

== ∫ && , )(),(1

0

10

1)( =tX&

Page 123: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-123Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsBézier splinesInstead of calculating each segment by solving a system of linear equations we can also define the segments of a spline using Bézier segments. For example for a cubic spline, each segment is defined by four Bézier points. In order to achieve a smooth spline the Bézier points should be chosen in such a way that the transition between segments fulfills the continuity criterion, i.e. for a cubic spline the resulting curve should be C2 continuous.

Page 124: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-124Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsBézier splinesBézier segments have the nice property that the derivatives can be computed easily from the locations of the Bézier points (control points). This property can be used to define a C2 continuous cubic spline:Let t0,…,tn; t0<t1<…<tn be a set of nodes and p0,…,pn the points that we want to interpolate. Then, we can use the following equation to define the Bézier segments of a Bézier spline of degree m :

∑= +

+⋅ ⎟⎟⎠

⎞⎜⎜⎝

⎛−−

=m

l ii

imllimi tt

ttBbtS0 1

)(

Page 125: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-125Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsNow, we have to define the Bézier points in such a way that the interpolation condition is fulfilled and the transition between segments is smooth.From the interpolation condition and the fact that each Bézier segment interpolates the end points of the control polygon we get: bm·i = pi (i=0,…,n).We can also compute the derivatives using the formulas we derived before:

Page 126: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-126Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

)2()1()(''

)()('

)2()1()(''

)()('

)1(1)1(2)1(21

11

)1(1)1(1

11

2)1(1)1()1(21

1)1()1(1

1

++++++

++

++++

++

−+−+++

−+++

+

+−Δ−

=

−Δ

=

+−Δ−

=

−Δ

=

−=Δ

imimimi

ii

imimi

ii

imimimi

ii

imimi

ii

iii

bbbmmtS

bbmtS

bbbmmtS

bbmtS

tt

Page 127: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-127Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsFor a C1 transition we need that S’i(ti+1)=S’i+1(ti+1), i.e.:

)()( )1(1)1(1

1)1()1( ++++

−++ −Δ

=−Δ imim

iimim

i

bbmbbm

bm(i+1)-1 bm(i+1) bm(i+1)+1

Δi : Δi+1

Page 128: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-128Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsFor a C2 transition we need that S’’i(ti+1)=S’’i+1(ti+1), i.e.:

bm(i+1)-1 bm(i+1) bm(i+1)+1

Δi : Δi+1

)2()1()2()1()1(1)1(2)1(2

12)1(1)1()1(2 +++++

+−+−++ +−

Δ−

=+−Δ−

imimimi

imimimi

bbbmmbbbmm

bm(i+1)-2

bm(i+1)+2

Δi :

Δi+1

Δ i: Δ i+1

Page 129: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-129Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsHow can we solve the interpolation problem with, for example, a cubic Bézier spline?Introduce additional points (de Boor points):

b3(i+1)-1 b3(i+1) b3(i+1)+1

Δi : Δi+1

b3(i+1)-2

b3(i+1)+2

Δi :

Δi+1

Δ i: Δ i+1

di+1

Page 130: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-130Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsFrom the previous cartoon we can derive the following three equations for an interpolating cubic Bézier spline:

)( 3)

)( 2)

)( 1)

1)1(311

1)1(32)1(3

2)1(31)1(31

1)1(31

1)1(3)1(31

)1(31)1(3

++++

++++

−+−++

−++

−+++

+++

+−ΔΔ

+=

−ΔΔ

+=

−ΔΔ

+=

iii

iii

iii

iii

iii

iii

bdbb

bbbd

bbbb

Page 131: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-131Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsIf we take a closer look at the newly introduced points we can see that there is a straight connection between two Bézier points and these de Boor points:

This gives us:

b3(i+1)-2 b3(i+1)-1 di+1

Δi-1 : Δi : Δi+1

di

1111)1(311

1112)1(311

)()(

)()(

+−+−+−+

+−+−+−+

Δ+Δ+Δ=Δ+Δ+Δ

Δ+Δ+Δ=Δ+Δ+Δ

iiiiiiiii

iiiiiiiii

ddb

ddb

similarily and

Page 132: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-132Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

. that fact the used weonsubstituti the For:Note

:result previous the withsubstitute can we

that fact the to Due

1)1(32)2(3

2121

1111)1(3111

1)1(31)1(31)1(31

))((

))(())((

)(

++−+

++++

+−++++−+

++−++++

=

Δ+Δ+ΔΔ

+Δ+Δ+ΔΔ=Δ+ΔΔ+Δ+Δ

Δ+Δ=Δ+Δ

ii

iiiiii

iiiiiiiiiiii

iiiiiii

bb

dd

ddb

bbb

Page 133: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-133Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsOverall, we get the following system of linear equations:

Note: set Δ-1 = Δn = 0)1,...,1(

)()()2,...,0(

))((

))(())(()2,...,0(

)()(

1111)1(311

2121

1111)1(3111

1112)1(311

−=

Δ+Δ+Δ=Δ+Δ+Δ−=

Δ+Δ+ΔΔ

+Δ+Δ+ΔΔ=Δ+ΔΔ+Δ+Δ−=

Δ+Δ+Δ=Δ+Δ+Δ

+−+−+−+

++++

+−++++−+

+−+−+−+

ni

ddbni

dd

ddbni

ddb

iiiiiiiii

iiiiii

iiiiiiiiiiii

iiiiiiiii

Page 134: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-134Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsThen, we can derive the three steps for computing an interpolating cubic Bézier spline:

1) Choose the boundary condition, i.e. the Bézier points b1 and bn·m-1.

2) Determine the location of the de Boor points based on a system of linear equations as previously shown.

3) Using the previous equations 1) and 3) the missing Bézier points can be calculated.

Page 135: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-135Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsSpecial case:Cubic Bézier spline with equidistant parameterization, such that Δi = 1.In this case, the system of linear equations reduces to:

The matrix of this system is tri-diagonal; hence, it can be solved efficiently using the LU decomposition.

)1,...,1(23

)2,...,0(46

)2,...,0(23

11)1(3

21)1(3

12)1(3

−=+=

−=++=

−=+=

+−+

+++

+−+

niddb

nidddb

niddb

iii

iiiii

iii

Page 136: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-136Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsExample:Interpolation of three points p0, p1, and p2 using a cubic Bézier spline with two segments (Δ1=Δ2=1), such that the Bézier spline has the given points as end points.(i) b0 = p0, b3 = p1, b6 = p2

b0

b1

b2b3 b4

b5

b6p0

p1

p2

Page 137: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-137Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations(ii) Pick the additional degrees of freedom, i.e. b1 and b5

(iii) Determine the de Boor points d0, d1, and d2 using the system of linear equations:3b1 = 2d0 + d1

6b3 = d0 + 4d1 + d2

3b5 = d1 + 2d2

(iv) Using previous equations 1) and 3), calculate the missing Bézier points b2 and b4.

Page 138: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-138Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsComment:The choice of the degrees of freedom, i.e. the derivatives at the two end points of the curve, influences the curve globally.

Page 139: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-139Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsB-splinesMotivation:We would like a spline curve that has two advantages over Bézier splines:

1) Control points should have only local influence on the resulting curve

2) A continuous transition should be guarantied automatically without having to place the control points accordingly.

Idea: find a new set of basis functions.

Page 140: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-140Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsFor a control polygon described by points d0,…,dn, define blending functions as new basis functions. First, we need to define a knot vector:

(u0, ..,un+m); ui≤ui+1

Then, the new basis functions are recursively defined as:

)()()(

)(

1,11

1,1

,

1

01, { 1

uNuuuuuN

uuuuuN

uN

mkkmk

mkmk

kmk

kmk

uuu

k

kk

−+++

+−

−+

≤≤

−−

+−

−=

=+ if

otherwise

Page 141: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-141Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

Page 142: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-142Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsBased on these blending functions a B-spline curve of degree m-1 (order m) with control points d0,…,dn,, where n>m is defined as:

110

,)()(

+−=

≤≤= ∑ nm

n

imii

uuuuNduX

Page 143: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-143Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

Page 144: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-144Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsComments:1) The knot vector can have individual knots with

multiplicity greater than one, i.e. the same value can appear more than once.

2) The resulting B-spline has degree m-1 is Cm-2

continuous. At knots with multiplicity M this reduces to Cm-1-M continuity.

3) If n=m-1 and a knot vector with multiplicity m at both ends these blending functions resemble the Bernstein polynomials.

Page 145: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-145Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations4) Each section of the B-spline (between two successive

knot values) is influenced by m control points.5) Any control point can affect the shape of at most m

curve sections.6) For any um-1≤ u≤un+1, the sum of all blending functions

equal to one: ∑Bk,m(u)=1. Hence, B-splines fulfill the convex hull property just like Bézier splines.

7) The B-spline is called uniform if the knot values are spaced uniformly, i.e. equidistant (except multiplicities at both ends of the know vector). Otherwise we speak of a nonuniform B-spline.

Page 146: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-146Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsWhy multiple knot values?As noted before, the multiplicity of a knot value reduces the continuity accordingly. Hence, it allows you to create design features, such as cusps.In addition, often times multiplicity m is desired at both ends of the knot vector. To see why, we should take a closer look at the resulting blending functions:

Page 147: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-147Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

Page 148: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-148Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsEffect of multiplicity of m at both ends of knot vectorSince the blending functions at the ends of the interval equals to one, the resulting B-spline curve interpolates the two end points of the control polygon. Otherwise the B-spline would stop before reaching the end points of the control polygon.This feature is usually only desired for “open” B-splines. With periodic B-splines, mostly this multiplicity at the end of the knot vector is not used to achieve Cm-2 continuity at the end points of the control polygon

Page 149: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-149Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsKnot insertionSometimes it is useful to be able to insert an additional knot into the knot vector without changing the shape of the curve.First, we have to identify in which segment the new knot tis located in, i.e. t∈[uk,uk+1). This means that the point X(t)lies in the convex hull defined by the points dk,…,dk-m. Consequently, we have to find new control points that replace dk-1,…,dk-m+1 without changing the shape of the curve.

Page 150: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-150Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline Representations

The new points can be computed easily using the formula:

kimkuu

uta

dadaq

imi

ii

iiiii

≤≤+−−

−=

+−=

−+

1

)1(

1

1

for where

Note: Pi = di

Page 151: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-151Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsThe new B-spline then has the knot vector u0,…,uk,t,uk+1,…,un+m and the control polygon consists of the points d0,…,dk-m,qk-m+1,…,qk,dk,…,dn resulting in the following replacement scheme:

Note: p = m; pi = di

Page 152: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-152Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsExample:Let (u0,…,u11) be a knot vector defined as (0, 0, 0, 0, 0.2, 0.4, 0.6, 0.8, 1, 1, 1, 1). We would like to insert an additional knot at t=0.5 which lies in the interval [u5,u6). Hence, the affected control points are d5, d4, d3, and d2. Then, the new control points are determined:

65

06.005.0

21

2.08.02.05.0

61

4.014.05.0

36

33

47

44

58

55

=−−

=−−

=

=−−

=−−

=

=−−

=−−

=

uuuta

uuuta

uuuta

Page 153: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-153Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsAnd the new control points are:

The new control polygon consist of the points d0, d1, d2, q3, q4, q5, d5, d6, and d7 with knot vector (0, 0, 0, 0, 0.2, 0.4, 0.5, 0.6, 0.8, 1, 1, 1, 1).

323

434

545

65

651

21

211

61

611

ddq

ddq

ddq

+⎟⎠⎞

⎜⎝⎛ −=

+⎟⎠⎞

⎜⎝⎛ −=

+⎟⎠⎞

⎜⎝⎛ −=

Page 154: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-154Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsFor example, the B-spline could look like this before insertion of the new knot:

Page 155: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-155Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsAfter inserting the new knot:

Page 156: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-156Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsDisplaying B-spline curvesUsually, B-splines curves are approximated with line segments for display purposes. Obviously, the number of points that are used for the approximation has great influence on the quality of the resulting visualization of the curve. We could use the control polygon as an approximation; however, this is often times too coarse. Sub-division techniques can lead to better results. Therefore, the control polygon is sub-divided by adding additional points in order to get a better representation. Fortunately, we can exploit some properties of B-splines for sub-dividing the control polygon.

Page 157: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-157Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsDisplaying B-spline curves (continued)First, we convert the B-spline into a Bézier spline. This can be achieved by inserting knots so that every knot has multiplicity m-1. Then, the blending functions of the B-spline resemble the Bernstein polynomials so that the control polygon has the Bézier points as vertices. This already represents a finer approximation since several points were added to the control polygon. If a finer representation is necessary, we can further add points by using the de Casteljau algorithm as we saw earlier.

Page 158: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-158Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsDisplaying B-splines with OpenGLOpenGL already provides a methodology for rendering B-splines:

GLUnurbsObj *curveName;

curveName = gluNewNurbsRenderer ();

gluBeginCurve (curveName);

gluNurbsCurve (curveName, nknots, *knotvector, stride, *controlPoints, order, GL_MAP1_VERTEX_3);

gluEndCurve ();

Page 159: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-159Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsComment:OpenGL automatically determines the necessary discretization of the B-spline, i.e. the number of line segments needed for the approximation. The approximation depends on the viewing distance. This means the closer the camera moves to the B-spline the more points are used and vice versa. Caution: if you use display lists to generate B-splines OpenGL cannot regenerate the approximation since it is already stored in the display list. Therefore, the approximation is no longer adapted automatically.

Page 160: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-160Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsDemonstrationBehavior of a uniform B-spline curvehttp://www.cs.biu.ac.il/~zultia/applets/CAGD/UBS%20draw2/UBsDraw.htmhttp://www.ibiblio.org/e-notes/Splines/Basis.htm

Page 161: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-161Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsRational B-splinesRegular B-splines cannot be used to exactly represent conic sections. This includes circle, ellipse, and parabola. Since these types of curves are common in designs, we would like to be able to model those type of curves exactly, i.e. without any approximation errors. Therefore, we define rational B-splines similar to B-splines:

11

0,

0,

)(

)()(

+−

=

= ≤≤=

∑nmn

imii

n

imiii

uuuuN

uNduX

ω

ω

Page 162: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-162Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsComments:1) The ωi are weights that can be used to manipulate the

resulting curve. For ωi =1 we get a regular B-spline.2) By increasing the weight ωi we can pull the curve

towards the control point di. Decreasing the weight pushes the curve away from di.

3) Using a nonuniform knot vector results in the so called NURBS curve (nonuniform rational B-spline).

Page 163: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-163Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsConic sectionsIf we define a cubic rational B-spline as

We can obtain various conic sections with the following values for the parameter r:

r > ½: hyperbolic sectionr = ½: parabolic sectionr < ½: ellipse sectionr = 0: straight-line segment

)()(1

)(

)()(1

)()(

3,23,13,0

3,223,113,00

uNuNr

ruN

uNduNdr

ruNduX

+−

+

+−

+=

Page 164: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-164Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsDisplaying NURBS with OpenGLOpenGL already provides a methodology for rendering NURBS:

GLUnurbsObj *curveName;

curveName = gluNewNurbsRenderer ();

gluBeginCurve (curveName);

gluNurbsCurve (curveName, nknots, *knotvector, stride, *controlPoints, order, GL_MAP1_VERTEX_4);

gluEndCurve ();

The vertices have the weights as their fourth component.

Page 165: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-165Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsOften surfaces based on the tensor product are used. Tensor product surfaces are parametric surfaces which are defined by two one-dimensional curve representa-tions.

parametric curve parametric surface

Page 166: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-166Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface Representations

{ } { }

surface. the of tscoefficien shaped-matrix the are where

with

:surface product tensor a derive can we

and functions basis of sets two with

tionsrepresenta curvearbitrary two From

ji

ij

m

iiijj

n

jjj

m

i

n

jjiij

nj

mi

n

jjj

m

iii

c

scsctsc

tsctsf

tbthsasg

∑∑

∑∑

∑∑

==

= =

==

==

==

=

==

00

0 0

00

00

)()()()(

)()(),(

)()()()(

φψ

ψφ

ψφ

ψφ

Page 167: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-167Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsTo construct a 3-D surface we often base the surfaces on several curves. First, we evaluate the curves with respect to the parameter s:

The resulting coefficients cj(s) are then used to determine a curve on the surface using the second parameter t:

Of course, we can also switch the parameters s and t and evaluate using the parameter t first.

∑=

=m

iiijj scc

0)(φ

∑=

=n

jii tsctsf

0)()(),( ψ

Page 168: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-168Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsLagrange surfacesAn interpolating surface based on a given set of coefficients cij can be constructed using the tensor product of the Lagrange polynomials:

basis. Lagrange the ofproperty inginterpolat the from results This surface. the of part are

and

curves of set two the Here,

∑∑

∑∑

==

= =

==

=

n

j

njiji

m

i

miijj

m

i

n

j

nj

miij

tLctcsLcsc

tLsLctsf

00

0 0

)()()()(

)()(),(

Page 169: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-169Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsLagrange surfaceExample (m=3, n=2):

=

=

=

=

m

i

miijj

n

j

njiji

sLcsc

tLctc

0

0

)()(

)()(

∑∑==

==m

i

mii

n

j

njj sLctLctsf

00 )()(),(

Page 170: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-170Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsHermite surfacesUsing the cubic Hermite polynomials as basis polynomials, we can interpolate the points and first derivates of the surface at two nodes:

)()()()()( 1111000 tHftHftHftHftf o ′++′+=

0

1

0 1

H 1H 0

H 1

H 0

Page 171: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-171Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsHermite surfacesIf the surface is defined using the tensor product of cubic Hermite polynomials, the resulting surface then interpolates the interpolation points at the corners, its partial derivatives . vectors twist and f,

2

tsf

tsf

∂∂∂

∂∂

∂∂

Page 172: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-172Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsHermite-Lagrange tensor productIf only the derivatives in one direction are known, i.e. of one set of curves, a tensor product of Hermite and Lagrange polynomials can be used.

The interpolation of derivatives and maybe also the twist vectors is particularly useful if several patches are supposed to build a single smooth surface.

Page 173: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-173Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsBasis transformationSimilar to polynomial curves, we can transform the polynomial representation from one basis to another. This is especially useful if the data is supposed to be exchanged between different software systems.Special basis polynomials, such as Bernstein polynomials or B-splines, allow a closer correlation between coefficients (control points) and the surface geometry. Hence, these basis polynomials are more versatile.

Page 174: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-174Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsBézier tensor productThe tensor product of two Bézier curves results in a Bézier surface representation. Similar to the previous approaches, we define a set of curves Xj defined by the control points bij:

This set of curves then gives us control points bj=Xj(s)which we can use to define a Bézier curve with a second parameter t:

),...,0()()( njsBbsXm

miijj ==∑

=

0i

∑∑∑= ==

==n

j

m

i

nj

miij

n

j

njj tBsBbtBbtsX

0 00)()()(),(

Page 175: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-175Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsExample (m=3, n=2):

b00

b30

b20

X0(s)b10

b01

b21 b31

X1(s)b11

b02

b22

X2(s)

b12

Page 176: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-176Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsExample (m=3, n=2):

b0=X0(s)

b1=X1(s)

b2=X2(s)

X(s,t)

Boundary curve

No surface curve

(only determines control points)

Page 177: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-177Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsBézier tensor productWe can also construct a set of curves Xi(t) first, and then compute the control points for the curve parameterized by s. Only the curves at the edge of surface are curves on the surfaces. All other curves of the set are not necessarily surface curves, i.e. part of the surface.For m=n, the resulting surface is called bilinear, biquadratic, or bicubic, etc. The monomial basis of a bilinear surface consists of the polynomials {1, s, t, st}. For the quadratic case the monomial basis is {1, s, t, st, s2, t2, st2, s2t2}.

Page 178: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-178Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsBézier tensor productIncreasing the degree of the surface or subdividing the surface (along one direction) can be achieved by applying the respective algorithm to the row or column of the coefficient matrix.For evaluating the Bézier tensor product efficiently, the de Casteljau algorithm can be applied once for each parameter. It does not make any difference if the algorithm is applied first to parameter t or s.

Page 179: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-179Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsDe Casteljau algorithm for surfaces

Example (m=n=2):

mn

klji

klij

lkij

klji

klij

lkij

ijij

btsX

tbbtb

sbbsb

bb

00

1,1,

,1,1

00

),(

)1(

)1(

=

+−=

+−=

=

++

++

mnb00 get weuntil orderArbitrary

bij00 bij

10 bij11 bij

21 ),(22 tsXbij =

Page 180: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-180Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsThe partial derivatives

( ) ( )

. :surface

theof vector normal theneed also wetion,trianglulaingapproximatan using e.g. surface, therenderingFor

:algorithmCasteljau de theusing determined be alsocan

)()(),(

)()(),(

1,00

1,01

,100

,110

0 0,,

0 0,,

ts

ts

nmnmt

nmnms

m

i

n

jnjmiijt

m

i

n

jnjmiijs

XXXXN

bbnXbbmX

tBsBbtXtsX

tBsBbsXtsX

××

=

−=−=

′=∂∂

=

′=∂∂

=

−−−−

= =

= =

∑∑

∑∑

Page 181: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-181Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsPartial derivativesAnother option for computing the partial derivatives is to represent the derivatives as a Bézier surface on its own using the control points

tijjiij

sijjiij

Xbbnbn

Xbbmbm′−=Δ

′−=Δ

+

+

for for

)(:

)(:

1,01

,110

Δ10 bij Δ01bij

Page 182: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-182Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsFor a more generic intervall [a,b]×[c,d] we get:

ijij

ij,q

i,j,q

ijq

ij,qp

,ji,qp

ijpq

qppq

m

i

n

j

qnj

pmiij

pqpqq

q

p

p

bbΔ

bΔbΔbΔ

bΔbΔbΔc)(dq)!(n

n!a)(bp)!(m

m!A

cdctB

abasBbΔAX(s,t)

ts

=

−=

−=

−⋅

−⋅

−⋅

−=

⎟⎠⎞

⎜⎝⎛

−−

⎟⎠⎞

⎜⎝⎛

−−

⋅=∂∂

∂∂

−+

−+

= =

−−∑∑

00

101

100

11

1

0 0

11where

Page 183: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-183Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsProperties of Bézier surfaces1) The surface segment lies in the convex hull of the

defining net of control points (due to the successive convex-combinations of the de Casteljau algorithm)

2) The Bézier point bij has the greatest influence on the segment at (s,t)=(i/m, i/n) (pseudo-local control)

3) The corners of the net of control points and the corners of the Bézier segment are identical, i.e. the they are interpolated.

4) The control points on the edge of the net are the Bézier points of the edge of the Bézier segment.

Page 184: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-184Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsSurface curves of the type X(s,t0) or X(s0,t) (s0, t0 constant) are called iso-parameter lines and are polynomials of degree m or n, respectively. This is not true for diagonal surface curves X(at+b,ct+d) (a,b,c,d constant) which generally are polynomials of degree m+n.Using the de Casteljau algorithm, we can sub-divide an iso-parameter line in sub-segments. Continuing this sub-division process in both parameter direction results in a series of Bézier nets that converges towards the Bézier surface. This fact can be used, for example, for determining the intersection of two surfaces using this series as approximation.

Page 185: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-185Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsExample: bicubic Bézier surfaceSimilar to Hermite surface, the inner control points of the boundary curves ○ define the partial derivatives in the corners ●. The inner control points □ determine the twist vectors.

b00

b30

b03

b33

Page 186: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-186Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsExample (continued):

b00b10

b01b11

vector) (twist

: example for corners, the In

)(9)0,0(

)(3)0,0(

)(3)0,0(

)0,0(

00011011

2

0001

0010

bbbbts

XX

bbtXX

bbsXX

X

st

t

s

+−−=∂∂

∂=

−=∂∂

=

−=∂∂

=

Page 187: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-187Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsThe twist vectorThe twist vector Xst describes the twist of the patch, e.g. how much two parallel straight edges are rotated against each other.

Surface with zero twist Surface with constant twist

Page 188: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-188Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsSpline surfaces

Spline surfaces are composed of several patches (surface segments). At the boundaries certain conditions for a smooth and continuous transition need to be observed.

Page 189: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-189Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsSpline surfacesLet us consider two patchesa with (s,t)∈[s0,s1]×[t0,t1] andb with (s,t)∈[s0,s1]×[t0,t1].

For Ck continuity, the first k partial derivatives of a and balong the common boundary at s1 have to be equal:C0: a(s1, t) = b(s1, t), t∈[t0, t1]C1: as(s1, t) = bs(s1, t) , t∈[t0, t1]C2: ass(s1, t) = bss(s1, t) , t∈[t0, t1]

Page 190: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-190Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsSpline surfacesIf Bézier surfaces are used as patches a and b then the condition for a Ck continuous transition is identical with the conditions for the individual curves when looking at the individual cells of the Bézier net.

Page 191: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-191Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsSpline surfaces

For a C0 continuous transition it is required that am,i=b0,i(i=0,…,n).For a C1 continuous transition we get the additional condition: )(1)(1

,0,11

,1,0

iiimim bbs

aas

−Δ

=−Δ −

Page 192: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-192Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsSpline surfacesFor C2 continuity the following additional equation needs to be fulfilled:

If one patch, for example a, is given then the neighboring control points of the next patch b can be derived from these equations. The rows of the control net of the patch a can be interpreted as control polygons of a Bézier curve so that the next points of the control net can be determined accordingly.

)2(1)2(1,0,1,22

1,2,1,2

0iiiimimim bbb

saaa

s+−

Δ=+−

Δ −−

Page 193: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-193Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsSpline surfacesThe new control points can be found, for example, by evaluating using the de Casteljau algorithm at s2, i.e. outside of the interval Δs0. In analogy to sub-dividing a Bézier curve we can extend it. For a Ck continuous transition we need the new points b0,i,…,bk,i.

Δs 0: Δ

s 1

Page 194: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-194Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsExample:Determination of the eight neighboring points to achieve C2 continuity of a bicubic Bézier patch.

Step 1: rows Step 2: columns

Page 195: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-195Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsInterpolating using Bézier surfacesLet pij be a set of given points that are to be interpolated at the parameter values (si, tj). (the parameterization is given by two vectors and not an arbitrary matrix of nodes.)In order to determine an interpolating Bézier surface

we can use the algorithm for curves.

∑∑= =

==m

i

n

jijji

nj

miij ptsftBsBbtsf

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

Page 196: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-196Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsInterpolating using Bézier surfaces

Bicubic interpolating surface

Page 197: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-197Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsInterpolating using Bézier surfacesFirst, we generate a set of interpolating curves

The inner Bézier points are determined using a system of linear equations (which uses the same matrix for each j).

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

njpsasBasa ijij

m

i

miijj ===∑

=

,

aj(s)

a0,j = p0,j

am,j = pm,ja1,j

a2,j

p2,j

p1,j

Page 198: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-198Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsInterpolating using Bézier surfacesThen, the points aij are interpolated row-wise in order to determine the Bézier points bij of the surface:

The surface described by the Bézier points bij then interpolates the points pij.Proof:

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

mjatbtBbtb ijji

n

j

njiji ===∑

=

,

∑ ∑

=

= =

===

⎟⎟⎠

⎞⎜⎜⎝

⎛=

m

iklklk

miil

m

i

mi

n

jl

njijlk

psasBa

sBtBbtsf

0

0 0

)()(

)()(),(

Page 199: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-199Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsTrimmingIn some cases, it is necessary to bound the area on which a free-form surface is defined, e.g. by choosing a boundary curve (trimming curve) in order to limit (trim) the surface:

Trimmed free-form surface

Page 200: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-200Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsDisplaying B-spline surfaces with OpenGLOpenGL already provides a methodology for rendering B-spline surfaces:

GLUnurbsObj *surfName;

surfName = gluNewNurbsRenderer ();

gluBeginSurface (surfName);

gluNurbsSurface (surfName, nuknots, *uknotvector, nvknots, *vknotvector, ustride, vstride, controlPoints, udegree, vdegree, GL_MAP2_VERTEX_3);

gluEndSurface (surfName);

Page 201: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-201Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.6 Spline RepresentationsTrimming a B-spline surface with OpenGLOpenGL already provides a methodology for trimming B-spline surfaces:

GLUnurbsObj *surfName;

gluBeginTrim (surfName);

gluPw1Curve (surfName, npts, *curvepts, stride, GL_MAP1_TRIM_2);

gluEndTrim (surfName);

Page 202: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-202Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsScalar fieldsInstead of using three-dimensional control points for defining a free-form surface, we can use scalar valued “points” (ordinates). The resulting one-dimensional surface function can then be visualized as a graph on top of the defining area. Surfaces that are defined in such a way are called scalar fields (in an analog way, 3-D functions can be interpreted as vector fields).One-dimensional spline surfaces are often used for representing geographical height fields (terrain models):

Page 203: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-203Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsScalar fields

Crater lake terrain model. Source: U.S. Geological Survey

Page 204: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-204Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsIso-curvesThe height curves of a scalar field f, i.e. f(x,y) constant, are called iso-curves. Iso-curves are algebraic or implicit curves, respectively.

Iso-lines of a bilinear spline surface,Lawrence Livermore National Laboratory

Page 205: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-205Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsIso-surfacesIn analogy to iso-cruves we can define iso-surfaces by using three-dimensional scalar fields. For an iso-value c, the corresponding iso-surface is defined as the set of all points with f(x,y,z)=c.Tri-variate functions (i.e. functions with three arguments, “volumes”) can be defined as tensor product. Often times, tri-linear volumes are used:

∑∑∑= = =

=l

i

m

jkj

n

kiijk uNtNsNdutsf

0 0

22

0

2 )()()(),,(

Page 206: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-206Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsIso-surfaces

Iso-surface of a three-dimensional density function,Lawrence Livermore National Laboratory

Page 207: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-207Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsDeformationDeformation, e.g. of a 2-D image, can be by displacing control points of a regular grid structure. The surface defined by the displaced control net then maps the domain onto itself: (x’,y’)=f(x,y).

Page 208: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-208Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsMorphingDeformations are used, for example, to cross-fade from one image to another one (image morphing).Let m1(x,y) and m2(x,y) be two images. We then look for a function

m(t,x,y), t∈[0,1]that fades continuously from m1 to m2 in such a way that m(0,x,y)=m1(x,y) and m(1,x,y)=m2(x,y).The simple approach, m=(1-t)·m1 + t·m2, would not consider the contours of the image properly. Therefore, it is necessary to work with deformations.

Page 209: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-209Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsMorphingFirst, a deformation f2(x,y) is defined manually which maps previously picked points within m1 onto m2. While moving the geometry, i.e. f(t,x,y)=(1-t)·(x,y)+t ·f2(x,y), the color values of the images are “blended” accordingly.

[S. Lee, et al., Image morphing using deformation techniques, 1996]

Page 210: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-210Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.7 Surface RepresentationsMorphingIn the same way, three-dimensional objects can be cross-faded, e.g. using B-spline volumes, which are called free-form deformations (FFDs).

3D Morphing, Stanford University

Page 211: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-211Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.8 Space PartitioningFor representing an object using space subdivision techniques the object space is split up into several smaller elements. For each element, we store if this specific element is covered by the object.Standard approach:

– Space is divided by a regular equidistant grid, resulting in a grid where each cell has exact identical geometry.

– In 3-D space, we get cube-shaped cells, which are called voxels (volume element).→ The name is in analogy to pixel (picture element) in 2-D

Page 212: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-212Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.8 Space PartitioningExample: volumetric image of a CT-scanned object

Page 213: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-213Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.8 Space PartitioningAdvantages:

– It can be determined very easily if a given point is part of theobject or not.

– It can be checked easily if two objects are connected or attached to each other.

– The representation of an object is unique.

Disadvantages:– There cannot be any cells that are only partly filled.– Objects can generally be represented approximately.– For a resolution of n voxels in each dimension we need n3

voxels to represent the object. Therefore, it requires a lot of memory → save space using octrees.

Page 214: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-214Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.8 Space PartitioningOctreesAn octree is a hierarchical data structure for storing an irregular, i.e. not equidistant, sub-division of a 3-D space.Idea:

– The initial element is a cube which covers the entire object space. The element can have two states: covered or uncovered.

– In case an element is partly covered, it is sub-divided into eight equally sized sub-elements.

– The coverage of each element is checked recursively until a desired resolution is achieved.

Page 215: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-215Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.8 Space PartitioningOctrees (continued)In an octree, each node (element) that is not a leaf has eight successors (sub-elements).The root of the tree represents the initial cube. For each sub-division a fixed numbering scheme is used for the sub-elements when inserting a new node as a child.Each leaf stores the state of its corresponding (sub-) cube.Each inner node represents a partly covered cube.

Page 216: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-216Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.8 Space PartitioningOctrees (continued)Example: representation of a 3-D object using an octreea) Object embedded into initial cube.b) Representation of the object using a maximal sub-

division of two.c) Corresponding octree data structure

(a) (b) (c)

Page 217: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-217Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.8 Space PartitioningOctrees (continued)Octrees can not only be used for representing 3-D objects. A very common use of octrees is the sub-division of a 3-D scene.

– Here, the individual objects are represented by standard data structures, e.g. polygons.

– The state of the cells of the octree is then extended to a data structure that stores a list of objects, e.g. polygons, which are contained by the cell.

This results in a significant performance increase for algorithms that work on the individual areas of the object space locally (e.g. ray tracing).

Page 218: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-218Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.8 Space PartitioningQuadtreesThe principle of sub-dividing the 3-D space can be generalized to an n-dimensional space.For the case n=2 we get the sub-division of a 2-D plane resulting in a quadtree, where each inner node of the tree has exactly four children.Historically, quadtrees are the older data structures. They were used initially in the late 60’s of the last century. Octrees were derived from quadtrees and used since the late 70’s, early 80’s of the last century.

Page 219: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-219Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.8 Space Partitioning

(a) (b)

Quadtrees (continued)Example: sub-division of a 2-D space using a quadtree.a) Sub-division of the 2-D space until each cell containes

maximally one object.b) Corresponding data structure.

Page 220: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-220Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.8 Space PartitioningBinary space-partitioning (BSP trees)Octrees and quadtrees both sub-divide at each level equally in each dimension, i.e. at the center.A BSP tree offers an alternative representation where an element can be sub-divided into two sub-elements at an arbitrary (hyper-)plane

– If one sub-element is defined as part of the inside while the other sub-element is defined as the outside, a convex polyhedron can be represented by using properly chosen planes limiting the volume.

– By uniting convex interior areas, arbitrary concave polyhedra with holes can be defined.

Page 221: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-221Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.8 Space PartitioningBSP trees (continued)In the realm of computer graphics, BSP trees are often used for determining the visibility of an object.Idea:

– BSP trees can – similar to octrees and quadtrees – be used for sub-dividing a 3-D scene (see next example). Here, the objects are not bound to a particular rasterization.

– The object space is to be sub-divided recursively in such a way, that each area contains at most one object.

– Using the locations of those areas relatively to the view point,the objects can be sorted according to the viewing distance (depth) easily, i.e. it can be determined which objects are completely invisible.

Page 222: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-222Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.8 Space PartitioningBSP trees (continued)Example: sub-division of a 2-D scenea) Using a quadtreeb) Using a BSP tree

(a) (b)

Page 223: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-223Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.8 Space PartitioningPrincipal Component Analysis (PCA)An ideal choice of dividing planes for a BSP tree is offered by the principal component analysis (PCA). Let us assume that a complex scene is given by a point cloud

Pi∈IR3 (i=1,…,n)(for example object centers or vertices of polygons).PCA defines an orthogonal coordinate system e1, e2, e3which orientation corresponds to the one of the point cloud.

Page 224: Three-Dimensional Object Representationsavida.cs.wright.edu/courses/CEG477/CEG477_1.pdf1 Three-Dimensional Object Representations 1.1 Overview The modeling and representation of an

1-224Department of Computer Science and Engineering

1 Three-Dimensional Object Representations

1.8 Space PartitioningPrincipal Component Analysis (continued)Now, we choose the average of all points as the center of the coordinate system:

B has the real eigenvalues λ1, λ2, λ3 and eigenvectors e1, e2, e3, i.e. λi·ei = B·ei. The eigenvectors in combination with the center c form the coordinate system we are looking for. The extent of the point cloud in direction of ei is proportional to √λi.

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

−−−

−−−−−−

=

znzynyxnx

zzyyxx

zzyyxx

cPcPcP

cPcPcPcPcPcP

AMMM

222

111

=

=

−=

−=

=

n

kkjkiij

T

n

ii

aan

b

AAn

B

Pn

c

1

1

111

1

1