Tải bản đầy đủ (.pdf) (11 trang)

Bài giảng Đồ họa hiện thực ảo: Bài 7 - Lê Tấn Hùng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.05 MB, 11 trang )

CNTT-DHBK Hanoi


Đường cong - Curve

Đường cong trong không gian
3D CURVE

Why use curves? Quỹ đạo chuyển động của 1 điểm trong
không gian
Đường cong biểu diễn Điểm -curve represents points:
Điểm Biểu diễnvà kiểm soát đường cong -Points representand control-the curve.
Cách tiếp cận này là cơ sở của lĩnh vực Computer Aided Geometric
Design (CAGD).

(c) SE/FIT/HUT 2002

(c) SE/FIT/HUT 2002

Phân loại

2

Biểu diễn Đường cong

Trên cơ sở ràng buộc giữa điểm và đường trong cả ứng dụng khoa học và
thiết kế ta co thể phân làm 2 loại:
Xấp xỉ-Approximation -

Được ứng dụng trong mô hình hoá hình học
Nội suy-Interpolation



Trong thiết kế nôi suy là cần thiết với các đối tượng nhưng không phù hợp
với các đối tượng có hình dáng bất kỳ "free form“.

(c) SE/FIT/HUT 2002

3

Đường cong tham biến

Tường minh y=f(x)
y = f(x), z = g(x)
impossible to get multiple values for a single
x
• break curves like circles and ellipses
into segments
not invariant with rotation
• rotation might require further segment
breaking
problem with curves with vertical tangents
• infinite slope is difficult to represent
Không tường minh f(x,y)=0 - Implicit equations:
f(x,y,z) = 0
equation may have more solutions than we
want
• circle: x² + y² = 1, half circle: ?
problem to join curve segments together
• difficult to determine if their tangent
directions agree at their joint point


(c) SE/FIT/HUT 2002

4

Parametric Curves

Biểu diễn các đường cong tham biến Parametric representation:

We have seen the parametric form for a line:

x = x0t + (1 − t ) x1

x = x(t), y = y(t), z = z(t)
overcomes problems with explicit and implicit forms
no geometric slopes (which may be infinite)
parametric tangent vectors instead (never infinite)
a curve is approximated by a piecewise polynomial curve

y = y0t + (1 − t ) y1
z = z0t + (1 − t ) z1

Note that x, y and z are each given by an equation that
involves:

Define a parameter space
1D for curves
2D for surfaces

The parameter t
Some user specified control points, x0 and x1


Define a mapping from parameter space to 3D points
A function that takes parameter values and gives back 3D points

This is an example of a parametric curve

The result is a parametric curve or surface

Mapping F :t → (x, y, z)
0

1

t
(c) SE/FIT/HUT 2002

CuuDuongThanCong.com

5

(c) SE/FIT/HUT 2002

/>
6

1


CNTT-DHBK Hanoi



Đường cong đa thức bậc ba

Đường cong bậc 3

Phải đảm bảo là đường cong không gian với 3 trục toạ độ x, y, z
tránh được những tính toán phức tạp và những phần nhấp nhô ngoài ý
muốn xuất hiện ở những đường đa thức bậc cao
Why cubic?

x = a1 + b1u + c1u2 + d1u3
y = a2 + b2u + c2u2 + d2u3
z = a3 + b3u + c3u2 + d3u3
Với 3 điểm P0, P1, P2, P3 phương trình
xác định
P'1

p3
P1

p2
P'0

P0

P0

7

(c) SE/FIT/HUT 2002


Hermite Spline

P1

(c) SE/FIT/HUT 2002

8

Đường cong Hermite

A spline is a parametric curve defined by control points
The term spline dates from engineering drawing, where a spline was a piece
of flexible wood used to draw smooth curves
The control points are adjusted by the user to control the shape of the curve

p = p(u) = k0 + k1u + k2u2 + k3u3
p(u) = ∑kiui i∈n

Phương pháp Hermite dựa trên cơ sở của cách biểu diễn Ferguson hay Coons
năm 60
A Hermite spline is a curve for which the user provides:
The endpoints of the curve
The parametric derivatives of the curve at the endpoints
• The parametric derivatives are dx/dt, dy/dt, dz/dt
That is enough to define a cubic Hermite spline, more derivatives are required
for higher order curves

