Bài giảng Computer graphics and virtual reality - Bài 7: Đường cong trong không gian 3D CURVE - Lê Tấn Hùng

Đường cong - Curve

z Why use curves? Quỹ đạo chuyển động của 1 điểm trong không gian

z Điểm biểu diễn Đường cong -curve represents points:

– là phương pháp được sử dụng trong khoa học vật lý và kỹ nghệ nói

chung.

– Các điểm dữ liệu được đo chính xác trên các thực thể sẽ chính đối

tượng cơ sở. Đường cong đi qua các điểm dữ liệu hiển thị hỗ trợ cho

việc nhận ra xu hướng và ý nghĩa cả các điểm dữ liệu.

– Các kỹ thuật phức tạp “vd bình phương sai số” được dùng đưa đường

cong hợp với 1 dạng toán học cơ bản.

z Biểu diễn Điểm và kiểm soát đường cong -Points represent-and

control-the curve.

– đường cong là các đối tượng cơ bản thường là kết quả của tiến trình

thiết kế và các điểm đóng vai trò là công cụ để kiểm soát và và mô hình

hoá đường cong.

– Cách tiếp cận này là cơ sở của lĩnh vực Computer Aided Geometric

Design (CAGD).

pdf 7 trang yennguyen 1320
Bạn đang xem tài liệu "Bài giảng Computer graphics and virtual reality - Bài 7: Đường cong trong không gian 3D CURVE - Lê Tấn Hùng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Computer graphics and virtual reality - Bài 7: Đường cong trong không gian 3D CURVE - Lê Tấn Hùng

