Title: Surface Modelling
1Surface Modelling
2Modelling the Elegant Teapot
Many real-world objects are inherently smooth,
therefore need infinitely many points to model
it. This is not feasible for a computer with
finite storage. More often we merely approximate
the object with pieces of planes, spheres, or
other shapes that are easy to describe
mathematically. We will introduce two most common
representations for 3D surfaces polygon mesh
surfaces and parametric surfaces. We will also
discuss parametric curves since parametric
surfaces are a generalisation of the curves.
3Polygon Meshes
or
4Polygon Meshes
- The geometry can be stored as three tables a
vertex table, an edge table, and a polygon table.
Each entry in the vertex table is a list of
coordinates defining that point. Each entry in
the edge table consists of a pointer to each
endpoint of that edge. And the entries in the
polygon table define a polygon by providing
pointers to the edges that make up the polygon. - We can eliminate the edge table by letting the
polygon table reference the vertices directly,
but we can run into problems, such as drawing
some edges twice, because we don't realise that
we have visited the same set of points before, in
a different polygon. We could go even further and
eliminate the vertex table by listing all the
coordinates explicitly in the polygon table, but
this wastes space because the same points appear
in the polygon table several times.
5Representing Polygon Meshes
1). The explicit way just list 3D vertices of
each polygon in a certain order. The problems
are, firstly it represents same vertex many
times and secondly, no explicit representation
of shared edges and vertices 2). Pointer to a
vertex list store all vertices once into a
numbered list, and represent each polygon by its
vertices. It saves space (vertex only listed
once) but still has no explicit representation of
shared edges and vertices 3). Explicit
edges list all edges that belong to a polygon,
and for each edge list the vertices that define
it along with the polygons of which it is a
member.
6Types of Curves
1). Explicit In the Cartesian plane, an
explicit equation of a planar curve is given by
y f(x). The difficulties with this approach are
that (1) it is impossible to get multiple values
of y for a single x, so curves such as circles
and ellipses must be represented by multiple
curve segments and (2) describing curves with
vertical tangents is difficult and numerically
unstable. 2). Implicit f(x, y)
0 AxByC 0 This method has difficulties on
determining tangent continuity of two given
curves which is crucial in many
applications. (Circle can be defined as
x2y21, but what about a half circle?)
7Types of Curves
3). Parametric Curves The cubic polynomials
that defines a curve segment Q(t) x(t) y(t)T
are of the form Written in matrix form, it
becomes Q(t) x(t) y(t) T?
C where
8Parametric Curves
The equations that describe a parametric curve
depend on a variable t that is not explicitly
part of the geometry. By sweeping through t,
in our case 0 t 1, it is possible to evaluate
the equations and determine the x and y values
for points on the curve.
t 1.0
t
t 0.0
Parameter space
Object space
9Continuity
The derivative of Q(t) is the parametric tangent
vector of the curve. Applying the definition to
the curves equation, we have Often we
will want to represent a curve as a series of
curves pieced together. But if we will want these
curves to fit together reasonably
... continuity!
10Continuity
Two curve segments join together G0 geometric
continuity.
The directions of the tangent vectors (not
necessarily the magnitudes) are equal G1
geometric continuity. Both the directions and
magnitudes are equal C1 parametric continuity.
Second-order parametric continuity C2
parametric continuity.
Note For two curves to join smoothly, we require
only that their tangent-vector directions match
we do not require that their magnitudes match.
11Parametric Cubic Curves
To join multiple curves into one curve smoothly,
we need to specify the positions and their
tangent-vectors of both ends, i.e. the
continuity requirements. This gives us four
constraints, and so the four knowns can be used
to solve the four unknowns, i.e. coefficients, in
a cubic polynomial.
12Specifying Curves
- Control Points
- control points that lie on the curve
-
- Knots
- a set of points that influence the curve's shape
- Interpolating spline
- curve passes through the control points knots
(Cardinal spline, Catmull-Rom spline)
- Approximating spline
- control points merely influence shape (Hermite
Curves, B-spline)
13Examples of Cubic Curves
- Hermite
- Defined by two end points two endpoint tangent
vectors. - Bézier
- Defined by two endpoints two other points that
control the endpoints tangent vectors.
14Hermite Curves
Depending on which four knowns we have,
parametric curves can be divided into different
groups. The simplest of the cubic curves, the
Hermite form, is defined by two endpoints and the
tangent vectors at these endpoints.
15Hermite Curves
16Hermite Curves (cont.)
17Hermite Curves (cont.)
Basis Matrix
Geometry Vector
18Bézier Curves
A cubic Bézier curve indirectly specifies the
endpoint tangent-vector by specifying two
intermediate points that are not on the curve.
19Bézier Curves (cont.)
20Bézier Curves (cont.)
21A Bézier Curve
For example, if we are given four control points
(0,0), (0.2,0.8), (0.9, 0.1), (1,1). Then we
have And the parametric equation will
be At any point on this curve, the tangent
vector to the curve is
22Parametric Bicubic Surfaces
The equations that describe a parametric curve
depend on a variable t that is not explicitly
part of the geometry. By sweeping through t,
in our case 0 t 1, it is possible to evaluate
the equations and determine the x and y values
for points on the curve.
t 1.0
t
t 0.0
Parameter space
Object space
23Parametric Bicubic Surfaces
Parametric Bicubic Surfaces are a generalisation
of parametric cubic curves
- If one parameter, say v, is held at a constant
value then the above will - represent a curve.
- The surface is then generated by sweeping all
points on the boundary curve - P(u,0) (say) through cubic trajectories,
defined using the parameter v, to the - boundary curve P(u,1).
24Bézier Surface Patch
The representation of the bicubic surface patch
can be illustrated by considering the Bézier
Surface Patch. The edge P(0,v) of a Bezier patch
is defined by giving four control points P00,
P01, P02 and P03. Similarly the opposite edge
P(1,v) can be represented by a Bezier curve with
four control points. The surface patch is
generated by sweeping the curve P(0,v) through a
cubic trajectory in the parameter u to P(1,v). To
define this trajectory we need four control
points, hence the Bezier surface patch requires a
mesh of 4?4 control points as illustrated below.
25Further reading
- Chapter 11 of Foley and VanDam
- Representing Curves and Surfaces