p0 và p1 ta có hai độ dốc p0’ và p1’ với u = 0 và u = 1 tại hai
điểm đầu cuối của đoạn [0,1].

We have constraints:

(c) SE/FIT/HUT 2002

The curve must pass through p0 when u=0
The derivative must be p’0 when u=0
The curve must pass through p1 when u=1
The derivative must be p’1 when u=1

9

(c) SE/FIT/HUT 2002

10

Basis Functions
A point on a Hermite curve is obtained by multiplying each control point
by some function and summing
The functions are called basis functions

Thay vào:
p = p(u) = p0(1-3u2+2u3) + p1(3u2-2u3)
+ p0’(u-2u2+u3) + p1’(-u2+u3)

p = p(u) = [ 1 u u2 u3 ]

(c) SE/FIT/HUT 2002

CuuDuongThanCong.com


11

(c) SE/FIT/HUT 2002

/>
12

2


CNTT-DHBK Hanoi


Đường cong Bezier
Sử dụng điểm và các vector kiểm soát được độ dốc của đường
cong tại nhưng điểm mà nó đi qua.(Hermit)
không được thuận lợi cho việc thiết kế tương tác, không tiếp cận
vào các độ dốc của đường cong bằng các giá trị số (Hermite).
Paul Bezier, RENAULT, 1970 đường và bề mặt UNISURF

po, p3 tương đương với p0, p1 trên đường Hermite. diểm trung
gian p1, p2 được xác định bằng 1/3 theo độ dài của vector tiếp
tuyến tại điểm po và p3
p0’ = 3(p1 – p0)
p3’ = 3(p3 – p2)
p = p(u) = p0(1-3u2+2u3) + p1(3u2-2u3) + p0’(u-2u2+u3) + p1’(u 2 + u 3)
p = p(u) = p0(1 - 3u + 3u2 - u3) + p1(3u-6u2-3u3)
+ p2(3u2 - 3u3) + p3u3

13


(c) SE/FIT/HUT 2002

14

(c) SE/FIT/HUT 2002

Biểu diễn Ma trận

Ưu điểm

1.2
1
0.8

B0
B1
B2
B3

0.6
0.4
0.2
0

0
0
1

0

− 3 3
p = p(u) = [ 1 u u2 u3 ]  3 − 6 3

− 1 3 − 3
(c) SE/FIT/HUT 2002

0

0
0

1

