Coons and Gregory Patches

Coons Patches and
Gregory Patches
Dr. Scott Schaefer
1
Patches With Arbitrary Boundaries

Given any 4 curves, f(s,0), f(s,1), f(0,t), f(1,t)
that meet continuously at the corners,
construct a smooth surface interpolating these
curves
2/39
Patches With Arbitrary Boundaries

Given any 4 curves, f(s,0), f(s,1), f(0,t), f(1,t)
that meet continuously at the corners,
construct a smooth surface interpolating these
f (s,1)
curves
t
f (0, t )
f (s,0)
f (1, t )
s
3/39
Coons Patches

Build a ruled surface between pairs of curves
f (s,1)
t
f (0, t )
f (s,0)
f (1, t )
s
4/39
Coons Patches

Build a ruled surface between pairs of curves
f1 (s, t )  (1  t ) f (s,0)  t f (s,1)
f 2 (s, t )  (1  s) f (0, t )  s f (1, t )
f (s,1)
t
f (0, t )
f (s,0)
f (1, t )
s
5/39
Coons Patches

Build a ruled surface between pairs of curves
f1 (s, t )  (1  t ) f (s,0)  t f (s,1)
f (s,1)
t
f (s,0)
s
6/39
Coons Patches

Build a ruled surface between pairs of curves
f 2 (s, t )  (1  s) f (0, t )  s f (1, t )
t
f (0, t )
f (1, t )
s
7/39
Coons Patches

“Correct” surface to make boundaries match
f1 (s, t )  f 2 (s, t )  ((1  s)(1  t ) f (0,0)  (1  s)t f (0,1)  s(1  t ) f (1,0)  s t f (1,1))
f (s,1)
t
f (0, t )
f (s,0)
f (1, t )
s
8/39
Coons Patches

“Correct” surface to make boundaries match
1  t 
 f (0, t ) 
 f (0,0)
  1  s s 
 f (s,0) f (s,1)   1  s s 
 t 
 f (1, t ) 
 f (1,0)
f (0,1) 1  t 


f (1,1)  t 
f (s,1)
t
f (0, t )
f (s,0)
f (1, t )
s
9/39
Properties of Coons Patches
Interpolate arbitrary boundaries
 Smoothness of surface equivalent to
minimum smoothness of boundary curves
 Don’t provide higher continuity across
boundaries

10/39
Hermite Coons Patches

Given any 4 curves, f(s,0), f(s,1), f(0,t), f(1,t)
that meet continuously at the corners and
cross-boundary derivatives along these edges
f ( s , 0 ) f ( s ,1) f ( 0 ,t ) f (1,t )
, t , s , s , construct a smooth
t
surface interpolating these curves and
derivatives
11/39
Hermite Coons Patches

Use Hermite interpolation!!!

f1 ( s, t )  f ( s,0)
f ( s , 0 ) f ( s ,1)
t
t
 (t  1) 2 (1  2t ) 


2
 (t  1) t 
H (t )  

2
(
t

1
)
t


2
 (3  2t )t 



f ( s,1) H (t )
12/39
Hermite Coons Patches

Use Hermite interpolation!!!

f 2 ( s, t )  f (0, t )
f ( 0 ,t ) f (1,t )
s
s
 (t  1) 2 (1  2t ) 


2
 (t  1) t 
H (t )  

2
(
t

1
)
t


2
 (3  2t )t 



f (1, t ) H ( s)
13/39
Hermite Coons Patches

Use Hermite interpolation!!!
 f (0,0)
 f ( 0,0 )
T
f ( s, t )  f1 ( s, t )  f 2 ( s, t )  H ( s )  f (1u, 0)
 u
 f (1,0)

 (t  1) 2 (1  2t ) 


2
 (t  1) t 
H (t )  

2
(
t

1
)
t


2
 (3  2t )t 


f ( 0 , 0 )
v
f ( 0 , 0 )
uv
f (1, 0 )
uv
f (1, 0 )
v
f ( 0 ,1)
v
f ( 0 ,1)
uv
f (1,1)
uv
f (1,1)
v
f (0,1) 

