Bài giảng Công nghệ đồ họa và hiện thực ảo - Bài 9: Mặt cong - Trịnh Thành Trung

• 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ạ.

• Biểu diễn theo mảnh

– Biểu diễn miếng tứ giác - quadrilatera Patches

– Biểu diễn miếng tam giác - Triangular Patches

• x=x(u,v,w) u,v,w E [0, 1]

• y=y(u,v,w) u + v + w = 1

• 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) ]

Biểu diễn mặt cong6

• 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.

• 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.

• 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.

• 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

pdf 35 trang kimcuc 8500
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ đồ họa và hiện thực ảo - Bài 9: Mặt cong - Trịnh Thành Trung", để 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 Công nghệ đồ họa và hiện thực ảo - Bài 9: Mặt cong - Trịnh Thành Trung

Bài giảng Công nghệ đồ họa và hiện thực ảo - Bài 9: Mặt cong - Trịnh Thành Trung
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
Trịnh Thành Trung 
trungtt@soict.hust.edu.vn 
Bài 9 
MẶT CONG 
1 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
- 
NỘI DUNG 
1. Các khái niệm 
2. Biểu diễn mặt cong 
3. Mô hình hóa mặt cong 
2 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
- 
KHÁI NIỆM 
1 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
4 
• Mặt cong – Surface: Là quỹ đạo chuyển động 
của 1 đường cong tạo nên 
 Các khái niệm cơ bản 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
5 
• 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ạ. 
• Biểu diễn theo mảnh 
– Biểu diễn miếng tứ giác - quadrilatera Patches 
– Biểu diễn miếng tam giác - Triangular Patches 
• x=x(u,v,w) u,v,w E [0, 1] 
• y=y(u,v,w) u + v + w = 1 
• 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) ] 
Biểu diễn mặt cong 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
6 
• 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. 
• 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. 
• 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. 
• 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 
Biểu diễn dùng mặt lưới 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
7 
• 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 
– 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 
Biểu diễn mảnh tứ giác 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
8 
• Thực thể hình học biểu diễn thông qua 
các mảnh cùng dạng 
• 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 đó 
• 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 
• 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 
Kết nối mảnh tứ giác 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
9 
• Tập các điểm P1,P2 ... Pn 
• Tập các tổ hợp của các điểm đó 
 k1P1 + k2P2 + k3P3 ... + knPn 
Với 
 k1 + k2 + k3 + ... + kn =1 
• Các điểm tạo thành không gian affine với các 
giá trị toạ độ nates 
 k1,k2,k3,..kn 
được gọi là hệ toạ độ barycentric. 
Hệ tọa độ Barycentric 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
10 
• 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 
Tam giác 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
11 
• 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 
• Dùng để mô tả các đối tượng có hình dạng tứ 
giác như cờ, khăn ... 
• Mở rộng cho các đối tượng cùng loại 
Bi-Linear 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
- 
MÔ HÌNH HÓA MẶT CONG 
2 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
13 
• Ruled Surface 
• Coon-Boolean Sum 
• Surface of Revolution 
• Swept Surface Extrusion 
Mô hình hóa mặt cong 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
0.2 
0.4 
0.6 
0.8 
1 
0.6 
0.7 
0.8 
0.9 
1 
1 
1.5 
2 
2.5 
3 
Ruled Surface (Matke) 
Duong cong Bspline 
Duong cong Bezier 
14 
• 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 
• 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) 
Ruled Surface 
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 
)(2
)(1
 u] u) - [(1 
vP
vP
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
15 
• Giả sử đường cong phẳng có dạng 
P(t)=[x(t) y(t) z(t)] 0≤t≤tmax 
• Ví dụ: quay quanh trục x một thực thể nằm trên mặt 
phẳng xy, phương trình bề mặt là 
Q(t,  ) = [ x(t) y(t) cos z(t) sin ] 
Mặt tròn xoay 
• 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 
  20 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
16 
• 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. 
• 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: 
 x(t) = x1 + (x2- x1)t = 1+5t 
 y(t) = y1 + (y2- y1)t = 1+t 
 z(t) = z1 + (z2- z1)t = 0 
• Dùng phương trình 
Q(1/2, /3) = [ 1+5t (1+t)cos (1+t)sin ] 
Ví dụ mặt tròn xoay 
4
33
4
3
2
7
3
sin
2
3
3
cos
2
3
2
7 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
17 
• Sweep surface là mặt được tạo bởi 
bằng cách trượt một thực thể, 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. 
• 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 đó) 
• Ví dụ: 
Mặt trượt - sweept surface 
P1[0 0 0], P2[0 3 0]. 
P(t) = P1 + (P2 – P1)*u = [0 3u 0 1] 
0 u,v 1 
 

10010
0)2cos()2sin(0
0)2sin()2cos(0
0001
)(
v
vv
vv
vT
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
18 
• Hình vuông xác định bởi 4 đỉnh : 
 P1[0 -1 0], P2[0 -1 -1], 
 P3[0 1 -1], P4[0 1 1] 
• Đường cong trượt 
x= 10v y= cos(v) – 1 
• Quay 1 góc khi trượt 
Ví dụ về mặt sweept extrusion 
1110
1110
1110
1110
1110
4
3
2
1
)(
P
P
P
P
uP
 
101)cos(10
0100
0010
0001
)(
vv
vT
 
101)cos(10
0100
00)cos()sin(
00)sin()cos(
vv
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
19 
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 
Boolean sum cool surface 
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 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
20 
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) 
Ví dụ boolean sum surface 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
- 
XÂY DỰNG MẶT CONG 
TỪ ĐƯỜNG CONG 
3 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
22 
• Hermite 
• Bezier 
• B-Spline 
Xây dựng mặt cong từ đường cong 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
23 
Q(u, v) = [U ][C ][V ]T 0 u, v <1 
Q(u, v) = [U][MH] [B] [MH]T [V]T 
Mặt cong bậc ba Hermite 
 
