244
1 Computer Graphics Course outline Introduction Images and display techniques Bases Gamma correction Aliasing and techniques to remedy Storage

Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

1

Computer Graphics

Course outline

Introduction Images and display techniques

Bases Gamma correction Aliasing and techniques to remedy Storage

Page 2: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

2

Computer Graphics

Course outline

3D Perspective & 2D / 3D transformations Go from a 3D space to a 2D display device

Two paradigms for image synthesis Representation of curves and surfaces

Splines & co. Meshes

Realistic rendering by ray tracing Concepts and theoretical bases

Page 3: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

3

Computer Graphics

Representation of curves and surfaces

Page 4: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

4

Computer Graphics

Curves Interpolation

Cubic Splines

Approximation Bézier Curves B-spline Curves

Surfaces Interpolation

Coons Patches

Approximation B-splines Surfaces Subdivision Surfaces

Page 5: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

5

Computer Graphics

Two useful references...

JC.Léon, Modélisation et construction de surfaces pour la CFAO, Hermes, 1991

L. Piegl, W. Tiller, The NURBS Book, Second Edition, Springer , 1996

Page 6: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

6

Computer Graphics

Cubic Splines

Page 7: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

7

Computer Graphics

Splines

Goal : Interpolate points (control points)

Go through points ( interpolation ≠ approximation)

Ensure a certain regularity to the curve Simple (easy) to compute

Page 8: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

8

Computer Graphics

Splines

Let start with the idea that we have many control points

Lagrange interpolation ? This corresponds to a unique polynomial interpolating every control

points (d+1)

C∞

Continuity

P u=∑i=0

d

Pi Lidu

Page 9: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

9

Computer Graphics

Lagrange Interpolation21 CP All on a circle, with a slight perturbation

Splines

Page 10: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

10

Computer Graphics

Splines