f ( 0 ,1)

u
H (t )
f (1,1) 
u

f (1,1) 
14/39
Hermite Coons Patches

Use Hermite interpolation!!!
 f (0,0)
 f ( 0,0 )
T
f ( s, t )  f1 ( s, t )  f 2 ( s, t )  H ( s )  f (1u, 0)
 u
 f (1,0)

 (t  1) 2 (1  2t ) 


2
 (t  1) t 
H (t )  

2
(
t

1
)
t


2
 (3  2t )t 


f ( 0 , 0 )
v
f ( 0 , 0 )
uv
f (1, 0 )
uv
f (1, 0 )
v
f ( 0 ,1)
v
f ( 0 ,1)
uv
f (1,1)
uv
f (1,1)
v
f (0,1) 

f ( 0 ,1)

u
H (t )
f (1,1) 
u

f (1,1) 
Requires mixed partials
15/39
Problems With Bezier Patches
p03
p13
p23
p33
p02
p12
p22
p32
p01
p11
p21
p31
p00
p10
p20
p30
16/39
Problems With Bezier Patches
f ( s, t )
s
17/39
Problems With Bezier Patches
f ( s, t )
t
18/39
Problems With Bezier Patches
Derivatives along edges not independent!!!
19/39
Solution
20/39
Solution
21/39
Gregory Patches
p03
p13
p23
p12t
p02
t
p22
s
p22
p12s
p11s
p01
p00
p32
s
p21
p11t
p10
p33
p
t
21
p20
p31
p30
22/39
Gregory Patch Evaluation
t
p03
t p11s  s p11
p11 
st
s
t
t p21
 (1  s) p21
p02
p21 
1 s  t
s
t
(1  t ) p22
 (1  s) p22
p22 
p01
2 s t
t
(1  t ) p12s  s p12
p12 
1 s  t
p00
p13
p23
p12t
t
p22
s
p22
p12s
p11s
p32
s
p21
p11t
p10
p33
p
t
21
p20
p31
p30
23/39
Gregory Patch Evaluation
Derivative along edge
decoupled from adjacent
edge at interior points
p03
p13
p23
p12t
p02
t
p22
s
p22
p12s
p11s
p01
p00
p32
s
p21
p11t
p10
p33
p
t
21
p20
p31
p30
24/39
Gregory Patch Properties
Rational patches
 Independent control of derivatives along
edges except at end-points
 Don’t have to specify mixed partial
derivatives
 Interior derivatives more complicated due to
rational structure
 Special care must be taken at corners (poles
in rational functions)

25/39
Constructing Smooth Surfaces
With Gregory Patches
Assume a network of cubic curves forming
quad shapes with curves meeting with C1
continuity
 Construct a C1 surface that interpolates these
curves

26/39
Constructing Smooth Surfaces
With Gregory Patches
Need to specify interior points for crossboundary derivatives
 Gregory patches allow us to consider each
edge independently!!!

27/39
Constructing Smooth Surfaces
With Gregory Patches
Need to specify interior points for crossboundary derivatives
 Gregory patches allow us to consider each
edge independently!!!

Fixed control points!!
28/39
Constructing Smooth Surfaces
With Gregory Patches
Need to specify interior points for crossboundary derivatives
 Gregory patches allow us to consider each
edge independently!!!

v0
u0
v̂0
u1
v̂1
v3
v2
v1
u2
v̂2
v̂3
29/39
Constructing Smooth Surfaces
With Gregory Patches
Need to specify interior points for crossboundary derivatives
 Gregory patches allow us to consider each
edge independently!!!

v(t )   Bi3 (t )vi
i
vˆ(t )   Bi3 (t )vˆi
v0
u0
i
u (t )   Bi2 (t )ui
i
v̂0
u1
v̂1
v3
v2
v1
u2
v̂2
v̂3
30/39
Constructing Smooth Surfaces
With Gregory Patches
Need to specify interior points for crossboundary derivatives
 Gregory patches allow us to consider each
