CNTT-DHBK Hanoi hunglt@it-hut.edu.vn
I. Các khái niệm cơ bản
Mô hình bề mặt – Surface Các phương pháp xây dựng
(cid:122) Mặt cong-Surface Là quỹ đạo chuyển động của 1 đừơng cong tạo nên (cid:122) Biểu diễn tham biến cho mặt cong
– Dựa vào việc xây dựng và tạo bề mặt toán học trên những điểm dữ liệu – Dựa trên việc xây dựng nên bề mặt phụ thuộc vào biến số có khả năng
thay đổi một cách trực diện thông qua các tương tác đồ hoạ.
(cid:122) Biểu diễn theo mảnh
Khái niệm Constructive surface Bề mặt tổng hợp Bề mặt tam giác
– Biểu diễn miếng tứ giác - quadrilatera Patches – Biểu diễn miếng tam giác-Triangular Patches
u,v,w E [0, 1] u + v + w = 1
Le Tan Hung www.dohoavietnam.com
x=x(u,v,w) y=y(u,v,w) z=z(u,v,w)
Q(u,v,w) = Q[ x=x(u,v,w) y=y(u,v,w) z=z(u,v,w) ]
2 1
Ưu điểm dùng mặt lưới
Biểu diễn mảnh tứ giác
(cid:137) Cho phép phân tích sớm và dễ dàng các đặc tính của bề mặt, đường cong của bề mặt và tính chất vật lý của bề mặt.
(cid:137) Cho phép xác định diện tích, xác định vùng của bề mặt
hay các môment của mặt.
(cid:122) Phương trình x=x(u,v) y=y(u,v) u,v E [ 0, 1] z=z(u,v) Q(u,v) = Q[ x=x(u,v) y=y(u,v) z=z(u,v) ] Thành phần
(cid:137) Với khả năng tô màu bề mặt trong thực tế cho phép
việc kiểm tra thiết kế đơn giản.
– u,v là các tham biến – Các điểm Q(0,0) Q(0,1), Q(1,0), Q(1,1) là cận của mảnh – Các đường cong Q(1,v), Q(0,v), Q(u,0), Q(u,1) là các biên của mảnh – Đạo hàm riêng tại điểm Q(u,v) xác định vector tiếp tuyến theo hướng u, v
(cid:137) Tạo ra các thông tin cần thiết cho việc sản xuất và tạo ra bề mặt như code điều khiển số được dễ dàng thuận tiện hơn nhiều so với các phương pháp thiết kế cổ điển
3 4
Hệ tọa độ Barycentric Coordinates ?
Kết nối mảnh tứ giác
(cid:122) Thực thể hình học biểu diễn thông
qua các mảnh cùng dạng
Tập các điểm P1,P2 ... Pn Tập các tổ hợp của các điểm đó
(cid:122) Các mảnh có thể nối với nhau theo các hướng u,v khi 2 mảnh cùng hướng đó
các điểm tạo thành không gian affine với các gias trị toạ
độ nates
k1P1 + k2P2 + k3P3 ... + knPn Với k1 + k2 + k3 + ... + kn =1
(cid:122) Nếu mọi điểm trên biên của 2 mảnh = nhau, hay 2 biên = nhau. 2 mảnh liên tục bậc Co
được gọi là hệ toạ độ barycentric.
(cid:122) Nếu 2 biên = nhau và đạo hàm bằng nhau trên cùng 1 hướng thi 2 mảnh gọi là kết nối bậc C1
k1,k2,k3,..kn
5 6
1
CNTT-DHBK Hanoi hunglt@it-hut.edu.vn
Tam giác Triangular
Bi-Linear
(cid:122) Là mặt nội suy từ 4 điểm P00; P01; P10; P11 trong không gian Với (u,v) [0; 1] [0; 1] P(u,v) = (1 - u)(1 - v)P00 + (1 - u)vP01 + u(1 - v)P10 + uvP11 (cid:122) Dùng để mô tả các đối tượng có hình dạng tứ giác như cờ, khăn ... (cid:122) Mở rộng cho các đối tượng cùng loại
Trong tam giác các điểm có dạng P1, P2, P3 Hệ số: k1, k2, k3 E [ 0, 1] k1 + k2 + k3 = 1 P = k1P1 + k2P2+ k3P3 Nếu Hệ số ki > 1 hoặc <0 điểm P sẽ nằm ngoài tam giác Q Nếu Hệ số ki = 1 hoặc =0 điểm P sẽ nằm trên cạnh tam giác
Ruled Surface (Matke)
7 8
Ruled Surface
Mô hình hoá các mặt cong Surface Patches
3
2.5
2
(cid:122) Bề mặt được xây dựng bằng cách cho trượt 1 đoạn thẳng trên 2 đường cong
1.5
Duong cong Bezier
1 0.2
0.4
Duong cong Bspline
0.6
(cid:122) Các mặt kẻ nhận được bằng phép nội suy tuyến tính từ hai đường cong biên cho trước tương ứng với hai biên đối diện của mặt kẻ P1(u) và P2(u)
0.6
0.7
0.8
0.8
0.9
1
1
(cid:122) Ruled Surface (cid:122) Coon-Boolean Sum (cid:122) Surface of Revolution (cid:122) Swept Surface
– Extrusion
vP )(1
u) -
[(1
u]
=
vP )(2
⎤ ⎥ ⎦
⎡ ⎢ ⎣
•Phương trình mặt kẻ: Q(u,v) = P2(u)v + P1(u)(1-v) Nếu hai đường cong cho trước tương ứng là P1(v) và P2(v) Thì mặt kẻ có phương trình Q(u,v) = P1(v)(1-u) + P2(v)u
9 10
VD - Mặt tròn xoay
Mặt tròn xoay Revolution surface
(cid:122) Mặt được xây dựng bởi đường
thẳng hay 1 đường cong phẳng, quanh một trục trong không gian
P1[1 1 0] và P2[6 2 0] nằm trong mặt phẳng xy. Quay đường thẳng quanh trục x sẽ được một mặt nón. Xác định điểm của mặt tại t=0.5, φ=π/3.
(cid:122) Giả sử đường cong phẳng có dạng P(t)=[x(t) y(t) z(t)] 0≤t≤tmax (cid:122) Ví dụ: quay quanh trục x một thực thể nằm trên mặt phẳng xy, phương
0
≤≤
πφ 2
cos
sin
=
Phương trình tham số cho đoạn thẳng từ P1 tới P2 là: P(t) = [ x(t) y(t) z(t) ] = P1 + (P1 - P2)t 0 ≤ t ≤ 1 với các thành phần Đề-các: trình bề mặt là Q(t, φ) = [ x(t) y(t) cosφ z(t) sinφ ] x(t) = x1 + (x2- x1)t = 1+5t y(t) = y1 + (y2- y1)t = 1+t z(t) = z1 + (z2- z1)t = 0
π 3
π 3
7 2
3 2
⎤ ⎥⎦
=
Dùng phương trình Q(1/2, π/3) = [ 1+5t (1+t)cosφ (1+t)sinφ] 3 2
7 2
3 4
33 4
⎤ ⎥ ⎦
⎡ ⎢⎣ ⎡ ⎢ ⎣
11 12
2
CNTT-DHBK Hanoi hunglt@it-hut.edu.vn
1
Mặt trượt - Sweept Surface
Ví dụ về mặt Sweept Extrusion
0.5
0
-0.5
(cid:122) Hình vuông xác định bởi 4 đỉnh :
-1 1
(cid:122) Sweep surface là mặt được tạo bởi bằng cách trượt một thực thể
10
0
8
6
-1
4
2
-2
0
(cid:122) ví dụ: một đường thẳng, đa giác, một đường cong, một hình… dọc theo một đường trong không gian.
(cid:122) Đường cong trượt x= 10v y= cos(Πv) – 1
1
0
1
1
−
1
0
00
1 P
0.5
vT )(
=
)( uP
=
=
0 0
1 0
00 01
2 3
P P
0
0 0 0
1 − 1 1
cos(
101)
v
v −Π
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
4
P
⎡ ⎢ ⎢ ⎢ ⎢ 10 ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
0
1
1
−
-0.5
1 ⎤ ⎥ 11 − ⎥ 11 ⎥ − ⎥ 1 1 ⎥ ⎥ 1 ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
(cid:122) Q(u,v) = P(u)*[ T(v) ] P(u) thực thể cần trượt [ T(v) ] là ma trận biến đổi([ T(v) ] có thể là ma trận tịnh tiến, quay, hay tỉ lệ …hoặc là kết hợp của nhiều phép biến đổi đó)
-1 1
0
10
Ví dụ:
8
sin(
) ϕ
-1
6
4
-2
)( vT
=
cos(
sin(
−
) ϕ
2
-3
0
1 0 0
) v ) v
0 2 cos( Π sin( 2 Π
−
0 2 sin( Π cos( 2 Π
P1[0 -1 0], P2[0 -1 -1], P3[0 1 -1], P4[0 1 1]
0
P1[0 0 0], P2[0 3 0]. P(t) = P1 + (P2 – P1)*u = [0 3u 0 1] 0 ≤ u,v ≤ 1
0
0
1
v
0 ⎤ ⎥ ) 0 v ⎥ 0) v ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ 10 ⎣
v
10
cos(
101)
v −Π
00 ⎤ ⎥ 00 ⎥ 01 ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
Quay 1 góc khi trượt cos( ) ϕ ) ϕ 0 13 14
Boolean sum Coon surface
Example Boolean Sum Surface
Với u = 0 S(0,v) = S1(0,v) + S2(0,v) - P(0, v)
= v A0(0) + (1 - v)A2(0) + 0 A1(v) + 1 A3(v) - (1 - v)P00 - v P01 = v P01 + (1 - v)P00 + A3(v) -(1 - v)P00 - v P01 = A3(v)
Mặt được xây dựng trên 4 điểm và các đường cong biên S(u,v) Mặt nội suy trên 4 đường biên
S(u; v) = S1(u, v) + S2(u, v) - P(u; v) Với: P(u,v) = (1-u)(1-v)P00 + (1-u)vP01 + u(1-v)P10 + uvP11 S1(u,v) = vA0(u) + (1-v)A2(u) S2(u; v) = uA1(v) + (1-u)A3(v);
P là các đỉnh của mảnh 4 Ai(u) là các phương trình đường biên 15 16
Surface from Curves
Mặt cong bậc ba Hermite
3
3
i
j
0
1
, vu
≤
≤
( , vuQ
vuC ij
) ∑∑ =
0
0
i
j
=
=
(cid:122) Hermite (cid:122) Bezier (cid:122) B-Spline
(cid:122) Q(u, v) = [U ][C ][V ]T
0 ≤ u, v <1
(cid:122) Q(u, v) = [U][MH] [B] [MH]T [V]T
1 1 2
2
− 3 3
2
−
−
=
]
[ HM
− 0 1 0 0 0 0 0 1
⎤ ⎥ 1 ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
17 18
3
CNTT-DHBK Hanoi hunglt@it-hut.edu.vn
Mảnh-patch Bézier
Mảnh Bezier bậc 3
(cid:122) Mặt cong Bezier bậc 3 là mặt phổ biến nhất trong
CG, vì đi độ đơn giản của nó
(cid:122) Hình thành trên 4x4 diểm kiểm soát (cid:122) Công thức có dạng
(cid:122) Mô Hình dạng tổng quát (cid:122) Mảnh Bezier được hình thành trên phép trượt của đường cong Bezier. (cid:122) Việc xây dựng nên mảnh Bezier dưới các điểm kiểm soát, tạo nên đa diện kiểm soát
3
3
,
B
=
( vuQ
)
( ) Bu
, in
, jm
( ) ij Pv
∑ ∑
0
0
i
j
=
=
(cid:122) Đa thức Bernstein có dạng:
(cid:122) Phương trình tổng quát của mặt cong
tham biến Bezier có dạng: u,v E [0, 1]
=
( v,uQ
)
[ ] [ ] [ ] [ T VMBNU
] [
]T
19 20
Tính chất của mảnh Bézier
(cid:122) Q(u,v) là mọi điểm nằm trên mặt cong và
(cid:122) Tính bao lồi: Mặt cong
2
v
[ V
]
(cid:122) Mặt cong là liên tục và đạo hàm riêng các bậc tồn tại của nó cũng liên tục.
Bezier luôn nằm trong đa diện lồi của các điểm kiểm soát
2
u
[ U
]
[ 3= v [ 3= u
]1v ]1u
(cid:122) Đạo hàm riêng của mặt
−
−
13
1
(cid:122) Mặt cong đi qua 4 điểm cận
cong có dạng:
3 −
6
3
0
P00, P01,P10,P11 hay chính xác
3 − 3 1
3 0
0 0
0 0
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
Q(0,0)=P00, Q(0,1)=P01,
3
−
−
−
−
00
01
02
03
2
v v
10
11
12
13
3
2
Q(1,0)=P10, Q(1,1)=P11 (cid:122) Đường cong biên của Mặt
=
u
( v,uQ
)
[ u
B B B
B B B
B B B
B B B
20
21
22
23
Bezier là đường cong Bezier
B
B
B
B
1 0 0 0
3 3 0 0
3 − 6 3 0
1 3 − 3 1
3 − 6 3 0
13 0 3 0 0 0 0
v 1
30
31
32
33
1 ⎤ ⎥ 3 ⎥ ⎥ − 3 ⎥ 1 ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ] ⎢ 1u ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦
[N] và [M] được biểu diễn =
21 22
Nối 2 miếng Bezier Bậc 3(Bi-cubic)
(cid:122) Bậc của mặt cong theo mỗi hướng của tham biến bằng số điểm kiểm soát trừ 1. (cid:122) Tính liên tục hay đạo hàm của mặt theo mỗi tham biến bằng số điểm kiểm soát
(cid:122) Hai mảnh Q và R cùng chung tham biến tại biên (Giả sử u)
trừ 2.
(cid:122) Hai đường cong biên phải bằng nhau Q(1,v)=R(0,v)
(cid:122) Hệ số của cột cuối ma trận Q
= cột đầu ma trận R
(cid:122) Hình dạng của mặt biến đổi theo các cạnh của đa giác kiểm soát. (cid:122) Mặt lưới chỉ đi qua các điểm góc cạnh của đa giác kiểm soát. (cid:122) Mặt lưới chỉ nằm trong phần giới hạn bởi lưới của đa giác lồi kiểm soát. (cid:122) Mặt lưới không thay đổi dưới tác động của các phép biến đổi affine. (cid:122) Mỗi đường biên của mặt Bezier là 1 đường cong Bezier với mặt cong bậc ba
(cid:122) Tương tự: Nếu theo hướng
Bezier các đường cong biên luôn đảm bảo là các đường Bezier bậc 3.
(cid:122) Như vậy lưới đa giác cho bề mặt sẽ là 4 × 4
của v thì hàng sẽ thay cột ma trận
23 24
4
CNTT-DHBK Hanoi hunglt@it-hut.edu.vn
ĐÁNH GIÁ MẶT CONG BEZIER
Mặt cong B-Spline
n
m
(cid:122) ƯU ĐIỂM
,( wuQ
)
).
.)
(
(
=
PwMuN , ji
hj ,
ki ,
=
)( uN , ki
∑∑ j i 1 1 = = 1 x u x <≤ ⎧ 1 i i + ⎨ 0 otherwise ⎩
– Dễ trong xây dựng chương trình – Dễ trong render – Là mặt cong mạnh biểu diễn được nhiều hình phức
tạp
u
x
(
u )(
(
u )(
Nx ) i
,1
k
ki +
1 −
ukNi )( ,
=
+
(cid:122) Phương trình mặt B-spline (cid:122) Pij là điểm kiểm soát (cid:122) N và M là đa thức B-spline (cid:122) Với các mặt cong mở mặt cong phụ thuộc vào các knot vector
− x
− x
Nu ). i + x
1 ki , − x −
−
i
i
ki 1 −+
ki +
1 +
(cid:122) NHƯỢC ĐIỂM
x
k
=
i ≤≤
i
x
kk (
1
i
n
)
( 10 i −=
) ≤≤+
i
– Không thể mô tả được hình cầu – Điều kiện để nối 2 mặt cong cần rất nhiều điểm. Dẫn
x
(1
n
kn
1
)
kn +−=
i +≤≤+
i
⎧ ⎪ ⎨ ⎪ ⎩
đến mất khả năng điều khiển
25 26
Mặt cong tham biến bậc 3
Đặc điểm của mặt cong B-Spline
(cid:122) Số bậc caonhất của bề mặt theo mỗi hướng thì bằng số điểm kiểm
(cid:122) Đạo hàm riêng của phương trình bề mặt theo mỗi tham biến có bậc
(cid:122) Dựa vào việc xây dựng và tạo toán học trên những
bề mặt điểm dữ liệu
(cid:122) Bề mặt B-spline thì không chịu ảnh hưởng của phép biến đổi anfine.
(cid:122) ảnh hưởng của một điểm kiểm soát đơn được giới hạn bởi + - k/2
(cid:122) Dựa trên việc xây dựng nên bề mặt phụ thuộc vào biến số có khả năng thay đổi một cách trực diện thông qua các tương tác đồ hoạ.
(cid:122) Nếu số đỉnh của đa giác kiểm soát bằng số bậc theo mỗi tham biến và không có điểm kép nào thì mặt B-spline sẽ chuyển thành mặt Bezier.
(cid:122) Nếu các đa giác kiểm soát có dạng tam giác thì lưới đa giác kiểm
soát -1 theo hướng đó. bằng số điểm kiểm soát theo tham biến đó trừ 2. Bề mặt sẽ thay đổi nếu ta thay đổi đa giác kiểm soát. h/2 khoảng đối với mỗi tham số.
(cid:122) Q( u, v ) = [ x y z ] (cid:122) = [ x( u, v ) y( u ,v ) z( u, v ) ] umin ≤ u ≤ umax , vmin ≤ v ≤ vmax
(cid:122) Mỗi mặt B-Spline luôn nằm trong bao lồi của đa giác kiểm soát . (cid:122) Mỗi mặt B-Spline có dáng điệu luôn bám theo hình dáng của đa giác
soát sẽ có hình dáng gần giống với bề mặt cong.
(cid:122) Bậc cao nhất của mặt theo mỗi hướng bằng số điểm
kiểm soát. 27 28
kiểm soát -1 theo hướng đó
(cid:122) Đạo hàm riêng của phương trình bề mặt theo một
hướng có bậc bằng số điểm kiểm soát -2.
(cid:122) Mặt B.spline không thay đổi dưới tác động của các
phép biến đổi affine
(cid:122) Nếu số điểm kiểm soát bằng số bậc của mặt cong
cộng 1 thì mặt B-spline chuyển dạng Bezier.
29