MotivationLet us imagine that we have many (100's of) control points

But we don't want a Lagrange interpolation ! We should stay with a low order scheme but conserve

enough freedom to pass through every point Curve defined by pieces ... and of low order (1)

Page 11: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

11

Computer Graphics

Splines

We are going to build a low order interpolation for each knot interval, such that we can impose slopes at the knots.

u=ui+1

u=ui

P=Pi+1

P=Pi

P'=P'i

P'=P'i+1

Page 12: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

12

Computer Graphics

Splines

In each range [i,i+1] , we want to have an independent polynomial

We have 4 parameters : position at each knot and associated tangents.

The basis must have 4 degrees of freedom, thus be of order 3 in the case of polynomials.

x [i ]u =A[ i ]0A[i ]1 uA[i ]2 u2A[i ]3 u3 , u∈[ui , ui1]

P ui=P i ≡ {xui=xi

y ui= y i

Page 13: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

13

Computer Graphics

Splines

First, every interval has a unit length i.e.

Then we ensure identical intervals [0...1] between each interpolation point :

On each interval i , we thus have the following relation:

ui1−ui=1

u=u−ui

u i1−ui

=u−ui

x[i ](u)=a[i ]0+a[i ]1 u+a[ i ]2 u2+a[i ] 3 u3 , u∈[0,1]

d udu

=1

Page 14: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

14

Computer Graphics

Splines

P=Pi+1

P=Pi

P'=P'i

P'=P'i+1

u=0

u=1

Page 15: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

15

Computer Graphics

Splines

We pass through both control points:

We impose both slopes :

At the end :

P u0=0=P i ⇔a[i ]0a[ i]1 u0a[i ] 2u02a[ i ]3 u0

3=xi

P u1=1=P i1⇔a[i ]0a[i ]1 u1a[i ] 2 u12a[ i ]3 u1

3=x i1

P 'u0=0=P 'i ⇔ a[i ]12a[i ] 2 u03a[ i ]3 u0

2=x i

'

P 'u1=1=P 'i1 ⇔a[i ]12a [i ] 2 u13a [i ]3 u1

2=x i1

'

{a[ i]0=xi

a[ i]1=x i'

a[ i] 2=3 xi1−x i−2 xi'−x i1

'

a[ i]3=2xi−x i1xi'x i1

'

Page 16: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

16

Computer Graphics

Splines

We have continuity We have continuity of the derivatives But how to choose the slopes ?

Let the user choose ( “artistic” freedom) Automatically ...

Page 17: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

17

Computer Graphics

Splines

By finite differences with three points :

At the boundaries, we use finite differences (asymmetric)

The result depends on the parametrization !

Cardinal spline

c is a « tension » parameter. c=0 gives yields the so called “Catmull-Rom” spline, c=1 a zigzagging line.

x i'=

xi1−xi

2 ui1−ui

xi−xi−1

2 ui−ui−1

x0'=

x1−x0

u1−u0

xn−1'

=x n−1−xn−2

un−1−un−2

x i'=1−c

x i1−xi−1

2 , 0≤c≤1

x0'=(1−c)(x1− x0)

xn−1'

=(1−c)(xn−1−xn−2)

Page 18: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

18

Computer Graphics

Splines

5 points, finite differences by varying the parametrization [0..1] , [0..2] , [0..5] , [0..10]

Continuity of the curve/parameter but loss of regularity (and of geometric continuityin many cases)

Page 19: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

19

Computer Graphics

Splines

5 points, Cardinal Spline (Catmull-Rom) c=0

Page 20: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

20

Computer Graphics

Splines

Catmull-Rom Splines are widely used in computer graphics

Simple to compute, effective Local control (price to pay : discontinuous secd derivative) Animations with keyframing

Ensures a fluid motion because of the continuity of the slope

Page 21: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

21

Computer Graphics

Splines

5 points, Cardinal Spline c=0.25

Page 22: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

22

Computer Graphics

Splines

5 points, Cardinal Spline c=0.5

Page 23: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

23

Computer Graphics

Splines

5 points, Cardinal Spline c=0.75

Page 24: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

24

Computer Graphics

Splines

5 points, Cardinal Spline c=1.0

Page 25: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

25

Computer Graphics

Splines

We can impose the continuity of second derivatives... On a curve with n points, we have n extra relations to impose We may impose the continuity of the second derivative only on the n-2

interior knots

What about the 2 points on the boundary ? Impose a vanishing second derivative.

We obtain what is called « natural spline » We could also impose the slopes (i.e. only n-2 relations remaining) Or , impose that the third derivative is zero on the points 1 and n-2

That means a single polynomial expression for the first two knot intervals, and the last two.

Page 26: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

26

Computer Graphics

Splines

Natural Spline : mathematical approximation of the spline historically used in naval construction.

C. D

eBoor

Page 27: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

27

Computer Graphics

Splines

Boeing

Page 28: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

28

Computer Graphics

Splines

We impose the continuity of the second derivatives

We substitute in the “internal” equations

Finally we obtain :

x[i−1]

''1=x [i ]

''0⇔ 2a[i−1] 26a[ i−1]3=2a[i ]2

2 [3x i−x i−1−2 x i−1'

−x i']6 [2x i−1−x ix i−1

'x i

']

=2 [3 x i1−x i−2 x i'−x i1

']

x i−1'

4 x i'x i1

'=3xi1−x i−1

Page 29: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

29

Computer Graphics

Splines

At the boundaries we want

We have then a linear system with n unknowns :

x [0]

''0=0⇔ 2a[0] 2=0

x [n−2]

''1=0⇔ 2a[n−2] 26a[ n−2] 3=0

2 x0'x1

'=3 x1−x0

x n−2'

2 xn−1'

=3xn−1−xn−2

2 11 4 1

1 4 1⋱

1 4 11 2

x0

'

x1'

x2'

xn−2'

xn−1'

=3x1−x0

3 x2−x0

3x3−x1

3xn−1−xn−3

3 xn−1−x n−2

Page 30: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

30

Computer Graphics

Splines

By solving the system, we have :

, which is substituted in

,to get the polynomial in each portion :

From the global parameter u, we have to find in which portion we are ( the value of i ) , then compute right polynomial...

x0

'

x1'

x2'

xn−2'

xn−1'

{a[i ]0=xi

a[i ]1=x i'

a[i ] 2=3 xi1−x i−2 xi'−x i1

'

a[i ]3=2 xi−x i1xi'x i1

'

x [i ]u=a[i ]0a[i ]1ua[ i ]2 u2a[i ]3 u

3 , 0≤u1

Page 31: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

31

Computer Graphics

Splines

5 control points, natural spline

Catmull-Rom spline

Page 32: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

32

Computer Graphics

Splines

An experiment We approximate a circle by a number of increasing

points Simultaneously , the order of the approximation the

number of pieces increases.

In all the cases, the curve is C C

2

Page 33: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

33

Computer Graphics

Splines

3 points, order 3!

Page 34: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

34

Computer Graphics

Splines

5 points

Page 35: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

35

Computer Graphics

Splines

11 points

Page 36: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

36

Computer Graphics

Splines

21 points

Page 37: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

37

Computer Graphics

Splines

Random perturbation Each point is moved radially by a value between -0.5

and +0.5 % of the circle's radius

Page 38: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

38

Computer Graphics

Splines

3 points, random perturbation 1%

Page 39: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

39

Computer Graphics

Splines

5 points, random perturbation 1%

Page 40: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

40

Computer Graphics

Splines

11 points, random perturbation 1%

Page 41: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

41

Computer Graphics

Splines

21 points, random perturbation 1%

Page 42: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

42

Computer Graphics

Splines

Deterministic perturbation Each point is shifted radially depending on its position

by -5 or +5 % of the circle's radius

Page 43: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

43

Computer Graphics

Splines

3 points, deterministic perturbation 5%

Page 44: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

44

Computer Graphics

Splines

5 points, deterministic perturbation 5%

Page 45: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

45

Computer Graphics

Splines

11 points, deterministic perturbation 5%

Page 46: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

46

Computer Graphics

Splines

21 points, deterministic perturbation 5%

Page 47: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

47

Computer Graphics

Splines

11 points

non local control

Page 48: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

48

Computer Graphics

Splines

Page 49: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

49

Computer Graphics

Splines

Perturbation of a point We shift one point by a significant amount

Page 50: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

50

Computer Graphics

Splines

21 points

Page 51: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

51

Computer Graphics

99 points

Splines

Page 52: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

52

Computer Graphics

Splines

999 points

Page 53: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

53

Computer Graphics

Splines

Stable interpolation scheme Weak Runge phenomenon The displacement of a point yet affects all the

curve Nevertheless, the perturbation fades very quickly

further away from the shifted point « Overshoots » are limited.

Page 54: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

54

Computer Graphics

Splines

Closed curve ? The curve can be closed, just impose everywhere that

the second derivative is continuous.

Page 55: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

55

Computer Graphics

Splines

Instead of

... we have

(4 1 11 4 1

1 4 1⋱

1 4 11 1 4

)(x0

'

x1'

x2'

xn−3'

xn−2'

)=(3(x1−xn−2)

3( x2−x0)

3( x3−x1)

⋮3( xn−2− xn−4)

3(x0−x n−3))

x[n−2]

''(1)=x[0 ]

''(0)⇔ 2a[ n−2 ]2+6a[ n−2 ]3=2a [0] 2

x [0]

''0 =0⇔ 2a[0] 2=0

x [n−2]

''1=0⇔ 2a[n−2] 26a[ n−2] 3=0

Circulantmatrix

xn−1=x0

xn−1'

=x0'and

Page 56: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

67

Computer Graphics

Splines

3D Curves Minimal order so that a curve can have a torsion (non

planar curve) Let's consider a Lagrange interpolation 2 points → on a straight line (no curvature) 3 points → in a plane (no torsion) 4 points → torsion becomes possible

Minimal order to join smoothly two arbitrarily oriented curves = 3

P u=∑i=0

n−1

P i l ipu

Page 57: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

68

Computer Graphics

Bézier curves

Page 58: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

69

Computer Graphics

Bézier curves

Bézier curves Pierre Bézier (1910-1999) Develops UNISURF –

first surface modelling software at Renault's (1971)

Publicizes the theory under his name in 1962... however, the principle was discovered in 1959 by Paul de Casteljau (at Citroën's) ! Because of the “culture of secret” at Citroën, De Casteljau will have his works recognized only in 1975.

Page 59: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

70

Computer Graphics

Bézier curves

Use of Bézier curves : Postscript fonts (cubic Bézier) & TrueType (quadratic

Bézier)

Computer graphics In geometrical modelling and CAD, they tend to be

replaced by more general techniques (NURBS)

AaBbCc

Page 60: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

71

Computer Graphics

Bézier curves

Modelling by interpolation is not very practical We seldom have interpolation points at our hand

Instead, we hope to define these points as the result of a modeling process instead of as an input data

Approximation gives more freedom in the design of the curve

Page 61: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

72

Computer Graphics

Bézier curves

Elements of a Bézier curve :

n=d+1 control points

Bézier curve

Control Polygon with d=n-1 sides

(also called characteristic

polygon)

For Bézier curves, the notion of knot is trivial :u0=0 u1=1

Page 62: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

73

Computer Graphics

Bézier curves

Characteristics of Bézier curves More freedom than interpolation

Any degree Precise control of the curve's shape Numerical stability even with high degree (not as Lagrange !)

The are Bernstein polynomials (Sergei N. Bernstein, 1880-1968 - don't mistake for Leonard Bernstein...:) :

They form a complete polynomial basis They are a partition of the unity We sometimes call them blending functions The curve is described as one polynomial (unlike splines)

P (u)=∑i=0

d

P i Bid(u)

Bidu

Page 63: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

74

Computer Graphics

Bézier curves

Bernstein polynomials

Bidu =d

i ui1−u

d −i

Binomial coefficients

Page 64: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

75

Computer Graphics

Bézier curves Binomial coefficients : computed with Pascal's

triangle1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 11 2 3 4 5

d=0

1

2

3

4

5

di

di = d !

d−i ! i !

(di )=(d−1

i )+(d−1i−1 )

i=0

Page 65: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

76

Computer Graphics

Bézier curves

Bernstein polynomials

By design, they form a partition of unity...

Bid(u)=(d

i )ui(1−u)

d −i

1

Binomial coefficients

=∑i=0

d

Bid(u)

=∑i=0

d

(di ) Ai Bd−i

1=[(1−u)+u ]d=[ A+ B ]

d =∑i=0

d

(di )ui

(1−u)d−i

Page 66: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

77

Computer Graphics

Partition of unity

Property of affine invariance It is a useful property that the curves we define for a

set of control points can undergo linear affine transformations.

Let Pi* the affine transformation of the control points P

i

Let P*(Pi) the affine transformation of the points of the curve P(P

i)

defined from the original points Pi

Let P(Pi*) the new curve based on the modified control points P

i* ,

with the same parametrization.

The affine invariance is verified iff P*(Pi) = P(P

i*) for all

u.

Page 67: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

78

Computer Graphics

Partition of unity

Affine transformations

Translation

Scaling

3 rotations

Shear

12 degrees of freedom

P ≡A⋅Pu

u=[abc ] ; A=[

1 0 00 1 00 0 1 ]

u=0 ; A=[d 0 00 e 00 0 f ]

u=0 ; A=[cos −sin 0sin cos 0

0 0 1]⋯u=0 ; A=[

1 g h0 1 i0 0 1]

Page 68: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

79

Computer Graphics

Partition of unity

Let P a parametric curve built this way :

Let's verify the invariance by a translation t:

P u=∑0

n−1

P i K inu

P P i*=∑

0

n−1

P it K inu =∑

0

n−1

P i K inu ∑

0

n−1

t K inu

=P u∑0

n−1

t K inu

=P (u)+ t=P*(Pi) iff ∑

0

n−1

K in(u)=1

Partition of unity

Page 69: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

80

Computer Graphics

Partition of unity

For the other multiplicative transformations

Consequently, iff the basis functions form a partition of unity, and the dependence with respect to the control points is linear, the representation is invariant by any affine transformation.

P (Pi*)=∑

0

n−1

(A⋅P i) K in(u)=A⋅∑

0

n−1

P i K in(u)

=A⋅P (u)=P*(P i)

(no particular conditions except linearity with respect tothe control points coordinates)

Page 70: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

81

Computer Graphics

Bézier curves

Some characteristics of the B. polynomials. has a root of multiplicity i for u=0 has a root of multiplicity d-i for u=1 (symmetry of the basis) If i≠0, has a unique maximum at u=i/d

Bid(u)=0 if i< 0 or i> d

Bid(0)=δi 0 and Bi

d(1)=δi d

Bidu

Bid(u)≥0 for u∈[0,1]

Bidu

Bid(1−u)=Bd−i

d(u)

Bi' d

=d Bi−1d −1

u−Bid−1

u Bi

du

Bid(i /d )=i i d−d

(d−i)(d−i )(di )

Page 71: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

82

Computer Graphics

Bézier curves

Demonstration of Bi' d

(u)=d ( Bi−1d −1

(u)−Bid −1

(u))

Bi' d

(u)=(di )i u(i−1)

(1−u)d−i

−(di )(d −i)ui

(1−u)d −i−1

(di )= d !

(d−i)! i !=(d −1

i−1 ) di

Bi' d

(u)=d (d−1i−1 )u(i−1)

(1−u)d−i

−d (d−1i )ui

(1−u)(d−1)−i

(di )= d !

(d−i)! i !=(d −1

i ) dd−i

d Bi−1d−1

(u) d Bid−1

(u)

QED

Page 72: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

83

Computer Graphics

Bézier curves

Recurrence relations of Bernstein's basis

... but no practical interest other than demonstrating algebraic relations (cf. following)

These polynomials are usually not computed explicitly

Bidu =1−u Bi

d−1uu Bi−1

d−1u

Bddu =u Bd−1

d−1u B0

du=1−uB0

d−1u

Page 73: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

84

Computer Graphics

Bézier curves

Demonstration of the recurrence relations

Bidu=d

i ui1−u

d −i (di )=(d−1

i )+ (d −1i−1 )

=(d −1i )⋅ui

(1−u)d −i

+ (d −1i−1 )⋅ui

(1−u)d −i

=(1−u)⋅(d −1i )⋅ui

(1−u)(d−1)−i

+ u⋅(d −1i−1 )⋅u(i−1)

(1−u)(d−1)−(i−1)

(1−u)⋅Bid −1

(u) u⋅Bi−1d −1

(u)

QED

Page 74: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

85

Computer Graphics

Bézier curves

Degree 4 No negative values

Therefore, no value above 1!

Page 75: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

86

Computer Graphics

Bézier curves

Degree 20 No extreme values

Therefore, no value above 1!

Existence of a limiting envelope

e (u)=1

√2 d π u(1−u)

e (u)

Page 76: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

87

Computer Graphics

Bézier curves

The characteristics of Bernstein polynomials involve that the Bézier curve

: interpolates P

0 et P

d ,

is invariant by affine transformations , is contained in the convex

hull of its control points(because P(u) is a combination with positive coefficients of control points – also called convex combination) ,

P u=∑i=0

d

Pi Bidu

Page 77: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

88

Computer Graphics

Bézier curves

(following) is variation diminishing : the curve has less inflexion

points (wiggles) than there are undulations of the characteristic polynomial (proof by the fact that a Bézier curve is obtained by recursive subdivision, see further ) ,

delimits a closed convex domain if the control polygon itself is convex and closed... ,

Its length is smaller than that of the control polygon.

Page 78: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

89

Computer Graphics

Bézier curves

Same examples as shown earlier on Lagrange interpolation

Circle with an increasing number of points Perturbation of the control points

Page 79: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

90

Computer Graphics

Bézier curves

Degree 2

Page 80: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

91

Computer Graphics

Bézier curves

Degree 4

Page 81: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

92

Computer Graphics

Bézier curves

Degree 10

Page 82: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

93

Computer Graphics

Bézier curves

Degree 20

Page 83: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

94

Computer Graphics

Bézier curves

When the number of control points increases, the curve tends to the control polygon (under the assumption that the control polygon itself converges to a smooth curve ... )

The approximation involves a substantial error between the curve and the control points

However, an interpolation is not the objective here...

Page 84: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

95

Computer Graphics

Bézier curves

Perturbation of a point We shift the indicated point

Page 85: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

96

Computer Graphics

Bézier curves

Degree 4

Page 86: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

97

Computer Graphics

Bézier curves

Degree 10

Page 87: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

98

Computer Graphics

Bézier curves

Degree 20

Page 88: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

99

Computer Graphics

Bézier curves

Editing Bézier curves Degree elevation Computation of points on the curve (De Casteljau's

algorithm and others ) Changing the range of a curve

Cutting, extension

Curves defined by pieces and recursive subdivision

Page 89: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

100

Computer Graphics

Degree elevation A curve of degree d+1 is able to represent any curve

of degree d If there aren't enough control points to design a given

shape, the degree may be increased... New control points must be determined (one more !) Forrest's equations [1972]

Q0=P0

Q i=i

d +1P i−1+(1−

id+1

) Pi for i=1,⋯ , d

Qd 1=P d

Bézier curves

Page 90: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

101

Computer Graphics

Bézier curves

Demonstration of Forrest's equations :

Let's express in function of

P (u)=∑i=0

d

P i Bid(u) Q (u)=∑

i=0

d+1

Q i Bid +1

(u)

Q (u)=P (u) ∀ u∈[0,1]

Bid(u)=(d

i )ui(1−u)

d−i

Bid +1

(u)Bid(u)

Bid +1

(u)=(d +1i )ui

(1−u)d−i+1

=(1−u)(d +1

i )

(di )

Bid(u)

Q i= f ( P0 ... P d)

Page 91: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

102

Computer Graphics

Bézier curves

We replace the terms of the binomial

(d +1i )=

(d +1) !(d +1−i)! i !

=(di ) d +1

d+1−i

Bi+1d +1

(u)=(d +1i+1 )ui+1

(1−u)d−i

=u(d +1

i+1 )

(di )

Bid(u)

(d +1i+1 )=

(d +1)!(d−i)!(i+1)!

=(di ) d +1

i+1

(di )= d !

(d−i)! i !

Bid +1

(u)=(1−u)d +1

d +1−iBi

d(u) Bi+1

d +1(u)=u

d +1i+1

Bid(u)

Page 92: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

103

Computer Graphics

Bézier curves

Bid(u)=

d +1−id +1

B id +1

(u)+i+1d +1

Bi+1d +1

(u)

Q (u)=P (u)⇒∑i=0

d +1

Qi Bid+1

(u)=∑i=0

d

P i( d +1−id+1

Bid+1

(u)+i+1d+1

Bi +1d+1

(u))=∑

i=0

d

P i(1−i

d +1 )Bid+1

(u)+∑i=1

d+1

P i−1i

d+1Bi

d+1(u)

=∑i=1

d

(P i(1−i

d+1 )+ P i−1i

d +1 ) Bid+1

(u)+ P0 B0d+1

(u)+ Pd Bd +1d +1

(u)

Qi

Qd +1

Q0

Bid(u)=(1−u) Bi

d(u)+u Bi

d(u) We split up Bi

d(u)

QED

Page 93: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

104

Computer Graphics

Bézier curves

Degree elevation in practice ...

Degree 4

Page 94: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

105

Computer Graphics

Bézier curves

Degree 5

Page 95: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

106

Computer Graphics

Bézier curves

Degree 6

Page 96: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

107

Computer Graphics

Bézier curves

Degree 7

Page 97: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

108

Computer Graphics

Bézier curves

Degree 8

Page 98: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

109

Computer Graphics

Bézier curves

Degree 9

Page 99: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

110

Computer Graphics

Bézier curves

Degree 21

Page 100: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

111

Computer Graphics

Bézier curves

De Casteljau's algorithm Allows the robust construction of points on the curve Very simple geometrical interpretation

Page 101: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

112

Computer Graphics

Bézier curves

Principle of De Casteljau's algorithm Construction of the centroids of the control points

: We continue with ....

As far as possible, until only one control point remains,That control point is P(u).

P i0

P i1

P i1=(1−u) P i

0+u P i+1

0

P i2

P0d

Page 102: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

113

Computer Graphics

Bézier curves

Kig

Page 103: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

114

Computer Graphics

Bézier curves

The algorithm is :

What is its complexity ? Consists of 3d(d+1) multiplications

and 3d(d+1)/2 additions , so quadratic with respect of the the degree d.

Initialization of For j from 1 to d For i from 0 to d-j

EndForEndFor is the point we want.

P ij=1−u Pi

j−1u Pi1

j−1

P0d

P i0

Page 104: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

115

Computer Graphics

Bézier curves

Demonstration with the help of recurrence relations

By gathering the terms :

by setting

P (u)=∑i=1

d−1

Pi ((1−u) Bid−1

(u)+u Bi−1d−1

(u))

+P0(1−u) B0d−1

(u)+ Pd uBd−1d−1

(u)

Bid(u)=(1−u) Bi

d−1(u)+u Bi−1

d−1(u)

Bdd(u)=u Bd−1

d−1(u) B0

d(u)=(1−u) B0

d−1(u)P u=∑

i=0

d

Pi Bidu

P (u)=∑i=0

d−1

[(1−u) P i+u P i+1 ] Bid−1

(u)

P i1=1−u Pi

0u Pi1

0

B id −1

u

P u=∑i=0

d −1

P i1 Bi

d−1u

Page 105: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

116

Computer Graphics

Bézier curves

We do it again with P u=∑i=0

d −1

P i1 Bi

d−1u

P(u)=∑i=1

d−2

Pi1((1−u)Bi

d−2(u)+ u Bi−1

d−2(u))

+ P01(1−u)B0

d−2(u)+ Pd−1

1 u Bd−2d−2

(u)

P u=∑i=0

d −2

Pi2 Bi

d −2u

P u=P0d B0

0u , B0

0u≡1 QED

P u=∑i=0

d −2

[1−u P i1u P i1

1 ] Bid −2

u

......

Page 106: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

117

Computer Graphics

Bézier curves

Evaluation with Horner's method We rewrite the polynomials to a monomial form

a i=M hP i M h=(1 0 0 ⋯ 0

−d d 0 ⋯ 0d (d−1)

2−d (d−1)

d (d−1)

2⋯ 0

⋮ ⋮

−1d−1 d d (d−1) ⋯ ⋯ 0

−1d−1d−1 d −1d−2 d (d−1)

2⋯ 1

)ai=d

i ∑j=0

i

−1i− j i

j P j

P u=∑i=0

d

Pi Bidu=∑

i=0

d

ai ui

Page 107: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

118

Computer Graphics

Bézier curves

Complexity of Horner's method : 3d multiplications + 3d additions ... without taking into

account the change of polynomial basis (to be done only once)

But : change of the internal representation Some authors have shown that numerical errors introduced during

the change of internal representation are substantial.

a i=M hP i

Page 108: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

119

Computer Graphics

Bézier curves

Method based on Bernstein polynomials We factor the terms in

This is a monomial form that can be evaluated with Horner's method – without any change of the internal representation (points P

i )

But beware when u → 1 !!!! We'd rather factor rather the terms , That gives :

P u=∑i=0

d

Pi Bidu=1−u

d∑i=0

d

Pi di u

1−u i

1−u d−i Bi

du =d

i ui1−u

d −i

ui

P u=∑i=0

d

Pi Bidu=ud∑

i=0

d

Pi di 1−u

u d −i

Page 109: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

120

Computer Graphics

Bézier curves

To summarize :

P u={1−u

d ∑i=0

d

P i di u

1−u i

, 0u≤12

ud ∑i=0

d

P i di 1−u

u d−i

, 12

u≤1

P(u)=(1−u)d(P0 P1 ⋯ P d)(

(d0 )

(d1) u

1−u

(d2)( u

1−u )2

(dd )( u

1−u )d )

Page 110: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

121

Computer Graphics

Bézier curves

Algorithmic complexity of the vectorial method Requires 6d multiplications and 3d additions. No change in the internal representation

Page 111: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

122

Computer Graphics

Bézier curves

Choice of algorithm ? Robustness

1 De Casteljau 2 Vectorial 3 Horner

Speed 1 Horner 2 Vectorial 3 De Casteljau *

De Casteljau

Vectorial

Horner

d

Tot

al f

lops

Page 112: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

123

Computer Graphics

Bézier curves

In practice The vectorial algorithm is often used to quickly

compute points for display purposes De Casteljau's algorithm is used for increased

robustness and ... It allows to obtain derivatives of curve (see later...) It allows interesting geometrical operations (see later …) If many points are to be computed, it may actually perform well (see

later !)

Page 113: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

124

Computer Graphics

Bézier curves

Restriction of a curve (cutting) Let us compute the intersection of two curves

We need a independent representation of each segment One wants 0<u<1 on each segment

Page 114: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

125

Computer Graphics

Bézier curves

Let us start from De Casteljau's geometrical construction

Page 115: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

126

Computer Graphics

Bézier curves

Let us start from De Casteljau's geometrical construction

The control polygon of the both parts is obtained from points coming from De Casteljau's algorithm !

Page 116: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

127

Computer Graphics

Bézier curves

Curve to trim

u=0

I0

P0

0

u=1

I1

P3

0

P1

0

P2

0

Page 117: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

128

Computer Graphics

Bézier curves

For a curve that we want to trim :

1 – Compute the intersection point I1 – at u=u

1 with help

of De Casteljau's algorithm – this gives the points Pij

Page 118: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

129

Computer Graphics

Bézier curves

1 – Compute the intersection point I1 – at u=u

1 with help

of De Casteljau's algorithm – this gives the points Pij

u=0

I0

P0

0

u=1

I1

P3

0

P1

0

P2

0

P01

P1

1

P2

1

P0

2

P1

2

P0

3

Page 119: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

130

Computer Graphics

Bézier curves

For a curve that we want to limit :

1 – Compute the intersection point I1 – at u=u

1 with help

of De Casteljau's algorithm – this gives the points Pij

2 – Among these points, consider the points P0

j : they are vertices of the characteristic polygon of the curve's restriction at the interval P

0-I

1 , and the new

parametrization is u*=u/u1

Page 120: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

131

Computer Graphics

Bézier curves

2 – Among these points, consider the points P0

j : they are vertices of the characteristic polygon of the curve's restriction at the interval P

0-I

1 , and the new

parametrization is u*=u/u1

u=0

I0

P0

0

u=1

I1

P01

P0

2

P0

3

u*=0

u*=1

Page 121: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

132

Computer Graphics

Bézier curves

For a curve that we want to limit :

1 – Compute the intersection point I1 – at u=u

1 with help

of De Casteljau's algorithm – this gives the points Pij

2 – Among these points, consider the points P0

j : they are vertices of the characteristic polygon of the curve's restriction at the interval P

0-I

1 , and the new

parametrization is u*=u/u1

3 – Calculate the intersection I0 on the new curve – at

u*=u*0 - gives the points P*

ij

Page 122: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

133

Computer Graphics

Bézier curves

3 – Calculate the intersection I0 on the new curve – at

u*=u*0 - gives the points P*

ij

P*21

P*1

1

P*0

1 P*0

3

P*0

2

P*1

2

u=0

I0

u=1

I1

P*2

0

P*3

0

u*=0

u*=1u

0*

P*1

0

P*0

0

Page 123: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

134

Computer Graphics

Bézier curves

For a curve that we want to limit :1 – Compute the intersection point I

1 – at u=u

1 with help

of De Casteljau's algorithm – this gives the points Pij

2 – Among these points, consider the points P0

j : they are vertices of the characteristic polygon of the curve's restriction at the interval P

0-I

1 , and the new

parametrization is u*=u/u1

3 – Calculate the intersection I0 on the new curve – at

u*=u*0 - gives the points P*

ij

4 – Consider the points P*id : vertices of the

characteristic polygon of the curve's restriction to the interval I

0-I

1 : new parametrization is u'=(u*-u*

0)/(1-u*

0)

Page 124: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

135

Computer Graphics

Bézier curves

4 – Consider the points P*id-i : vertices of the

characteristic polygon of the curve's restriction to the interval I

0-I

1 : new parametrization is u'=(u*-u*

0)/(1-u*

0)

P*21

P*0

3

P*1

2

u=0

I0

u=1

I1

P*3

0

u*=1

u*=0

u'=1u'=0

Page 125: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

136

Computer Graphics

Bézier curves

P'2

P'0

P'1

I0

I1

P'3

u'=1

u'=0

Page 126: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

137

Computer Graphics

Bézier curves

With the same algorithm, we can increase the parametric domain of a curve

Intersection with objects close but not touching the curve's extremities

Beware : Bézier curves are variation diminishing and convex combinations only when 0≤u≤1...

Page 127: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

138

Computer Graphics

Bézier curves

u=0.8u=0.1

Desired cutting points

Page 128: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

139

Computer Graphics

Bézier curves

Cutting for u=0.8

Page 129: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

140

Computer Graphics

Bézier curves

Cutting for u=0.8...and for u=0.1 (at u*=0.1/0.8)

Page 130: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

141

Computer Graphics

Bézier curves

Extension for u=1.1

Page 131: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

142

Computer Graphics

Bézier curves

Extension for u=1.1 and cutting for u=0.1 - at (new parameter) u*=0.1/1.1 ...

Page 132: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

143

Computer Graphics

Bézier curves

Curves defined by pieces Bézier curves do have a global control If we need local control, we have to assemble several

of them We have to impose some continuity at the interface points between

curves

Page 133: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

144

Computer Graphics

=d P0B−1d −1

−B0d−1

P1B0d−1

−B1d −1

P2B1d −1

−B2d−1

Pd Bd−1d−1

−Bdd −1

Bézier curves

Expression of the derivatives of a Bézier curve

with

By factoring :

dPdu

(u)=d ∑i=0

d−1

(P i+1−Pi)Bid−1

(u)

dPdu

u=∑i=0

d

Pi Bi' d

u Bi' d

=d Bi−1d −1

u −Bid−1

u

dPdu

u=d ∑i=0

d

Pi Bi−1d −1

u −Bid −1

u

Bid −1

u

=0

=0

P i'=P i+1−P i

Page 134: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

145

Computer Graphics

Bézier curves

First derivative

The control points P'0 and P'

d-1

are interpolated so the first derivativeat the extremities only depends

on the two first (resp. last) control points

dPdu

u=d ∑i=0

d −1

P i1−P i Bid−1

u

dPdu

u=d ∑i=0

d −1

Pi' Bi

d−1u

O P(u)

P2

P0

P1

P3

P'0

P'1

P'2

1d

dPdu

uO

First hodograph

Page 135: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

146

Computer Graphics

Bézier curves

Second derivative = derivative of the derivative

The control points P''0 and P''

d-2...

are interpolated, so the second derivative atthe extremities only depends on the three first (resp. last)control points

d 2 Pdu2 u=d−1d ∑

i=0

d−2

Pi1'

−P i' Bi

d−2u

d 2 Pdu2 u=d−1d ∑

i=0

d−2

Pi'' Bi

d −2u

P'0

P'1

P'2

1d

d Pd u

u

O1

d d −1

d 2 Pdu2 u

P''1

P''2

Second hodograph

Page 136: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

147

Computer Graphics

Bézier curves

Derivative of order k

The derivative of order k at the extremities only depends on the k+1 first (resp. last) control points.

Of course, there must be enough control points ... ( k < d+1 )

d k Pduk u=d −k1⋯d−1d ∑

i=0

d−k

Pi1(k-1)

−Pi(k-1)

Bid−k

u

d k P

duku=∏

l=1

k

d −l1∑i=0

d−k

P i(k) Bi

d −ku , Pi

(k)=P i1

(k-1)−Pi

(k-1)

=(Pi+ 2(k-2)

−2 Pi+ 1(k-2)

+ Pi(k-2)

)

=∑j=0

k

(−1)j

(dj ) P j+ i

(0)

Page 137: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

148

Computer Graphics

Bézier curves

Page 138: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

154

Computer Graphics

Bézier curves

Connecting two curves is the same as imposing constraints on the control points on both sides of the « sticking » point

We assume that the curves are regular

G0 continuity (positions) (same as C

0 continuity)

P0

P1

P3=P*

0

P*1

P*2

P*3

P2

Page 139: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

155

Computer Graphics

Bézier curves

G1 continuity ( C

1 continuity is more strict)

Minimum degree : 2

P0

P1

P3=P*

0

P*1 P*

2

P*3

P2

P d−1 Pd= P0* P1

* , > 0 (=1 for a C1 continuity )

Page 140: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

156

Computer Graphics

Bézier curves

G2 continuity ( C

2 continuity is more strict)

Continuity of the osculatory plane's orientation

Continuity of the curvature radius

Pd −Pd −1×Pd −1−Pd −2=P2*−P1

*×P1

*−P0

*

d‖Pd−1−Pd−2‖3

(d−1)‖(P d−P d−1)×(Pd−1−Pd−2)‖=

d *‖P1*−P0

*‖3

(d *−1)‖(P2

*−P1

*)×(P1

*−P0

*)‖

R=∥dP

du∥3

∥d 2 P

du2 ×dPdu∥

Page 141: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

157

Computer Graphics

Bézier curves

G2 continuity ( C

2 continuity is more strict)

Continuity of the osculatory plane's orientation

Continuity of the curvature radius

Pd −Pd −1×Pd −1−Pd −2=P2*−P1

*×P1

*−P0

*

P0

P1

P3=P*

0

P*1

P*2

P*3

P2

d‖Pd−1−Pd−2‖3

(d−1)‖(P d−P d−1)×(Pd−1−Pd−2)‖=

d *‖P1*−P0

*‖3

(d *−1)‖(P2

*−P1

*)×(P1

*−P0

*)‖

Page 142: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

158

Computer Graphics

Bézier curves

The Gk continuity with k > 2 in the general case is

complex to impose

The Ck continuity is easier to impose (simple

expression of higher order derivatives) Curve should be regular ! Same as imposing the continuity of functions x(u), y(u) and z(u) ,

independently of each other.

d k P

duku=∏

l=1

k

d−l1∑i=0

d−k

Pi(k) Bi

d−ku

Page 143: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

159

Computer Graphics

Bézier curves

C0 continuity

P0

P1

P3=P*

0

P*1

P*2

P*3

P2

Pd=P0*

Page 144: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

160

Computer Graphics

Bézier curves

C1 continuity

P0

P1

P3=P*

0

P*1

P*2

P*3

P2

P1*=Pd Pd−Pd −1

Page 145: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

161

Computer Graphics

Bézier curves

C2 continuity

P0

P1

P3=P*

0

P*1

P*2

P*3

P2

P2*=Pd−24P d−Pd−1

Page 146: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

162

Computer Graphics

Bézier curves

C3 continuity

P0

P1

P3=P*

0

P*1

P*2

P*3

P2

P3*=8 Pd−12 Pd −16 Pd −2−Pd −3

Page 147: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

163

Computer Graphics

Bézier curves

The curve has now a unique representation of degree 3.

P0

P*3

Page 148: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

164

Computer Graphics

Bézier curves

Recursive subdivision Allows to draw the curve quickly with the help of De

Casteljau's algorithm Idea : splitting up the curve in two parts at u=0.5, then these sub-

curves in four parts ( still for u*=0.5) and so on. The control points of the sub-curves are obtained like a residual of

the De Casteljau algorithm at each step The control points quickly converge toward the curve When the gap between the starting and ending points of each sub-

curves is lower than a factor (depends on the resolution), we join simply the points of the characteristic polygon by straight line segments.

It's a « divide and conquer » approach – a famous paradigm in software engineering.

Page 149: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

165

Computer Graphics

Bézier curves

0 subdivision

2 subdivisions

4 subdivisions

8 subdivisions

16 subdivisions

32 subdivisions

Page 150: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

166

Computer Graphics

Bézier curves

Cost of the recursive subdivision algorithm In for m levels of subdivision Number of generated points: For each point that is generated, the algorithm

becomes linear... Competitive in comparison with Horner It is not very accurate, nevertheless very robust.

O d 2⋅2m

d⋅2m

Page 151: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

167

Computer Graphics

B-Splines

Page 152: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

168

Computer Graphics

B-Splines

Three useful references :

R. Bartels, J.C. Beatty, B. A. Barsky, An introduction to Splines for use in Computer Graphics and Geometric Modeling, Morgan Kaufmann Publications,1987

JC.Léon, Modélisation et construction de surfaces pour la CFAO, Hermes, 1991

L. Piegl, W. Tiller, The NURBS Book, Second Edition, Springer , 1996

Page 153: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

169

Computer Graphics

B-Splines

Isaac J. Schoenberg (1946) Carl De Boor (1972-76) Maurice G. Cox (1972) Richard Riesenfeld (1973) Wolfgang Boehm (1980)

Page 154: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

170

Computer Graphics

B-Splines

For Bézier curves, the polynomial degree is directly related to the number of control points.

The control of the continuity between Bézier curves is not trivial

B-Splines are a generalization in the sense that the degree doesn't depend on the number of control points

One can impose every continuity at any point of the curve (we will see later how to do that)

They are polynomial curves, by pieces (Bézier curves have a unique polynomial representation along the interval of definition)

They may provide local control The parametrization can be freely chosen (with Bézier, it is fixed ,

usually 0<u<1. )

Page 155: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

171

Computer Graphics

B-Splines

Basis of Bézier curves :

The support of the basis functions is the interval [0..1] Continuity is , and between different Bézier curves

it is enforced by a wise choice of the Pi 's

B-splines basis

The basis functions Nid are piecewise polynomials

Have a compact support + satisfy partition of the unity The continuity is defined at the basis function's level.

P u=∑i=0

d

Pi Bidu

P u=∑i=0

n

Pi N idu

C∞

Page 156: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

172

Computer Graphics

B-Splines

The basis functions B-spline are defined by the nodal sequence and by the polynomials degree

of the curve

Nodal sequence: It is a series of values u

i (knots) of the parameter u of

the curve, not strictly increasing – there can be equal values.

ex. U={0,0,0,1,2,3,4,4,4}

Page 157: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

179

Computer Graphics

B-Splines

Constuction of B-Spline basis functions Truncated Power Function

It is a function of Cd-1 continuity

(u−ui)+

d={(u−ui)

d if u≥ui

0 otherwiseu

i

Page 158: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

180

Computer Graphics

B-Splines

Divided differences order one (similar to a simple derivative)

order 2 : application of the above formula twice...

[ui , ui1]U f U =f ui1− f ui

ui1−uiU is a hidden parameter ( variable used to differentiate)

[ui , ui+ 1 , ui+ 2]U f (U )=[ui+ 1 , ui+ 2]U f (U )−[ui , ui+ 1]U f (U )

ui+ 2−ui

[ui , ui+ 1 , ui+ 2]U f (U )=

f (ui+ 2)− f (ui+ 1)

ui+ 2−ui+ 1

−f (ui+ 1)− f (ui)

ui+ 1−ui

ui+ 2−ui

Page 159: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

181

Computer Graphics

B-Splines

At the order k

One assumed that

Properties (see Bartels, 1987)1- In the case where

2- if and

[ui ,⋯ , ui+k ] f =[ui+1 ,⋯ , ui+k ] f −[ui ,⋯ , ui+k−1] f

ui +k−ui

ui≠ui1≠ui2⋯

ui=ui1=ui2⋯

[ui ,⋯ , uik ] f =1k !

d k f

d uk ∣u=u i

ui≠ui + 1≠ui+ 2⋯ uiui1ui2⋯

[ui ,⋯ , uik ] f =1k !

d k f

d uk ∣u=u*

, uiu*uik

Page 160: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

182

Computer Graphics

B-Splines

3- is symmetric with respect to the knot vector

4- If f(u) is a polynomial of degree at the most equal to k , then

is a constant with respect to the ui.

5- The divided difference of f=g(u).h(u) is :

[ui ,⋯ , ui+ k ] f

[ui ,⋯ , ui+ k ] f

[ui ,⋯ , uik ] f = ∑j=i

j=ik

[ui ,⋯ , u j ] g ⋅[u j ,⋯ , uik ]h

Page 161: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

183

Computer Graphics

B-Splines

Divided differences and B-Splines

How to cancel quadratic terms ?→ subtract adjacent truncated power functions.

(u−u0)+2

u0

u1

u2

u3

u4

uk

(u−uk )+2

(u−u1)+2−(u−u0)+

2

u0

u1

u2

u3

u4

uk

(u−uk )+2

(u−uk )+2−(u−uk −1)+

2

uk-1

last term remains

Page 162: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

184

Computer Graphics

B-Splines

Problem, lower order terms are dependent on k

But, dividing by yields a divided difference :

(u−uk )+2−(u−uk −1)+

2

uk−uk −1

=[ uk −1 , uk ]U (u−U )+2

(uk −uk−1)

(u−uk)+2−(u−uk−1)+

2|u>uk=0⋅u2

+(uk−uk−1)⋅u+(uk−uk−1)(uk +uk −1)⋅1

u0

u1

u2

u3

u4

uk

(u−uk )+2

uk-1

last term remains

[ uk−1 , uk ]U (u−U )+2

[ u0 , u1 ]U (u−U )+2

Page 163: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

185

Computer Graphics

B-Splines

Now, cancel linear terms …

Same procedure : subtract adjacent terms.

u0

u1

u2

u3

u4

uk

(u−uk )+2

uk-1

last term remains

[ uk−1 , uk ]U (u−U )+2

[ u0 , u1 ]U (u−U )+2

u0

u1

u2

u3

u4

uk

(u−uk )+2

uk-1

Two last term remains

[ uk−1 , uk ]U (u−U )+2

[ u1 , u2 ]U (u−U )+2− [u0 , u1 ]U (u−U )+

2

Page 164: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

186

Computer Graphics

B-Splines

Again, lower order terms are dependent on k

Dividing by yields again a divided difference :

[ uk−1 , uk−2 ]U (u−U )+2−[uk , uk−1 ]U (u−U )+

2

uk−uk−2

=[uk−2 , uk−1 , uk ]U (u−U )+2

(uk −uk−2)

[uk −1 , uk−2 ]U (u−U )+2−[uk , uk −1 ]U (u−U )+

2|u>uk

=0⋅u+((uk +uk −1)−(uk −1+uk−2))⋅1=(uk−uk−2)⋅1

u0

u1

u2

u3

u4

uk

(u−uk )+2

uk-1

Two last term remains

[ uk−1 , uk ]U (u−U )+2

[u0 , u1 ,u2]U (u−U )+2

Page 165: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

187

Computer Graphics

B-Splines

Now, cancel constant terms …

Same procedure : subtract adjacent terms.

u0

u1

u2

u3

uk-2

uk

(u−uk )+2

uk-1

Three last term remains

[ uk−1 , uk ]U (u−U )+2

[ u1 , u2 ,u3 ]U (u−U )+2− [u0 , u1 , u2 ]U (u−U )+

2

u0

u1

u2

u3

u4

uk

(u−uk )+2

uk-1

Two last term remains

[ uk−1 , uk ]U (u−U )+2

[u0 , u1 ,u2]U (u−U )+2

Page 166: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

188

Computer Graphics

B-Splines

There are no lower order terms. However we might divide anyway by to remain consistent and get again an expression as a divided difference...

[ uk−2 , uk−1 , uk ]U (u−U )+2−[ uk−3 , uk−2 , uk−1 ]U (u−U )+

2

uk −uk−3

=[uk−3 , uk −2 , uk −1 , uk ]U (u−U )+2

(uk−uk −3)

u0

u1

u2

u3

uk-2

uk

(u−uk )+2

uk-1

Three last term remain

[ uk−1 , uk ]U (u−U )+2

[u0 , u1 ,u2 , u3]U (u−U )+2 [ uk−2 , uk−1 , uk ]U (u−U )+

2

Page 167: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

189

Computer Graphics

B-Splines

The sign is alternating with the degree. Shape function of even degree are negative, while SF of uneven degree are negative.

Multiplying by makes every SF positive. To ensure that the SF form a partition of unity , we

have to multiply again by The compact representation of the B-Splines basis

functions of degree d with the use of divided differences is therefore :

(−1)d +1

N id=(−1)

d+1(ui +d+1−ui)[ui ,⋯ , ui+d +1]U (u−U )+

d

(ui+d +1−ui)

Page 168: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

190

Computer Graphics

B-Splines

Proof of the partition of unity : consider the second last operation (the cancellation of constant terms)

We subtract consecutive terms to form the final shape functions Partition of unity means the sum of all the final shape functions is

equal to 1… that this is indeed the case only on a certain range of u.

u0

u1

u2

u3

u4

um-2

um-3

[um−2⋯um]U (u−U )+d

+-+

-+

-+

-...

um-1

um

1

More generally, there is partition of unity for , m+1 being the number of knots in the knot vector

ud≤u≤um−d

[u0⋯um]

K [um−d−1⋯um ]U (u−U )+d≡N m−d−1

d(u)N 0

d(u)

Page 169: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

193

Computer Graphics

B-Splines

Recursive definition of basis functions Setting

(nodal sequence) The functions are such as : (recurrence formula of

Cox – de Boor)

Where ui+d

- ui=0, necessarily

By convention, we set in this case when the limit is undefined.

U ={u0 ,⋯ , um} , ui≤ui1 , i=0⋯m−1

N idu=

u−ui

uid−ui

N id−1

u uid1−u

uid1−ui1

N i1d−1

u

N i0(u)={1 if ui≤u< ui+ 1

0 otherwise

00

=0

N id−1

u≡0

Page 170: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

194

Computer Graphics

B-Splines

Example : computation of basis functions of degree for U ={u0=0,u1=0,u2=0,u3=1,u4=1,u5=1}

N 00=0

N 10=0

N 20={1 0≤u< 1

0 otherwise

N 30=0

N 40=0

d ≤2

N 01=0

N 11={1−u 0≤u< 1

0 otherwise

N 21={u 0≤u< 1

0 otherwise

N 31=0

N 02={(1−u)

2 0≤u< 10 otherwise

N 12={2 u (1−u) 0≤u< 1

0 otherwise

N 22={u2 0≤u< 1

0 otherwise

Bernstein polynomials of degree 2

N 01u=

u−u0

u1−u0

N 00u

u2−u

u2−u1

N 10u

00

=0

by convention

Page 171: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

195

Computer Graphics

B-Splines

The Bernstein polynomials of degree d are a particular case of the B-splines basis

They correspond to a nodal sequence

Bézier curves are therefore a particular case of B-splines.

It is also possible to transform any B-spline into a sequence of Bézier curves – because the Bernstein polynomials form a complete basis of polynomials of degree d.

U B={u0=0,⋯ , ud =0,ud1=1,⋯ , u2 d1=1}

Page 172: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

196

Computer Graphics

B-Splines

Basis functions and control points In contrary to Bézier curves, the number of control

points is not imposed by the degree d Let m+1 the number of knots. We have n+1

independent basis functions at our hands For every basis function, we associate a control point

The number of control points is fixed by the relation n+1=m-d

P u=∑i=0

n

Pi N idu

Page 173: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

197

Computer Graphics

B-Splines

Types of nodal sequence... Uniform – The gap between two successive knots is constant

Periodic - The gap between the knots at the start of a nodal sequence is identical to the one at the end of the nodal sequence

Non uniform, interpolating – first and last control point are interpolated

In the sequel, except where indicated, we consider non uniform nodal sequences interpolating the first and last control points.

U ={a ,⋯, ad1

, ud1 ,⋯ , um−d −1 , b ,⋯, bd1

}

U ={u0 , u1 ,⋯ , um−d −1} , ui1−ui=k

U ={u0,⋯ , udd1

, ud1 ,⋯, um−d−1 , u ' 0,⋯ , u ' dd1

} , u ' i−ui=k

Page 174: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

198

Computer Graphics

B-Splines

U ={0,56

,106

,156

,206

,256

,5} d=0 m1=7 n1=6

Page 175: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

199

Computer Graphics

B-Splines

U ={0 ,0 ,1 ,2 ,3 ,4 ,5 ,5} d =1 m1=8 n1=6

Page 176: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

200

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,54

,104

,154

,5 , 5 ,5} d =2 m1=9 n1=6

Page 177: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

201

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0,53

,103

,5 , 5 ,5 ,5} d=3 m+1=10 n+1=6

Page 178: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

202

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0,0 ,52

, 5 ,5 ,5 ,5 ,5} d=4 m1=11 n1=6

Page 179: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

203

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0, 0 , 0 ,5,5 , 5 ,5 ,5 ,5} d =5 m1=12 n1=6Bernstein polynomials (with a factor on u)

Page 180: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

204

Computer Graphics

B-Splines

Properties of B-spline basis functions outside the interval Inside the interval , at most d+1 functions

are non zero : (always positive) For (forms a partition of

unity) All derivatives of exist inside the

interval . At a knot , is d-k times differentiable, k being the node multiplicity.

Except for d=0, reaches exactly one maximum

N idu=0 [ ui , ui +d+1[

[ ui , ui +1 [N *

d(u) N i−d

d ,⋯ , N id

N id(u)≥0 ∀ i , d and u

u∈[ ui , ui +1 [ , ∑j=i−d

i

N jd(u)=1

N idu

[ ui , ui1 [ N idu

N idu

Page 181: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

205

Computer Graphics

B-Splines

U ={0 , 0 ,0 ,0,1 , 2 ,3 ,4 ,5 ,5 ,5 ,5} d=3 m1=12 n1=8The knot u=3 is of multiplicity 1

Page 182: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

206

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0,1 , 2 ,3 ,3 ,5 ,5 , 5 ,5} d =3 m1=12 n1=8The node u=3 is of multiplicity 2

Page 183: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

207

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0,1 ,3 , 3 , 3 ,5 ,5 ,5 ,5} d=3 m1=12 n1=8The node u=3 is of multiplicity 3

Page 184: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

208

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0,3 ,3 ,3 , 3 ,5 ,5 ,5 ,5} d =3 m1=12 n1=8The node u=3 is of multiplicity 4

Curve 1 Curve 2

Page 185: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

210

Computer Graphics

B-Splines

The characteristics of basis functions involve that the B-Spline curve

interpolates P

0 and P

n ,(only if the nodal sequence

admits d+1 repetitions at the start and at the end !) is invariant by affine transformation , is contained by the convex hull of the control points

(because P(u) is a linear combination of the control points with positive coefficients which sum to one)

P u=∑i=0

n

Pi N idu U ={u0 ,⋯ , um} , ui≤ui1 , i=0⋯m−1

Page 186: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

211

Computer Graphics

B-Splines

(Following) Is variation diminishing : The number of inflexion

points is lower than the number of wiggles of the characteristic polygon

Is closed and convex if the characteristic polygon is closed and convex,

Is of length shorter or equal than that of the control polygon.

Is invariant by linear transformation of the nodal sequence u'=au+b , a>0

Page 187: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

212

Computer Graphics

B-Splines

Control points, degree and nodal sequence We associate a control point for each basis function

Ni* . We have n+1 control points.

The degree d is chosen by the user. The nodal sequence (that defines the intervals of the

parameter on which the curve has a unique polynomial definition) is then built. We have m+1=n+d+2 knots (with d+1 repetitions at the start and at the end)

there remains n-d values of the parameter to set (without taking into account the boundaries)

Page 188: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

213

Computer Graphics

B-Splines

Geometric examples Constant number of control points We increase the degree Uniform repartition of knots (except at the boundaries) For which degree do we have the best approximation

of the control points ??

Page 189: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

214

Computer Graphics

B-Splines

Degree 10 0 0.0833333 0.166667 0.25 0.333333 0.416667 0.5 0.583333 0.666667 0.75 0.833333 0.916667 1 1

Page 190: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

215

Computer Graphics

B-Splines

degree 20 0 0 0.0909091 0.181818 0.272727 0.363636 0.454545 0.545455 0.636364 0.727273 0.818182 0.909091 1 1 1

Page 191: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

216

Computer Graphics

B-Splines

degree 30 0 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 1 1

Page 192: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

217

Computer Graphics

B-Splines

degree 40 0 0 0 0 0.111111 0.222222 0.333333 0.444444 0.555556 0.666667 0.777778 0.888889 1 1 1 1 1

Page 193: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

218

Computer Graphics

B-Splines

degree 60 0 0 0 0 0 0 0.142857 0.285714 0.428571 0.571429 0.714286 0.857143 1 1 1 1 1 1 1

Page 194: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

219

Computer Graphics

B-Splines

degree 100 0 0 0 0 0 0 0 0 0 0 0.333333 0.666667 1 1 1 1 1 1 1 1 1 1 1

Page 195: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

220

Computer Graphics

B-Splines

degree 12 (Bézier)0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1

Page 196: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

221

Computer Graphics

B-Splines

Impose interpolation points (and C0 continuity )

It is the same as positioning knots of multiplicity d in the nodal sequence

One could also repeat d control points...(not shown here)

Page 197: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

222

Computer Graphics

B-Splines

degree 3 0 0 0 0 0.1 0.2 0.5 0.5 0.5 0.7 0.9 0.9 0.9 1 1 1 1

u=0

u=0.1

u=0.2

u=0.5

u=0.7

u=0.9

u=1

Page 198: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

223

Computer Graphics

B-Splines

degree 3 (4 Bézier curves of continuity C0)

0 0 0 0 0.1 0.1 0.1 0.5 0.5 0.5 0.9 0.9 0.9 1 1 1 1

u=0.1

u=0.5u=0.9

u=0

u=1

Page 199: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

224

Computer Graphics

B-Splines

degree 3 (3 Bézier curves of continuity C0 + 1 bspline deg 3 with 4control pts)

0 0 0 0 0.1 0.1 0.1 0.4 0.4 0.4 0.8 0.8 0.8 0.9 1 1 1 1

u=0.1

u=0.4u=0.8

u=0

u=1

u=0.9

Page 200: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

225

Computer Graphics

B-Splines

And if we want to impose interpolation points and a certain continuity C

k ?

Add / align control points in a similar way than in the case of Bézier curves.

Page 201: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

226

Computer Graphics

B-Splines

Page 202: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

227

Computer Graphics

B-Splines

Periodic curves They may be represented by modifying the nodal

sequence and by repeating some control points.

Non-uniform nodal sequence

Uniform nodal sequence

uniform nodal sequenceand periodic curve

Page 203: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

228

Computer Graphics

B-Splines

degree 3 0 0 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 1 1

non uniform nodal sequence interpolating the first and last control points.

Page 204: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

229

Computer Graphics

B-Splines

degree 3 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3

Periodic nodal sequence(but control points located in a non adequate way)

Page 205: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

230

Computer Graphics

B-Splines

degree 3 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3

Page 206: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

231

Computer Graphics

B-Splines

degree 3 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3

Page 207: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

232

Computer Graphics

B-Splines

degree 3 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3

Periodic nodal sequence+ control points placed in an adequate way (repeated)= periodic curve

Page 208: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

233

Computer Graphics

B-Splines

Algorithms for the manipulation of B-Splines curves

Boehm's knot insertion algorithm Evaluation of the curve (Cox-de Boor algorithm) Derivatives and hodographs Restriction/growth of the useful interval of a curve Degree elevation Recursive Subdivision

Page 209: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

234

Computer Graphics

B-Splines

Boehm's knot insertion algorithm

The idea is to determine a new control polygon for the same curve after the insertion of one or several knots in the nodal sequence.

The curve is not modified by this change : neither the shape nor the parametrization are affected.

Interest : Evaluation of points on the curve Subdivision of the curve Addition of control points

Page 210: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

235

Computer Graphics

B-Splines

Let a B-Spline curve built on the nodal sequence :

Let a knot to be inserted The new nodal sequence is :

The new representation of the curve is :

The are the basis functions defined on , the are the n+2 new control points.

How define the so that the shape is unchanged ?

P u=∑i=0

n

Pi N idu

U ={u0 ,⋯ , um}

u∈[ uk , uk 1 [

U ={u0=u0 ,⋯ ,uk=uk ,uk 1=u ,⋯,um1=um}

P u=∑i=0

n1

QiN i

du

N idu U Qi

Qi

Page 211: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

241

Computer Graphics

B-Splines

After algebraic manipulations... we obtain

We had :

so finally :

Qk−d=Pk −d

Q i=α i P i+(1−αi)P i−1 for i∈{k−d +1 ,⋯, k }

Qk +1=P k

P i=Q i for i∈{0 ,⋯ , k−d−1}P i=Q i +1 for i∈{k +1 ,⋯, n}

Q i=α i P i+(1−αi)P i−1 with αi={1 i≤k−d

u−ui

ui+ p−ui

k−d +1≤i≤k

0 i≥k +1

Page 212: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

242

Computer Graphics

B-Splines

Multiple knot insertions Assume of multiplicity s ( ). We

want to insert it r times with .

We note Qir the control points of the r-th insertion step

We have then :

u∈[ uk , uk 1 [rs≤d

0≤sd

Q ir=α i

r Q ir−1

+(1−αir)Q i−1

r−1 with αir={

1 i≤k−d +r−1u−ui

ui +d−r +1−ui

k−d +r≤i≤k−s

0 i≥k−s+1

Page 213: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

243

Computer Graphics

Q k−d11

Qk−d 22

Qk−d21

⋮ ⋮ ⋯ Q kd

Qk −11

Qk2

Qk1

B-Splines

The Q's can be put in a table:

The total number of new control points is d-s+r-1 that replace d-s-1.

Page 214: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

244

Computer Graphics

B-Splines

The use of the algorithm of node insertion up to multiplicity of d=r+s is such that the curve will interpolate the last control point that is computed.

Therefore, one can use this algorithm to compute the position of a point of the curve knowing the parameter.

It's precisely Cox-de Boor's algorithm. The sequence of points Pij is

not anything else than the Qij indicated on the graph, cf following

Q k− d11

Q k −d22

Q k− d21

⋮ ⋮ ⋯ Q kd

Q k −11

Q k2

Q k1

Page 215: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

245

Computer Graphics

B-Splines

Case r+s=d+1 : We carry out the insertion of multiplicity r-1 then we insert one more knot to « cut » the B-spline curve in two independent parts.

The last control point has to be duplicated. Allows to extract a portion of the B-spline.

There exists an extension of this algorithm in the case of the simultaneous insertion of many knots: it is the somewhat more complex “Oslo” algorithm*

Qkd

* E. Cohen, T. Lyche, R. Riesenfeld “Discrete B-splines ans subdivision techniques in computer-aided geometric design and computer graphics”, Computer Graphics and Image Processing, 14(2):87-111, 1980.

Page 216: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

246

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 , 0 , 1 ,1 , 1 ,1 ,1 ,1}

degree 5

Page 217: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

247

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 , 0 , 1 ,1 , 1 ,1 ,1 ,1}

degree 5

Page 218: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

248

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 , 0 , 1 ,1 , 1 ,1 ,1 ,1}

degree 5

Page 219: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

249

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 , 0 ,0.2 , 1 ,1 ,1 ,1 ,1 ,1}

degree 5

Page 220: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

250

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 , 0 , 0.2 , 0.4 ,1 ,1 ,1 ,1 , 1 ,1}

degree 5

Page 221: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

251

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 , 0 , 0.2 , 0.4 ,0.6 ,1 ,1 , 1 ,1 ,1 ,1}

degree 5

Page 222: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

252

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 , 0 , 0.2 , 0.4 ,0.6 ,0.8 ,1 ,1 ,1 ,1 ,1 , 1}

degree 5

Page 223: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

253

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 ,0 , 0.1 , 0.2 ,⋯ ,0.9 ,1 ,1 ,1 ,1 ,1 ,1}

degree 5

Page 224: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

254

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 ,0 , 0.05 ,0.1 ,⋯ ,0.95 , 1 ,1 ,1 ,1 ,1 ,1}

degree 5

Page 225: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

255

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 ,0 , 0.05 ,0.1 ,⋯ ,0.95 , 1 ,1 ,1 ,1 ,1 ,1}

degree 5Local control...

Page 226: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

256

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 , 0 , 1 ,1 , 1 ,1 ,1 ,1}

degree 5

Page 227: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

257

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 , 0 ,0.3 ,1 ,1 ,1 ,1 ,1 , 1}

degree 5

Page 228: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

258

Computer Graphics

B-Splines

U ={0 ,0 , 0 ,0 ,0 , 0 , 0.3 , 0.3 ,1 , 1 ,1 ,1 ,1 ,1}

degree 5

Page 229: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

259

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 , 0 , 0.3 , 0.3 ,0.3 ,1 ,1 ,1 ,1 , 1 ,1}

degree 5

Page 230: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

260

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 ,0 , 0.3 , 0.3 ,0.3 ,0.3 , 1 ,1 ,1 ,1 ,1 ,1}

degree 5

Page 231: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

261

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 , 0 , 0.3 , 0.3 ,0.3 ,0.3 , 0.3 ,1 ,1 ,1 , 1 ,1 ,1}

degree 5

Page 232: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

262

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,0 , 0 , 0.3 , 0.3 ,0.3 ,0.3 , 0.3 ,1 ,1 ,1 , 1 ,1 ,1}

degree 5

Page 233: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

263

Computer Graphics

B-Splines

Computation of a point on a B-Spline curve By the use of basis functions

1 – Find the nodal interval in which u is located

2 – Calculate the non vanishing basis functions

3 – Multiply the values of these basis functions with the right control points

By Cox-de Boor's algorithm

u∈[ ui , ui1 [

N i−dd

u ,⋯, N idu

P u=∑k

N kdu P k i−d ≤k≤i

Page 234: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

264

Computer Graphics

B-Splines

(simplified) Cox-de Boor's Algorithm :

What is its complexity ? quadratic in function of the degree d.

Determine the interval of u : Initialization of For k from 1 to d For j from i to i-d+k

EndforEndfor is the point that is sought.

P jk= u−u j

u jd 1−k−u j P j

k−1 u jd1−k −u

u jd 1−k−u j P j−1

k−1

P id

P j0

u∈[ ui , ui1 [i∈{d , d1,⋯ , m−d−1}

Page 235: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

265

Computer Graphics

B-Splines

Example of computation

Determination of the interval

Iteration 1

Iteration 2

Iteration 3

P00=0 ,1 P1

0=2 ,3 P2

0=5 ,4 P3

0=7 ,1 P 4

0=6 ,−1 P5

0=6 ,−2

U ={0 , 0 ,0 ,0 ,1 ,2 ,3 ,3 , 3 , 3} d =3 u=3/2

1≤3/2<2 , u4=1 → i=4

P 41=(27/4 ,1 /2) P3

1=(6 ,5/2) P2

1=(17 /4 ,15/5)

P 42=(99 /16 , 2) P3

2=(89/16 , 45/16)

P 43=(47 /8 , 77 /32)=P (3/2)

P jk=(

u−u j

u j+ d+1−k−u j) P j

k −1+(

u j +d +1−k−u

u j+d+1−k−u j) P j−1

k−1

JC Leon

Page 236: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

266

Computer Graphics

B-Splines

The algorithm is similar to De Casteljau's algorithm for Bézier curves

It is built on a restriction of the set of control points (d+1 points) On this restriction, it is identical, except for the coefficients related to

the nodal sequence (which is potentially non uniform) The complete algorithm is somewhat longer than this one

(possibility to have 0/0 : we set conventionally 0/0 = 0 !)

Page 237: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

267

Computer Graphics

B-Splines

Transformation of a B-Spline curve into a composite Bézier curve

We saturate each distinct knot until its multiplicity is equal to d.

This is made with the help of Boehm's algorithm of nodal insertion.

The curve is not modified !

We obtain a nodal sequence which has the following form :

Each distinct value of u corresponds to one of the points of the curve.

U ={a , a , a ,a⏟d+ 1 times

, b ,b , b⏟d times

, c , c , c⏟d times

,⋯ , z , z , z , z⏟d+ 1 times

}

Page 238: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

268

Computer Graphics

B-Splines

U ={0 ,0 , 0 ,0 ,1 , 2 ,3 ,3 , 3 ,3}

degree 3

Page 239: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

269

Computer Graphics

B-Splines

U ={0 ,0 , 0 ,0 ,1 , 1 ,2 ,3 , 3 ,3 ,3}

Page 240: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

270

Computer Graphics

B-Splines

U ={0 ,0 , 0 ,0 ,1 , 1 ,1 , 2 ,3 ,3 ,3 ,3}

Page 241: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

271

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,1 ,1 ,1 ,2 ,2 ,3 , 3 ,3 ,3}

Page 242: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

272

Computer Graphics

B-Splines

U ={0 , 0 , 0 ,0 ,1 ,1 ,1 ,2 ,2 ,2 ,3 ,3 ,3 ,3}

Page 243: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

273

Computer Graphics

B-Splines

Bézier n°3 Bézier n°2 Bézier n°1 4 CP 4 CP 4 CPdegree 3 degree 3 degree 3

Page 244: Introduction Images and display techniques › infographie › computer_graphics_03.pdf · Realistic rendering by ray tracing ... L. Piegl, W. Tiller, The NURBS Book, Second Edition,

274

Computer Graphics

B-Splines

Some conclusions Flexibility Low order Continuity Periodic curves Conics ?