Bài giảng Computer graphics and virtual reality - Bài 7: Đường cong trong không gian 3D CURVE - Lê Tấn Hùng
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
1
Khoa CNTT DHBK Hanoi1
Đường cong trong không gian 
3D CURVE
Khoa CNTT DHBK Hanoi2
Đường cong - Curve
z Why use curves? Quỹ đạo chuyển động của 1 điểm trong không gian 
z Điểm biểu diễn Đường cong -curve represents points: 
– là phương pháp được sử dụng trong khoa học vật lý và kỹ nghệ nói 
chung.
– Các điểm dữ liệu được đo chính xác trên các thực thể sẽ chính đối 
tượng cơ sở. Đường cong đi qua các điểm dữ liệu hiển thị hỗ trợ cho 
việc nhận ra xu hướng và ý nghĩa cả các điểm dữ liệu.
– Các kỹ thuật phức tạp “vd bình phương sai số” được dùng đưa đường 
cong hợp với 1 dạng toán học cơ bản.
z Biểu diễn Điểm và kiểm soát đường cong -Points represent-and 
control-the curve.
– đường cong là các đối tượng cơ bản thường là kết quả của tiến trình 
thiết kế và các điểm đóng vai trò là công cụ để kiểm soát và và mô hình 
hoá đường cong.
– Cách tiếp cận này là cơ sở của lĩnh vực Computer Aided Geometric 
Design (CAGD).
Khoa CNTT DHBK Hanoi3
Phân loại
z 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:
z Nội suy-Interpolation - đường cong đi qua các điểm, trong ứng 
dụng khoa học các yêu cầu về ràng buộc sử dụng đa thức hay các 
hàm bậc cao tuy nhiên kết quả thường có những hiệu ứng phụ như 
sai số phóng đại hay độ nhấp nhô của đường cong do đa thức bậc 
cao tạo nên.
z 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“.
z Xấp xỉ-Approximation - đường cong không cần đi qua các điểm,với 
các ứng dụng khoa học ta gọi là trung bình dữ liệu- data averaging 
hay trong thiết kế điểu khiển đường cong.
Khoa CNTT DHBK Hanoi4
Polynomial Parametric Curves
z What degree should we use to represent a 
curve?
– We choose the third degree:
z Cubic polynomials
– Higher degrees:
z Require more computation
z Have extra “wiggles”
z Provide more flexibility than is required.
z Are often used to model cars and aeroplanes 
Khoa CNTT DHBK Hanoi5
Tính chất cả đường cong bậc 3
z Tham biến – parametric sử dụng tham biến ngoài để biểu diễn cho 
các tham biến trong
z Độ 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. 
z Độ 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. 
z Ví dụ Bézier curve, for instance, lies within the convex hull (polygon 
envelope) of the set of control points. 
z Đ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.
Khoa CNTT DHBK Hanoi6
Đường cong đa thức bậc ba 
z Phải đảm bảo là đường cong không gian với 3 trục toạ
độ x, y, z
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
z Why cubic?
– lower-degree polynomials give too little flexibility in controlling the 
shape of the curve
– higher-degree polynomials can introduce unwanted wiggles and 
require more computation
– lowest degree that allows specification of endpoints and their 
derivatives
– lowest degree that is not planar in 3D
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
2
Khoa CNTT DHBK Hanoi7
z Kinds of continuity:
– G0: two curve segments join together
– G1: directions of tangents are equal at the joint
– C1: directions and magnitudes of tangents are equal 
at the joint
– Cn: directions and magnitudes of n-th derivative are 
equal at the joint
Khoa CNTT DHBK Hanoi8
P0
P1 p2
p3
P0
P'0 P1
P'1
Đường cong bậc 3
z Theo Lagrange:
z x = a1 + b1u + c1u2 + d1u3
z y = a2 + b2u + c2u2 + d2u3
z z = a3 + b3u + c3u2 + d3u3
z 3 phương trinh với 12 ẩn số
z Với 3 điểm P0, P1, P2, P3 phương trình xác định
Khoa CNTT DHBK Hanoi9
Đường cong Hermite
z 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
z đường bậc ba sẽ xác định bởi hai điểm đầu và cuối cùng với hai góc 
nghiêng tại hai điểm đó
z p = p(u) = k0 + k1u + k2u2 + k3u3
z p(u) = ∑kiui i∈n
z p’ = p(u) = k1 + 2k2u + 3k3u2
z 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].
z k1 + 2k2 + 3k3 = p1’
z k0 = p0 k1 = p1’
z k2 = 3(p1 – p0) - 2p0’ – p1’
z k3 = 2(p0-p1) + p0’ + p1’ Khoa CNTT DHBK Hanoi10
z Thay vào:
z p = p(u) = p0(1-3u2+2u3) + p1(3u2-2u3) 
+ p0’(u-2u2+u3) + p1’(-u2+u3)
p = p(u) = [ 1 u u2 u3 ] 
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
−−−
1
0
1
0
1122
1233
0100
0001
'
'
.
p
p
p
p
Khoa CNTT DHBK Hanoi11 Khoa CNTT DHBK Hanoi12
Đường cong Bezier
z 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)
z 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).
z Paul Bezier, RENAULT, 1970 đường và bề mặt
UNISURF
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
3
Khoa CNTT DHBK Hanoi13
z 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
z p0’ = 3(p1 – p0)
z p3’ = 3(p3 – p2)
z p = p(u) = p0(1-3u2+2u3) + p1(3u2-2u3) + p0’(u-
2u2+u3) + p1’(-u2 + u3)
z p = p(u) = p0(1 - 3u + 3u2 - u3) + p1(3u-6u2+3u3) 
+ p2(3u2 - 3u3) + p3u3
Khoa CNTT DHBK Hanoi14
p = p(u) = [ 1 u u2 u3 ] 
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
−−
−
−
3
2
1
0
1331
0363
0033
0001
p
p
p
p
Khoa CNTT DHBK Hanoi15
Ưu điểm
z 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. 
z Nằm trong đa giác kiểm soát với số điểm trung gian 
tuỳ ý( số bậc tuỳ ý)
z đ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 đó
Khoa CNTT DHBK Hanoi16
De Casteljau algorithm
Khoa CNTT DHBK Hanoi17
Biểu thức Bezier-Bernstain
z Tổng quát hoá với n +1 điểm kiểm soát
z p0 ... pn : vector vị trí của đa giác n+1 đỉnh
))(()(
)()(
1
0
1,
0
,
ii
n
i
ni
i
n
i
ni
PpuBnup
puBup
−=′
=
+
=
−
=
∑
∑
ini
ni uuinCuB
−−= )1(),()(,
)!in(!i
!n
)i,n(C −=
Khoa CNTT DHBK Hanoi18
Tính chất
z P0 và Pn nằm trên đường cong. 
z Đường cong liên tục và có đạo hàm liên tục tất cả các 
bậc 
z Tiếp tuyến của đường cong tại điểm P0 là đường P0P1 
và tại Pn là đường Pn-1Pn . 
z Đường cong nằm trong đường bao lồi convex hull của 
các điểm kiểm soát.
z This is because each successive Pi(j) is a convex 
combination of the points Pi(j-1) and Pi-1(j-1) . 
z P1 ,P2 ,  ,Pn-1 nằm trên đường cong khi và chỉ khi 
đường cong là đoạn thẳng. 
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
4
Khoa CNTT DHBK Hanoi19
Review:
Bézier Curve Prop’s [1/6]
z We looked at some properties of Bézier curves.
z Generally “Good” Properties
– Endpoint Interpolation
– Smooth Joining
– Affine Invariance
– Convex-Hull Property
z Generally “Bad” Properties
– Not Interpolating
– No Local Control
Khoa CNTT DHBK Hanoi20
Đường bậc ba Spline
z 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
z 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
z 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
Khoa CNTT DHBK Hanoi21
Đường cong bậc ba
Spline
z u0 = 0 với : (u0 ... un-1) uj+1 > uj
z ui+1 = ui + di+1
z C0 để không có sự gián đoạn giữa hai đoạn cong. 
z 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. 
z C2 đạo hàm bậc hai liên tục của đường cong tại điểm nối
Khoa CNTT DHBK Hanoi22
z tính liên tục của đạo hàm bậc hai tại các điểm nối có thể dễ
dàng đạt được bằng cách đặt P’’i-1(ui-1=1) là đạo hàm bậc hai
tại điểm cuối của đoạn (i-1) bằng với P’’i(ui=0) đạo hàm bậc
hai tại điểm đầu của đoạn thứ i. 
z P’’i-1(1)= P’’i(0)
y Pn-1’
Pn-1
Po’ P1
x z Po
p = [ 1 u u2 u3 ] 
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
−−−
1
0
1
0
1122
1233
0100
0001
'
'
.
p
p
p
p
Khoa CNTT DHBK Hanoi23
Đường cong B-spline
z Đườ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.
Khoa CNTT DHBK Hanoi24
B-Splines:
The Idea [1/2]
z 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.
– Using functions defined in pieces, we can fix these two.
z 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.
z Now we make higher-order B-splines using a repeated-
lirping procedure.
– But this time, we can use any number of control points.
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
5
Khoa CNTT DHBK Hanoi25
B-Splines:
The Idea [2/2]
z 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.
z 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.
z We continue this repeated-lirping procedure to define B-splines of 
higher order.
– See the blue book for details and graphs. Khoa CNTT DHBK Hanoi26
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 non-
uniform and or repeated knots e.g. [0 1 1 2 4 5 6 6 
] These can be used to obtain local control
B-Splines
Khoa CNTT DHBK Hanoi27
B-spline
z Ni,k(u) đa thức B-Spline cơ bản
z Với n+ 1 sô điểm kiểm soát
z Pi điểm kiểm soát thứ i
z k bậc của đường cong 1<k<n+2
z Ui vector nút của đường cong 
U=[U1,U2...Un+k+1]
i
n
i
ki PuNuP ∑
=
=
0
, ).()(
)(
)(
)()()()( 1,
21
1
1,1
1
1
, uNUU
uUuN
UU
UuuN ki
kii
i
ki
kii
ki
ki −
−++
+
−−
−+
−+
−
−+−
−=
⎩⎨
⎧ ∈= +
others0
],[1
)( 11,
ii
i
uuu
uN
Khoa CNTT DHBK Hanoi28
Khoa CNTT DHBK Hanoi29
Đặc điểm
z 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.
z 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.
z 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. 
z 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: 
z 0 ≤ u ≤ n - k + 2
1(u)N
n
0i
ki, =∑
=
Khoa CNTT DHBK Hanoi30
B Spline -Đều và tuần hoàn
z 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 
z Ví dụ: [ 0 1 2 3 4 5 ] với ∇ xác định = 1
z [ -2 -1/2 1 5/2 4 ] với ∇ xác định = 3/2
z Với cấp là k, số điểm kiểm soát là n+1 thì vecto nút đều là 
z U=[0 1 2 ...n+k] khoảng tham số (k-1)≤u≤(n+1).
z Khi vecto nút là đều thì ta có Ni,k(u)=Ni-1,k(u-
1)=Ni+1,k(u+1)
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
6
Khoa CNTT DHBK Hanoi31 Khoa CNTT DHBK Hanoi32
Không tuần hoàn
Open – Non Uniform
z Một vector không tuần hoàn hoặc mở
là vector nút có giá trị nút tại các điểm 
đầu 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 và các giá trị nút trong 
mỗi điểm lặp này là bằng nhau
z 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.
z Cách tính Ui
Ui = 0 1=<i<=k
Ui = i-k k+1<i<=n+1
Ui = n-k+2 n+1<i<=n+k+1
2 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]
Cấp 
k
số lượng nút (m 
= n + k)
Vector nút 
không tuần 
hoàn
Khoa CNTT DHBK Hanoi33
B-Splines:
Properties
z The most used B-splines are:
– Order 3 (“quadratic B-splines”).
z Smooth.
– Order 4 (“cubic B-splines”).
z Smoother, but control is a little less local.
z B-splines have the following properties.
– An order-k B-spline has blending functions that are defined in pieces, 
using polynomials of degree k–1.
z This is true for any number of control points. We can choose the number of 
control points and the polynomial degree separately. ☺
– 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. / But we can deal with this 
Khoa CNTT DHBK Hanoi34
Kết luận
z B-spline là một dòng của Bezier
z 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
z 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.
z Khi tồn tại anh hưởng cục bộ càng lớn và đường cong phai đi qua điểm 
đó.
z Chúng ta có thể thay đổi hình dạng đường cong B-spline bằng cách:
z Thay đổi kiểu vecto nút : đều tuần hoàn, mở, không đều
z Thay đổi cấp k của đường cong
z Thay đổi số đỉnh và vị trí các đỉnh đa giác kiểm soát
z Sử dụng các điểm kiểm soát trùng nhau
Khoa CNTT DHBK Hanoi35
Non-uniform Rational B-Splines(NURBS)
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: 
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 non-
uniform B-Spline. Other values of the wi can be used to produce curves for straight 
line, parabola, ellipse and hyperbola. 
Khoa CNTT DHBK Hanoi36
Other Splines:
NURBS, etc.
z There are any number of other types of splines.
– Often we want a very general type of curve that will do whatever we want.
z 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.
z 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.
z 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.
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
7
Khoa CNTT DHBK Hanoi37

File đính kèm:

  • pdfbai_giang_computer_graphics_and_virtual_reality_bai_7_duong.pdf