computer graphics lecture 13 curves and surfaces i
TRANSCRIPT
Computer Graphics
Computer Graphics
Lecture 13
Curves and Surfaces I
Computer Graphics
10/10/2008 Lecture 5 2
Types of Curves / Surfaces• Explicit:
y = mx + b z = A x + B y + C
• Implicit: Ax + By + C = 0 (x – x0)2 + (y – y0)2 – r2 = 0
• Parametric:
x = x0 + (x1 – x0)t x = x0 + rcos
y = y0 + (y1 – y0)t y = y0 + rsin
Computer Graphics
10/10/2008 Lecture 5 3
Today• Implicit Surfaces
– Metaball
• Parametric surfaces – Hermite curve– Bezier curve– Biubic patches– Tessalation
Computer Graphics
3/10/2008 Lecture 3 4
Implicit Surfaces• Functions in the form of F(x,y,z) = 0
– i.e. Quadric functions
Sphere: f(x,y,z) = x + y + z = 0
2 2 2
Computer Graphics
Metaballs • One type of implicit surface• Also known as blobby objects• Negative volume to produce hollows• Can be used to model smooth surfaces, liquid
Computer Graphics
Metaballs (2)• A point surrounded by a density field• The density decreases with distance from the point • The density of multiple particles is summed• A surface is implied by sampling the area where
the density is a predefined threshold
Computer Graphics
An Example of the density function
where (x0,y0,z0) is the centre of the metaball
20
20
20 )()()(
1),,(
zzyyxxzyxf
Computer Graphics
Metaballs (3)•The surface points are sampled and approximated by polygonal meshes for rendering
Demo animation of metaballs•http://www.youtube.com/watch?v=UWvGyKolkho&feature=related
•http://www.youtube.com/watch?v=Nf_OlfWMRaA&NR=1
Computer Graphics
10/10/2008 Lecture 5 9
Today• Implicit Surfaces
– Metaball
• Parametric surfaces – Hermite curve– Bezier curve– Biubic patches– Tessalation
Computer Graphics
10/10/2008 Lecture 5 10
Why parametric?
• Parametric curves are very flexible.• Parameter count gives the object’s
dimension.
(x(u,v), y(u,v), z(u,v)) : 2 D surface• Coord functions independent.
Computer Graphics
10/10/2008 Lecture 5 11
Specifying curves• Control Points:
– A set of points that influence the curve’s shape.
• Interpolating curve:– Curve passes through the
control points.
• Control polygon:– Control points merely
influence shape.
Computer Graphics
10/10/2008 Lecture 5 12
Piecewise curve segments
We can represent an arbitrary length curve as a series of curves pieced together.
But we will want to control how these curves fit together …
Computer Graphics
• If the tangent vectors of two cubic curve segments are equal at the join point, the curve has first-degree continuity, and is said to be C continuous
• If the direction and magnitude of d / dt [Q(t)] through the nth derivative are equal at the join point, the curve is called C continuous
• If the directions (but not necessarily the magnitudes) of two segments’ tangent vectors are equal at the join point, the curve has G continuity
Continuity between curve segments
1
n
n n
1
Computer Graphics
Example • The curves Q1 Q2 Q3 join at point P
• Q1 and Q2 have equal tangent vectors at P and hence C1 and G1 continuous
• Q1 and Q3 have tangent vectors in the same direction but Q3 has
twice magnitude, so they are only G1 continuous at P
Computer Graphics
10/10/2008 Lecture 5 15
Parametric Cubic Curves
• In order to assure C2 continuity our functions must be of at least degree 3.
• Cubic has 4 degrees of freedom and can control 4 things.
• Use polynomials: x(t) of degree n is a function of t.
–
– y(t) and z(t) are similar and each is handled independently
nn
iitatx
0
)(
Computer Graphics
10/10/2008 Lecture 5 16
Hermite curves
• A cubic polynomial • Polynomial can be specified by the position
of, and gradient at, each endpoint of curve.
• Determine: x = X(t) in terms of x0, x0’, x1,
x1’
Now:
X(t) = a3t3 + a2t2 + a1t + a0
and X/(t) = 3a3t2 + 2a2t + a1
Computer Graphics
10/10/2008 Lecture 5 17
Finding Hermite coefficientsSubstituting for t at each endpoint:
x0 = X(0) = a0 x0’= X/(0) = a1
x1 = X(1) = a3 + a2 + a1 + a0 x1’= X/(1) = 3a3 + 2a2+ a1
And the solution is:
a0 = x0 a1 = x0’
a2 = -3x0 – 2x0’+ 3x1 – x1
’ a3 = 2x0 + x0’ - 2x1 + x1
’
Computer Graphics
10/10/2008 Lecture 5 18
The Hermite matrix: MH
The resultant polynomial can be expressed in matrix form:
X(t) = tTMHq ( q is the control vector)
'
'
0001
0010
1323
1212
1)(
1
1
0
0
23
x
x
x
x
ttttX
We can now define a parametric polynomial for each coordinate required independently, ie. X(t), Y(t) and Z(t)
Computer Graphics
Hermite Basis (Blending) Functions
')()32(')2()132(
'
'
0001
0010
1323
1212
1)(
123
123
023
023
1
1
0
0
23
xttxttxtttxtt
x
x
x
x
ttttX
Computer Graphics
10/10/2008 Lecture 5 20
Hermite Basis (Blending) Functions
x0 x1
x0'
x1/
The graph shows the shape of the four basis functions – often called blending functions.
They are labelled with the elements of the control vector that they weight.
Note that at each end only position is non-zero, so the curve must touch the endpoints
')()32(')2()132()( 123
123
023
023 xttxttxtttxtttX
Computer Graphics
10/10/2008 Lecture 5 21
Family of Hermite curves.
x(t)
y(t)
Note : Start points on left.
Computer Graphics
10/10/2008 Lecture 5 22
Displaying Hermite curves.
• Simple : – Select step size to suit.
– Plug x values into the geometry matrix.
– Evaluate P(t) x value for current position.
– Repeat for y & z independently.
– Draw line segment between current and previous point.
• Joining curves:– Coincident endpoints for C0 continuity
– Align tangent vectors for C1 continuity
.
Computer Graphics
10/10/2008 Lecture 5 23
Bézier Curves• Hermite cubic curves are difficult to model –
need to specify point and gradient.
• More intuitive to only specify points.• Pierre Bézier (an engineer at Renault)
specified 2 endpoints and 2 additional control points to specify the gradient at the endpoints.
• Can be derived from Hermite matrix:– Two end control points specify tangent
Computer Graphics
10/10/2008 Lecture 5 24
Bézier Curves
P2
P1
P4
P3
P3
P4
P2
P1
Note the Convex Hull has been shown as a dashed line – used as a bounding extent for intersection purposes.
Computer Graphics
10/10/2008 Lecture 5 25
Bézier Matrix
• The cubic form is the most popular X(t) = tTMBq (MB is the Bézier matrix)
• With n=4 and r=0,1,2,3 we get:
• Similarly for Y(t) and Z(t)
3
2
1
0
23
0001
0033
0363
1331
1)(
q
q
q
q
ttttX
Computer Graphics
10/10/2008 Lecture 5 26
Bézier blending functionsThis is how they look –
The functions sum to 1 at any point along the curve.
Endpoints have full weight
The weights of each function is clear and the labels show the control points being weighted.
q0 q3
q1 q2
Computer Graphics
Joining Bezier Curves
• G continuity is provided at the endpoint when P2 – P3 = k (Q1 – Q0)
• if k=1, C continuity is obtained
1
1
Computer Graphics
Bicubic patches• The concept of parametric curves can be
extended to surfaces • The cubic parametric curve is in the form of
Q(t)=tTM q where q=(q1,q2,q3,q4) : qi control points, M is the basis matrix (Hermite or Bezier,…), tT=(t3, t2, t, 1)
Computer Graphics
• Now we assume qi to vary along a parameter s,• Qi(s,t)=tTM [q1(s),q2(s),q3(s),q4(s)]• qi(s) are themselves cubic curves, we can write
them in the form …
Computer Graphics
Bicubic patches
sMMt
MsMsMttsQTT
TTT
....
])[..],...,[...(.),( 444411111
q
q,q,q,qq,q,q,q 4324321
where q is a 4x4 matrixEach column contains the control points of q1(s),…,q4(s) x,y,z computed by
44342414
43332313
42322212
41312111
qqqq
qqqq
qqqq
qqqq
sMMttsz
sMMttsy
sMMttsx
Tz
T
Ty
T
Tx
T
....),(
....),(
....),(
q
q
q
Computer Graphics
14/10/2008 Lecture 6 31
Bézier example
• We compute (x,y,z) by
coordszofarrayisq
sMqMttsz
coordsyofarrayisq
sMqMttsy
coordsxofarrayisq
sMqMttsx
z
TBzB
T
y
TByB
T
x
TBxB
T
44
....),(
44
....),(
44
....),(
Computer Graphics
14/10/2008 Lecture 6 32
Continuity of Bicubic patches.• Hermite and Bézier patches
– C0 continuity by sharing 4 control points between patches.
– C1 continuity when both sets of control points either side of the edge are collinear with the edge.
Computer Graphics
14/10/2008 Lecture 6 33
Displaying Bicubic patches.
• Need to compute the normals– vector cross product of the 2 tangent vectors.
• Need to convert the bicubic patches into a polygon mesh – tessellation
Computer Graphics
Normal Vectors
),,(),(),(
....]0,1,2,3[
...).()....(),(
]0,1,2,3.[...
)(....)....(),(
2
2
sttssttsstts
TT
TTTT
TTx
T
TTTT
yxyxxzxzzyzytsQt
tsQs
sMqMtt
sMqMtt
sMqMtt
tsQt
ssMqMt
ss
MqMtsMqMts
tsQs
The surface normal is biquintic (two variables, fifth-degree) polynomial and very expensiveCan use finite difference to reduce the computation
Computer Graphics
14/10/2008 Lecture 6 35
Tessellation
• We need to compute the triangles on the surface• The simplest way is do uniform tessellation, which
samples points uniformly in the parameter space• Adaptive tessellation – adapt the size of triangles
to the shape of the surface– i.e., more triangles where the surface bends more
– On the other hand, for flat areas we do not need many triangles
Computer Graphics
Adaptive Tessellation• For every triangle edges, check if each edge is
tessellated enough (curveTessEnough())• If all edges are tessellated enough, check if the
whole triangle is tessellated enough as a whole (triTessEnough())
• If one or more of the edges or the triangle’s interior is not tessellated enough, then further tessellation is needed
Computer Graphics
• When an edge is not tessellated enough, a point is created halfway between the edge points’ uv-values
• New triangles are created and the tessellator is once again called with the new triangles as input
Adaptive Tessellation
Four cases of further tessellation
Computer GraphicsAdaptive TessellationAdaptiveTessellate(p,q,r)• tessPQ=not curveTessEnough(p,q)• tessQR=not curveTessEnough(q,r)• tessRP=not curveTessEnough(r,p)• If (tessPQ and tessQR and tessRP)
– AdaptiveTessellate(p,(p+q)/2,(p+r)/2);– AdaptiveTessellate(q,(q+r)/2,(q+p)/2);– AdaptiveTessellate(r,(r+p)/2,(r+q)/2);– AdaptiveTessellate((p+q)/2,(q+r)/2,(r+p)/2);
• else if (tessPQ and tessQR) – AdaptiveTessellate(p,(p+q)/2,r);– AdaptiveTessellate((p+q)/2,(q+r)/2,r);– AdaptiveTessellate((p+q)/2,q,(q+r)/2);
• else if (tessPQ) – AdaptiveTessellate(p,(p+q)/2,r);– AdaptiveTessellate(q,r,(p+q)/2);
• Else if (not triTessEnough(p,q,r))AdaptiveTessellate((p+q+r)/3,p,q); AdaptiveTessellate((p+q+r)/3,q,r); AdaptiveTessellate((p+q+r)/3,r,p);
end;
Computer Graphics
curveTessEnough• Say you are to judge whether ab needs
tessellation• You can compute the midpoint c, and compute
its distance l from ab • Check if l/||a-b|| is under a threshold• Can do something similar for triTessEnough
– Sample at the mass center and calculate its distance from the triangle
a b
c
d
Computer Graphics
Other factors to evaluate
• Inside the view frustum• Front facing• Occupying a large area in screen space• Close to the sillhouette of the object• Illuminated by a significant amount of
specular lighting
Computer Graphics
Demo
• http://www.nbb.cornell.edu/neurobio/land/OldStudentProjects/cs490-96to97/anson/BezierPatchApplet/
Computer Graphics
10/10/2008 Lecture 5 42
Reading for this lecture
• Foley et al. Chapter 11, section 11.2 up to and including 11.2.3
• Introductory text Chapter 9, section 9.2 up to and including section 9.2.4
• Foley at al., Chapter 11, sections 11.2.3, 11.2.4, 11.2.9, 11.2.10, 11.3 and 11.5.
• Introductory text, Chapter 9, sections 9.2.4, 9.2.5, 9.2.7, 9.2.8 and 9.3.
• Real-time Rendering 2nd Edition Chapter 12.1-3