3
0
3
0
10
i j
ji
ij vuvuCvuQ ,,
 
0 0 0 1 
0 1 0 0 
123 3
1 1 22 
HM
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
24 
• Mô hình dạng tổng quát 
• Mảnh Bezier được hình thành 
trên phép trượt của đường cong 
Bezier. 
• 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 
• 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] 
Mảnh-patch Bézier 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
25 
• 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ó 
• Hình thành trên 4x4 diểm kiểm soát 
• Công thức có dạng 
• Đa thức Bernstein có dạng: 
B0(t) = (1-t)
3 
B1(t) = 3t(1-t)
2 
B2(t) = 3t
2(1-t) 
B3(t) = t
3 
Mảnh Bezier bậc 3 
 ij
i j
jmin PvBuBvuQ 
3
0
3
0
,,,
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
26 
• 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. 
• Đạo hàm riêng của mặt 
cong có dạng: 
Tính chất của mảnh Bézier 
• Tính bao lồi: Mặt cong 
Bezier luôn nằm trong đa 
diện lồi của các điểm kiểm 
soát 
• Mặt cong đi qua 4 điểm cận 
P00, P01,P10,P11 hay 
chính xác 
Q(0,0)=P00, Q(0,1)=P01, 
Q(1,0)=P10, Q(1,1)=P11 
• Đường cong biên của Mặt 
Bezier là đường cong Bezier 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
27 
• Q(u,v) là mọi điểm nằm trên mặt cong và 
  
1
v
v
v
1000
3300
3630
1331
BBBB
BBBB
BBBB
BBBB
0001
0033
0363
1331
1uuuv,uQ
2
3
33323130
23222120
13121110
03020100
23
          TT VMBNUv,uQ 
[N] và [M] được biểu diễn = 
   1uuuU 23 
   1vvvV 23 
0001
0033
0363
1331
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
28 
• Hai mảnh Q và R cùng 
chung tham biến tại biên 
(Giả sử u) 
• Hai đường cong biên phải 
bằng nhau Q(1,v)=R(0,v) 
• Hệ số của cột cuối ma trận 
Q = cột đầu ma trận R 
• Tương tự: Nếu theo hướng 
của v thì hàng sẽ thay cột 
ma trận 
Nối 2 miếng Bezier bậc 3 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
29 
• 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. 
• 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 trừ 2. 
• 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. 
• Mặt lưới chỉ đi qua các điểm góc cạnh của đa giác kiểm soát. 
• 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. 
• Mặt lưới không thay đổi dưới tác động của các phép biến đổi 
affine. 
• Mỗi đường biên của mặt Bezier là 1 đường cong Bezier với 
mặt cong bậc ba Bezier các đường cong biên luôn đảm bảo là 
các đường Bezier bậc 3. 
• Như vậy lưới đa giác cho bề mặt sẽ là 4 4 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
30 
• Ưu điểm 
– 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 
• Nhược điểm 
– 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 đến mất khả năng điều khiển 
Đánh giá mặt cong bezier 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
31 
• Phương trình mặt B-
spline 
• Pij là điểm kiểm soát 
• N và M là đa thức B-
spline 
• Với các mặt cong mở 
mặt cong phụ thuộc 
vào các knot vector 
Mặt cong B-spline 
ji
n
i
m
j
hjki PwMuNwuQ ,
1 1
,, .)().(),( 
otherwise
xux
uN
ii
ki 0
1
)(
1
,
1
1,1
1
1, )().()()(
)(,
iki
kiki
iki
kii
xx
uNux
xx
uNxu
ukNi
)1(1
)1(
10
kninknx
nikkix
kix
i
i
i
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
32 
• Số bậc cao nhất của bề mặt theo mỗi hướng thì 
bằng số điểm kiểm soát -1 theo hướng đó. 
• Đạo hàm riêng của phương trình bề mặt theo mỗi 
tham biến có bậc bằng số điểm kiểm soát theo 
tham biến đó trừ 2. 
• Bề mặt B-spline thì không chịu ảnh hưởng của phép 
biến đổi anfine. Bề mặt sẽ thay đổi nếu ta thay đổi 
đa giác kiểm soát. 
• Ảnh hưởng của một điểm kiểm soát đơn được giới 
hạn bởi + - k/2 h/2 khoảng đối với mỗi tham số. 
Đặc điểm của mặt cong 
B-spline 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
33 
• 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. 
• 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 sẽ có hình dáng gần 
giống với bề mặt cong. 
• Mỗi mặt B-Spline luôn nằm trong bao lồi của đa 
giác kiểm soát . 
• 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 kiểm soát. 
Đặc điểm của mặt cong 
B-spline (tiếp) 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
34 
• 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ạ. 
Q( u, v ) = [ x y z ] 
= [ x( u, v ) y( u ,v ) z( u, v ) ]
 umin u umax , vmin v 
vmax 
Mặt cong tham biến bậc 3 
©
 C
o
p
yrigh
t Sh
o
w
eet.co
m
35 
• Bậc cao nhất của mặt theo mỗi hướng bằng số 
điểm kiểm soát -1 theo hướng đó 
• Đạ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. 
• Mặt B.spline không thay đổi dưới tác động của 
các phép biến đổi affine 
• 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. 
Đặc điểm mặt cong 
tham biến bậc 3 

File đính kèm:

  • pdfbai_giang_cong_nghe_do_hoa_va_hien_thuc_ao_bai_9_mat_cong_tr.pdf