edge independently!!!

Derivatives must be linearly
dependent!!!
 v(t )   u (t )  vˆ(t )
v0
u0
v̂0
u1
v̂1
v3
v2
v1
u2
v̂2
v̂3
31/39
Constructing Smooth Surfaces
With Gregory Patches
Need to specify interior points for crossboundary derivatives
 Gregory patches allow us to consider each
edge independently!!!

By construction, property
holds at end-points!!!
v0
 0 v0   0 u0  vˆ0
 3 v3   3 u3  vˆ3
u0
v̂0
u1
v̂1
v3
v2
v1
u2
v̂2
v̂3
32/39
Constructing Smooth Surfaces
With Gregory Patches
Need to specify interior points for crossboundary derivatives
 Gregory patches allow us to consider each
edge independently!!!

Assume weights change linearly
((1  t ) 0  t 3 )v(t )  ((1  t ) 0  t3 )u(t )  vˆ(t )
v0
u0
v̂0
u1
v̂1
v3
v2
v1
u2
v̂2
v̂3
33/39
Constructing Smooth Surfaces
With Gregory Patches
Need to specify interior points for crossboundary derivatives
 Gregory patches allow us to consider each
edge independently!!!

Assume weights change linearly
((1  t ) 0  t 3 )v(t )  ((1  t ) 0  t3 )u(t )  vˆ(t )
v0
u0
A quartic function. Not possible!!!
v̂0
u1
v̂1
v3
v2
v1
u2
v̂2
v̂3
34/39
Constructing Smooth Surfaces
With Gregory Patches
Need to specify interior points for crossboundary derivatives
 Gregory patches allow us to consider each
edge independently!!!

Require v(t) to be quadratic
((1  t ) 0  t 3 )v(t )  ((1  t ) 0  t3 )u(t )  vˆ(t )
v0
u0
v0  3v1  3v2  v3  0
v̂0
u1
v̂1
v3
v2
v1
u2
v̂2
v̂3
35/39
Constructing Smooth Surfaces
With Gregory Patches
Need to specify interior points for crossboundary derivatives
 Gregory patches allow us to consider each
edge independently!!!

v0  3v1  3v2  v3  0
vˆ1  v1 0  v0  3 3 0  u1 2 3 0  u0
vˆ2  v2 3  v3
 0  3
3
2 3
1 3
u
 u2
3
v0
3
u0
0
v3
v2
v1
u1
u2
3
v̂0
v̂1
v̂2
v̂3
36/39
Constructing Smooth Surfaces
With Gregory Patches

Problem: construction is not symmetric
 v (t ) is quadratic
ˆ(t ) is cubic
 v
v0  3v1  3v2  v3  0
vˆ1  v1 0  v0  3 3 0  u1 2 3 0  u0
vˆ2  v2 3  v3
 0  3
3
2 3
1 3
u
 u2
3
v0
3
u0
0
v3
v2
v1
u1
u2
3
v̂0
v̂1
v̂2
v̂3
37/39
Constructing Smooth Surfaces
With Gregory Patches
Solution: assume v(t) is linear and use
v1  23 v0  13 v3 , v2  13 v0  23 v3 to find vˆ1 , vˆ2
 Same operation to find v1 , v2

v0  3v1  3v2  v3  0
vˆ1  v1 0  v0  3 3 0  u1 2 3 0  u0
vˆ2  v2 3  v3
 0  3
3
2 3
1 3
u
 u2
3
v0
3
u0
0
v3
v2
v1
u1
u2
3
v̂0
v̂1
v̂2
v̂3
38/39
Constructing Smooth Surfaces
With Gregory Patches
Advantages
 Simple construction with finite set of
(rational) polynomials
 Disadvantages
 Not very flexible since cross-boundary
derivatives are not full cubics


If cubic curves not available, can estimate
tangent planes and build hermite curves
39/39