dễ dàng kiểm soát hi`nh dạng của đường cong hơn vector tiếp
tuyến tại p0’ và p1’ của Hermite.
Nằm trong đa giác kiểm soát với số điểm trung gian tuỳ ý( số
bậc tuỳ ý)
đi qua điểm đầu và điểm cuối của đa giác kiểm soát, tiếp xúc với
cặp hai vector của đầu cuối đó

 p0 
p 
 1
 p2 
 
 p3 
15

Example
Bezier Curves


16

(c) SE/FIT/HUT 2002

Sub-Dividing Bezier Curves
M12

P1
M012

[UW]

M0123

P2
M123

M01

M23

P0

(c) SE/FIT/HUT 2002

CuuDuongThanCong.com

17


P3

(c) SE/FIT/HUT 2002

/>
18

3


CNTT-DHBK Hanoi


Sub-Dividing Bezier Curves

Sub-Dividing Bezier Curves

P1

P2

P0

Step 1: Find the midpoints of the lines joining the original control vertices.
Call them M01, M12, M23
Step 2: Find the midpoints of the lines joining M01, M12 and M12, M23. Call
them M012, M123
Step 3: Find the midpoint of the line joining M012, M123. Call it M0123
The curve with control points P0, M01, M012 and M0123 exactly follows the
original curve from the point with t=0 to the point with t=0.5

The curve with control points M0123 , M123 , M23 and P3 exactly follows the
original curve from the point with t=0.5 to the point with t=1

P3

19

(c) SE/FIT/HUT 2002

de Casteljau’s Algorithm

P2

n

i =0

Bi ,n (u ) = C ( n, i )u i (1 − u ) n −i

t=0.25

p0 ... pn : vector vị trí của đa giác n+1 đỉnh
n!
C( n, i) =
i! ( n − i)!

M01
P3
21


(c) SE/FIT/HUT 2002

22

Review:
Bézier Curve Prop’s [1/6]

Tính chất
P0 và Pn nằm trên đường cong.
Đường cong liên tục và có đạo hàm liên tục tất cả các bậc
Tiếp tuyến của đường cong tại điểm P0 là đường P0P1 và tại
Pn là đường Pn-1Pn .
Đường cong nằm trong đường bao lồi convex hull của các
điểm kiểm soát.
This is because each successive Pi(j) is a convex
combination of the points Pi(j-1) and Pi-1(j-1) .
P1 ,P2 , … ,Pn-1 nằm trên đường cong khi và chỉ khi
đường cong là đoạn thẳng.
(c) SE/FIT/HUT 2002

CuuDuongThanCong.com

n

p(u ) = ∑ Bi ,n (u ) pi
p′(u ) = n ∑ Bi ,n −1 (u )( pi +1 − Pi )

M23

(c) SE/FIT/HUT 2002


Tổng quát hoá với n +1 điểm kiểm soát
i =0

M12

P0

20

Biểu thức Bezier-Bernstain

You can find the point on a Bezier curve for any parameter value t with a similar
algorithm
Say you want t=0.25, instead of taking midpoints take points 0.25 of the way

P1

(c) SE/FIT/HUT 2002

23

We looked at some properties of Bézier curves.
Generally “Good” Properties
Endpoint Interpolation
Smooth Joining
Affine Invariance
Convex-Hull Property

Generally “Bad” Properties

Not Interpolating
No Local Control

(c) SE/FIT/HUT 2002

/>
24

4


CNTT-DHBK Hanoi


Problem with Bezier Curves

Invariance
Translational invariance means that translating the control points and then
evaluating the curve is the same as evaluating and then translating the curve
Rotational invariance means that rotating the control points and then evaluating
the curve is the same as evaluating and then rotating the curve
These properties are essential for parametric curves used in graphics
It is easy to prove that Bezier curves, Hermite curves and everything else we will
study are translation and rotation invariant
Some forms of curves, rational splines, are also perspective invariant

To make a long continuous curve with Bezier segments
requires using many segments
Maintaining continuity requires constraints on the control
point positions

The user cannot arbitrarily move control vertices and automatically
maintain continuity
The constraints must be explicitly maintained
It is not intuitive to have control points that are not free

(c) SE/FIT/HUT 2002

Can do perspective transform of control points and then evaluate the curve

25

Longer Curves

Piecewise Bezier Curve

A single cubic Bezier or Hermite curve can only capture a small class of curves

P0,1

At most 2 inflection points

P0,2

One solution is to raise the degree

“knot”

Allows more control, at the expense of more control points and higher degree
polynomials
Control is not local, one control point influences entire curve


P0,0

Total curve can be broken into pieces, each of which is cubic
Local control: Each control point only influences a limited part of the curve
Interaction and design is much easier

(c) SE/FIT/HUT 2002

P1,3

P0,3
P1,0

Alternate, most common solution is to join pieces of cubic curve together into
piecewise cubic curves

P1,1

27

Continuity

P1,2

(c) SE/FIT/HUT 2002

28

Đường bậc ba Spline


When two curves are joined, we typically want some degree of continuity
across the boundary (the knot)
C0, “C-zero”, point-wise continuous, curves share the same point where they
join
C1, “C-one”, continuous derivatives, curves share the same parametric
derivatives where they join
C2, “C-two”, continuous second derivatives, curves share the same parametric
second derivatives where they join
Higher orders possible

Question: How do we ensure that two Hermite curves are C1 across a
knot?
Question: How do we ensure that two Bezier curves are C0, or C1, or C2
across a knot?

(c) SE/FIT/HUT 2002

CuuDuongThanCong.com

26

(c) SE/FIT/HUT 2002

29

Spline đi qua n điểm cho trước mà mỗi đoạn là đường bậc ba
độc lập có độ dốc và độ cong liên tục tại mỗi điểm kiểm soát
hay điểm nút
Với n điểm:n-1 đoạn với mỗi đoạn 4 vector hệ số 4(n-1) cho

n-1 đoạn, và 2(n-1) điều kiện biên và n-2 điều kiện về độ dốc
cùng n-2 về độ cong
Spline dùng để chỉ phương pháp biểu diễn đường cong mềm
thông qua các đoạn cong tham biến bậc ba với các điều kiện
liên tục tại các điểm đầu nút

(c) SE/FIT/HUT 2002

/>
30

5


CNTT-DHBK Hanoi


Đường cong bậc ba
Spline

Achieving Continuity
For Hermite curves, the user specifies the derivatives, so C1 is achieved
simply by sharing points and derivatives across the knot
For Bezier curves:

u0 = 0 với : (u0 ... un-1)
uj+1 > uj
ui+1 = ui + di+1
C0 để không có sự gián đoạn giữa hai đoạn cong.
C1 tính liên tục bậc nhất hay đạo hàm bậc nhất tại điểm nối.

C2 đạo hàm bậc hai liên tục của đường cong tại điểm nối

They interpolate their endpoints, so C0 is achieved by sharing control points
The parametric derivative is a constant multiple of the vector joining the
first/last 2 control points
So C1 is achieved by setting P0,3=P1,0=J, and making P0,2 and J and P1,1
collinear, with J-P0,2=P1,1-J
C2 comes from further constraints on P0,1 and P1,2

31

(c) SE/FIT/HUT 2002

Bezier Continuity
P0,1

(c) SE/FIT/HUT 2002

32

B-splines
B-splines automatically take care of continuity, with exactly one control
vertex per curve segment
Many types of B-splines: degree may be different (linear, quadratic,
cubic,…) and they may be uniform or non-uniform

P0,2

P0,0


P1,3

J

P1,1

We will only look closely at uniform B-splines

With uniform B-splines, continuity is always one degree lower than the
degree of each curve piece

P1,2

Linear B-splines have C0 continuity, cubic have C2, etc

Disclaimer: PowerPoint curves are not Bezier curves, they are
interpolating piecewise quadratic curves! This diagram is an
approximation.

(c) SE/FIT/HUT 2002

33

(c) SE/FIT/HUT 2002

34

B-Splines:
The Idea [1/2]


Đường cong B-spline

The repeated-lirping idea that produced the Bézier curves has the
drawbacks that is produces polynomials with high degree that are nonzero
almost everywhere.

Đường cong B-spline là đường cong được sinh ra từ đa giác
kiểm soát mà bậc của nó không phụ thuộc vào số đỉnh của đa
giác kiểm soát.

Using functions defined in pieces, we can fix these two.

Start: An order-1 B-Spline has blending functions that are always either 1
or 0. When a function is 1, all the rest are zero.
So an order-1 B-spline is just a sequence of points.
Any number of control points may be used.

Now we make higher-order B-splines using a repeated-lirping procedure.
But this time, we can use any number of control points.

(c) SE/FIT/HUT 2002

CuuDuongThanCong.com

35

(c) SE/FIT/HUT 2002

/>
36


6


CNTT-DHBK Hanoi


B-Splines:
The Idea [2/2]

B-Splines

We form an order-2 B-Spline by lirping between the order-1 blending functions.
As discussed, we get functions that start at 0, ramp up to 1 and back down, then stay at
zero. Each function is 0 most of the time.
So each blending function is defined in pieces. Each piece is a polynomial of degree 1
(graph is a line).
So an order-2 B-spline is just the control polygon.
Again, any number of control points may be used.

Types of B-Splines Approximation Curves Used
B-Spline approximations can be classified based on the
spacing of the knot vector and the use of weights.
1. Uniform/Periodic B-splines : The spacing is
unform and the knots (control points) are equispaced e.g.
[0,1,2,3,4,5] These have satisfactory smoothness but lack
local control and the starting and ending poits are ill
defined as above.
2. Non-periodic: The knots are repeated at the ends m
times and the interior is equispaced. e.g. [0 0 0 1 2 3 3 3

] These can be used to force the control point to start
and finish at a control point.
3. Non-uniform B-Splines : The spacing is nonuniform and or repeated knots e.g. [0 1 1 2 4 5 6 6
] These can be used to obtain local control

We form an order-3 B-Spline by lirping between the order-2 blending functions.
Now blending functions are smooth. They start at 0, curve up to 1 then back down.
Again, each function is 0 most of the time.
Again, each blending function is defined in pieces. Each piece is a polynomial of
degree 2.

We continue this repeated-lirping procedure to define B-splines of higher order.
See the blue book for details and graphs.

37

(c) SE/FIT/HUT 2002

(c) SE/FIT/HUT 2002

Ví dụ: Uniform Cubic B-spline on
[0,1]

Basis Functions on [0,1]

Four control points are required to define the curve for 0≤t<1 (t is the
parameter)
Not surprising for a cubic curve with 4 degrees of freedom

B1,4


0.7

The equation looks just like a Bezier curve, but with different basis functions
Also called blending functions - they describe how to blend the control points to
make the curve

B2,4

0.6
0.5

Does the curve interpolate its endpoints?
Does it lie inside its convex hull?

1
(1− 3t + 3t 2 − t 3 )
6
1
+ P1 (4 − 6t 2 + 3t 3 )
61
1
+ P2 (1+ 3t + 3t 2 − 3t 3 )
6
1
+ P3 (t 3 )
6

P (t ) = P0


0.4
0.3
3

0.1

Uniform Cubic B-spline on [0,1)

Requires hacks or non-uniform B-splines

1

0.
9

0.
8

0.
7

0.
6

0.
5

0.
4


N i ,k (u ) =

There is also a matrix form for the curve:

CuuDuongThanCong.com

0.
3

i =0

The curve does not interpolate its endpoints

(c) SE/FIT/HUT 2002

0

n

P(u ) = ∑ N i ,k (u ).Pi

The curve lies inside its convex hull

1
[P0 P1 P2
6

(c) SE/FIT/HUT 2002

40


Uniform - B-spline

The blending functions sum to one, and are positive everywhere

P (t ) =

t

39

(c) SE/FIT/HUT 2002

 −1 3 − 3
 3 −6 0
P3 ]
− 3 3
3

0
0
1

0
0.
2

1
(1− 3t + 3t 2 − t 3 ) + P 1 (4 − 6t 2 + 3t 3 ) + P2 1 (1+ 3t + 3t 2 − 3t 3 ) + P3 1 (t 3 )
6

61
6
6

0.
1

= P0

B3,4

B0,4

0.2

P (t ) = ∑ Pi B i ,4 (t )
i =0

38

1 u ∈ [ui , ui +1 ]
N i ,1 (u ) = 
0 others

(u − U i +1− k )
(U i +1 − u )
N i −1,k −1 (u ) +
N i ,k −1 (u )
U i − U i +1− k
(U i +1 − U i + 2 − k )


Ni,k(u) đa thức B-Spline cơ bản
Với n+ 1 sô điểm kiểm soát
Pi điểm kiểm soát thứ i
k bậc của đường cong 1Ui vector nút của đường cong U=[U1,U2...Un+k+1]

1 t 3 
 
4 t 2 
1  t 
 
0  1 
41

(c) SE/FIT/HUT 2002

/>
42

7


CNTT-DHBK Hanoi


Using Uniform B-splines

Uniform Cubic B-spline Blending Functions


At any point t along a piecewise uniform cubic B-spline, there
are four non-zero blending functions
Each of these blending functions is a translation of B0,4
Consider the interval 0≤t<1
We pick up the 4th section of B0,4
We pick up the 3rd section of B1,4
We pick up the 2nd section of B2,4
We pick up the 1st section of B3,4

B0,4

0.7

B1,4

B2,4

B3,4

B4,4

B5,4

B6,4

0.6
0.5
0.4
0.3
0.2

0.1
0
-3

-2.5

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

2.5

3

3.5


4

4.5

5

t

(c) SE/FIT/HUT 2002

43

(c) SE/FIT/HUT 2002

44

45

(c) SE/FIT/HUT 2002

46

Computing the Curve
n

X (t ) = ∑ Pk Bk , 4 (t )
k =0

0.25
0.2

0.15

P1B1,4

P0B0,4

0.1

P4B4,4

P2B2,4

P6B6,4

P3B3,4

0.05

P5B5,4
4.7

4

4.3

3.6

3.3

2.9


2.6

2.2

1.9

1.5

1.2

0.8

0.5

0.1

-0.2

-0.6

-0.9

-1.3

-2

-1.6

-2.3


-3

-2.7

0
t

The curve can’t start until there are 4 basis functions active

(c) SE/FIT/HUT 2002

Đặc điểm

B-Spline Blending Functions

B-spline không đi qua hai điểm đầu và cuối trừ khi hàm hợp
được dùng là tuyến tính.
B-spline có thể được tạo qua hai điểm đầu, cuối và tiếp xúc với
vector đầu và cuối của đa giác kiểm soát. Bằng cách thêm vào
các nút tại vị trí của các nút cuối của vector tuy nhiên các giá
trị giống nhau không nhiều hơn bậc của đường cong.
Tính chất bao lồi của đa giác kiểm soát và tính chất chuẩn
được thoa mãn. n
∑ N i,k (u) = 1

1
Bk ,1 (t ) = 
0


tk ≤ t ≤ tk +1
otherwise

 t − tk 
 Bk ,d −1 (t ) +
Bk ,d (t ) = 
 tk + d −1 − tk 
 tk + d − t 
 Bk +1,d −1 (t )

 tk + d − tk +1 

The recurrence relation starts with the 1st order B-splines,
just boxes, and builds up successively higher orders
This algorithm is the Cox - de Boor algorithm

i =0

Số lượng các nút, bậc của đường cong và số điểm điều khiển
luôn có các quan hệ ràng buộc:
0≤u≤n-k+2
(c) SE/FIT/HUT 2002

CuuDuongThanCong.com

47

(c) SE/FIT/HUT 2002

/>

48

8


CNTT-DHBK Hanoi


Bk,1

Bk,2

1.2

1.2

1.2

1

1

1

0.8

0.8

0.8


0.4

0.6

0.4

0.4

0.2

0.2
1

0.8

0

0.6

0.2
0.4

-1

-0.2

-0.6
-0.4

-0.8


-1.2

-2

-1.6
-1.4

-1.8

-2.4
-2.2

-2.6

-3

1

0

0.8

0.6

0.4

0.2

-0.2


-1

-0.4

-0.6

-0.8

-2

-1.2

-1.4

-1.6

-1.8

-2.2

-2.4

-3

-2.8

0

0


t

t

0.8

0.6

1

-3

-2
.8
-2
.6
-2
.4
-2
.2
-2
-1
.8
-1
.6
-1
.4
-1
.2

-1
-0
.8
-0
.6
-0
.4
-0
.2

1

0.4
0.6
0.8

-0.2
0
0.2

-1.6
-1.4
-1.2
-1
-0.8
-0.6
-0.4

-2.2
-2

-1.8

-3

-2.8
-2.6
-2.4

0

0
0.2
0 .4
0.6
0.8

0

B1,2(t)

0.6

0.2

0.2

1

-2.6


0.4

B0,2(t)

0.6

B 1,2
1.2

-2.8

B 1 ,1 ( t )

B0,1(t)

B 0,2

B 1,1

B 0,1

t

t

B 2,2
B 3,1

B 2,1


1.2
1.2

0.4
0.2

0.4

1

0.4
0.6
0.8

0
0.2

-0.6
-0.4
-0.2

-1.2
-1
-0.8

-3

t

t


− 3 ≤ t < −2
− 2 ≤ t < −1

0

1

-3
-2
.8
-2
.6
-2
.4
-2
.2
-2
-1
.8
-1
.6
-1
.4
-1
.2
-1
-0
.8
-0

.6
-0
.4
-0
.2
0
0 .2
0 .4
0 .6
0 .8

1

-3
-2
.8
-2
.6
-2
.4
-2
.2
-2
-1
.8
-1
.6
-1
.4
-1

.2
-1
-0
.8
-0
.6
-0
.4
-0
.2
0
0 .2
0 .4
0 .6
0 .8

0.6

0.2

0

0

0.8

-1.8
-1.6
-1.4


0.2

t + 3
B0, 2 (t ) = 
−1− t

1

0.6

-2.2
-2

0.4

B 2,2(t)

1
0.8

0.6

-2.8
-2.6
-2.4

1
0.8

B 3 ,1 ( t )


B 2 ,1 ( t)

1.2

t

49

(c) SE/FIT/HUT 2002

Bk,3
0.4
0.3
0.2
0.1

0.6
0.5

-3
-2
.8
-2
.6
-2
.4
-2
.2
-2

-1
.8
-1
.6
-1
.4
-1
.2

1

t

t

 (t + 3)
1
B0, 3 (t ) = − 2t 2 − 6t − 3
2 2
 t
2

0.4
0.3
0.2
0.1

− 3 ≤ t < −2
− 2 ≤ t < −1


0
-3
-2.8
-2.6
-2.4
-2.2
-2
-1.8
-1.6
-1.4
-1.2
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1

0.8

0.6

0.4

0


0.2

-0.2

-0.4

-0.6

-1

-0.8

-1.2

-1.4

-1.6

-1.8

-2

-2.2

-2.4

-2.6

0


0.7

B 0,4(t)

B 1 , 3 (t)

0.5

0
0.
2
0.
4
0.
6
0.
8
1

0.6

0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1

0
-1
-0
.8
-0
.6
-0
.4
-0
.2

0.7

B0,3(t)

B 0,4

B 1,3

0.8

-3

50

B0,4
B 0,3

-2.8


(c) SE/FIT/HUT 2002

t

−1 ≤ t < 0

51

(c) SE/FIT/HUT 2002

B0,4

(c) SE/FIT/HUT 2002

52

B Spline - Đều và tuần hoàn
 (t + 3)3

1 − 3t 3 − 15t 2 − 21t − 5
B0, 4 (t ) =  3
6  3t + 3t 2 − 3t + 1
 (1 − t )3

− 3 ≤ t < −2

Vecto nút là đều khi giá trị của chúng cách đều nhau một
khoảng ∇ xác định. Trong các bài toán thực tế, vecto nút đều
được bắt đầu từ 0 và tăng 1 cho đến giá trị lớn nhất
Ví dụ: [ 0 1 2 3 4 5 ] với ∇ xác định = 1

[ -2 -1/2 1 5/2 4 ] với ∇ xác định = 3/2

− 2 ≤ t < −1
−1 ≤ t < 0
0 ≤ t <1

Với cấp là k, số điểm kiểm soát là n+1 thì vecto nút đều là
U=[0 1 2 ...n+k] khoảng tham số (k-1)≤u≤(n+1).
Khi vecto nút là đều thì ta có Ni,k(u)=Ni-1,k(u-1)=Ni+1,k(u+1)

Note that the functions given on slides 5 and 6 are translates of this
function obtained by using (t-1), (t-2) and (t-3) instead of just t, and then
selecting only a sub-range of t values for each function

(c) SE/FIT/HUT 2002

CuuDuongThanCong.com

53

(c) SE/FIT/HUT 2002

/>
54

9


CNTT-DHBK Hanoi



Không tuần hoàn
Open – Non Uniform
Một vector không tuần hoàn hoặc mở là Cấp
vector nút có giá trị nút tại các điểm đầu k
cuối lặp lại với số lượng các giá trị lặp
lại này bằng chính cấp k của đường cong 2
và các giá trị nút trong mỗi điểm lặp này
là bằng nhau
Nếu một trong hai điều kiện này hoặc cả hai
điều kiện không được thoả mãn thì vecto nút
là không đều.
Cách tính Ui
Ui = 0
1=Ui = i-k
k+1Ui = n-k+2 n+1
B-Splines:
Properties
số lượng nút (m
= n + k)

Vector nút
không tuần
hoàn

6


[0 0 1 2 3 3]

3

7

[0 0 0 1 2 2 2]

4

8

[0 0 0 0 1 1 1 1]

• Smoother, but control is a little less local.

An order-k B-spline has blending functions that are defined in pieces, using
polynomials of degree k–1.

57

Rational Spline - NURBS
L

k =0

wN
R (t ) =
∑w N
k


k ,m

Each point is the ratio of two curves
Just like homogeneous coordinates:

 x ( t ) y (t ) z (t ) 
[ x (t ), y (t ), z (t ), w(t )] → 
,
,

 w(t ) w(t ) w(t ) 

NURBS: x(t), y(t), z(t) and w(t) are non-uniform B-splines

Advantages:
Perspective invariant, so can be evaluating in screen space
Can perfectly represent conic sections: circles, ellipses, etc
• Piecewise cubic curves cannot do this

(c) SE/FIT/HUT 2002

58

k

k ,m

NURBS: Non-uniform Rational B-splines
The curved surface of choice in CAD packages


Support routines are part of the GLu utility library
Allows you to specify how they are rendered:
Can use points constantly spaced in parametric space
Can use various error tolerances - the good way!

(t )

L

k =0

(c) SE/FIT/HUT 2002

56

OpenGL and NURBS

(t ) = ∑P k R k (t )

k

(c) SE/FIT/HUT 2002

But we

Rational Curves

(c) SE/FIT/HUT 2002


P

B-splines are affine invariant (of course).
They have the convex-hull property. ☺
They have local control. ☺
A B-spline (of order 3 or more) does not interpolate any of its control points.
can deal with this …

55

B-spline là một dòng của Bezier
Thực tế khi ta chọn bậc k cho tập hợp k điểm thì thi B-spline chuyển thành
Bezier
Khi bậc của đa thức giảm sự ảnh hưởng cục bộ của mỗi điểm nút càng rõ
ràng hơn.
Khi tồn tại anh hưởng cục bộ càng lớn và đường cong phai đi qua điểm đó.
Chúng ta có thể thay đổi hình dạng đường cong B-spline bằng cách:
Thay đổi kiểu vecto nút : đều tuần hoàn, mở, không đều
Thay đổi cấp k của đường cong
Thay đổi số đỉnh và vị trí các đỉnh đa giác kiểm soát
Sử dụng các điểm kiểm soát trùng nhau

CuuDuongThanCong.com

• Smooth.

Order 4 (“cubic B-splines”).

• This is true for any number of control points. We can choose the number of control points and
the polynomial degree separately. ☺


Kết luận

The blending functions produce a
ratio of the polynomials used.

Order 3 (“quadratic B-splines”).

B-splines have the following properties.

(c) SE/FIT/HUT 2002

A Rational Spline is like a B-Spline
but the designer can add weightings
to the blending functions to modify
the curve.

The most used B-splines are:

Allows you to get back the lines that would be drawn
Allows you to specify trim curves

(t )

Only for surfaces
Cut out parts of the surface - in parametric space

59

(c) SE/FIT/HUT 2002


/>
60

10


CNTT-DHBK Hanoi


Other Splines:
NURBS, etc.

Non-uniform Rational B-Splines(NURBS)

There are any number of other types of splines.

The last 3 types are good for representing free form curves but also introduce
unnecessary approximations in the representation of conic sections. NURBS build on
non-uniform B-Splines and introduce a weight function to obtain an approximation
that retains all the advantages of the non-uniform B-Splines and is also capable of
exact representation of conic sections (circles, parabolas etc.).The general form is
given below:

Often we want a very general type of curve that will do whatever we want.

One such type of curve that has been very successful is the NURBS.
NURBS = Non-Uniform Rational B-Spline.
A NURBS is defined using rational functions.
• A rational function is a polynomial divided by a polynomial.


Control points can be given weights, so some are more important than others.
NURBS curves (and surfaces) are built into GLU, but can be rather complex to use.

One important issue when defining curves and surfaces:
In advanced rendering the technique of ray tracing is often used.
In ray tracing, we determine the color of a pixel by tracing a ray of light backward from
the viewer’s eye, through the pixel, and we see where the ray came from.
In order to do ray tracing efficiently, we must be able to test quickly whether a
particular ray hits a particular object and, if so, where.
Types of surfaces in which this test can be done quickly will be more useful in 3-D
graphics.

The curve is described as rational since it is expressed as the ratio of two
polynomials. wi defines a weight function. If wi is set to 1 we get back the nonuniform B-Spline. Other values of the wi can be used to produce curves for straight
line, parabola, ellipse and hyperbola.
(c) SE/FIT/HUT 2002

61

Tính chất cả đường cong đa thức

CuuDuongThanCong.com

62

How to Choose a Spline

Tham biến – parametric sử dụng tham biến ngoài để biểu diễn cho các
tham biến trong

Độ mượt - smooth. Với đường cong Hermite and Bézier tính liên tục
continuity của đường cong hay đạo hàm bậc 1-first derivative tại các điểm
kiểm soát-control point. Với B-splines tính liên tục trên đạo hàm bậc 2
second derivative hay độ cong được đảm bảo curvature.
Độ biến đổi -"variation diminishing." đường cong ít bị khuếch đại sai
số bởi các điểm kiểm soát hay tính nhấp nhô của đường cong hạn chế oscillate.
Ví dụ Bézier curve, for instance, lies within the convex hull (polygon
envelope) of the set of control points.
Điêm kiểm soát cục bộ-local control. đường cong bị ảnh hưởng mạnh
nhất với chính các điểm kiểm soát gần chúng nhất.

(c) SE/FIT/HUT 2002

(c) SE/FIT/HUT 2002

63

Hermite curves are good for single segments where you know the
parametric derivative or want easy control of it
Bezier curves are good for single segments or patches where a user
controls the points
B-splines are good for large continuous curves and surfaces
NURBS are the most general, and are good when that generality is useful,
or when conic sections must be accurately represented (CAD)

(c) SE/FIT/HUT 2002

/>
64


11



×