Bài giảng Đồ họa hiện thực ảo - Bài 10: Mô hình bề mặt Surface. Các phương pháp xây dựng - Lê Tấn Hùng

CNTT-DHBK Hanoi  
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  
z Mặt cong-Surface  
Là quỹ đạo chuyển động của 1 đừơng cong tạo nên  
z 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ạ.  
Khái niệm  
Constructive surface  
Bề mặt tổng hợp  
Bề mặt tam giác  
z 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)  
y=y(u,v,w)  
z=z(u,v,w)  
u,v,w E [0, 1]  
u + v + w = 1  
Le Tan Hung  
Q(u,v,w) = Q[ x=x(u,v,w) y=y(u,v,w) z=z(u,v,w) ]  
2
1
Biểu diễn mảnh  
tứ giác  
Ưu điểm dùng mặt lưới  
z
Phương trình  
‰ 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
bề mặt.  
‰ Cho phép xác định di
hay các môment của mặt.  
x=x(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  
‰ 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.  
–
–
–
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  
‰ 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  
Tập các tổ hợp của các điểm đó  
z Thực thể hình học biểu diễn thông  
qua các mảnh cùng dạng  
k1P1 + k2P2 + k3P3 ... + knPn  
Với  
z 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 đó  
k1 + k2 + k3 + ... + kn =1  
z 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ác điểm tạo thành không gian affine với các gias trị toạ  
độ nates  
k1,k2,k3,..kn  
được gọi là hệ toạ độ barycentric.  
z 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  
5
6
1
CNTT-DHBK Hanoi  
Tam giác  
Triangular  
Bi-Linear  
Trong tam giác các điểm có dạng P1, P2, P3  
z
Là mặt nội suy từ 4 điểm P00; P01; P10; P11 trong không gian  
Hệ số: k1, k2, k3 E [ 0, 1]  
k1 + k2 + k3 = 1  
Với (u,v) [0; 1] [0; 1]  
P(u,v) = (1 - u)(1 - v)P00 + (1 - u)vP01 + u(1 - v)P10 + uvP11  
P = k1P1 + k2P2+ k3P3  
z
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  
Nếu Hệ số ki > 1 hoặc <0 điểm P sẽ nằm ngoài tam  
giác Q  
z
Nếu Hệ số ki = 1 hoặc =0 điểm P sẽ nằm trên cạnh  
tam giác  
7
8
Mô hình hoá các mặt cong  
Surface Patches  
Ruled Surface (Matke)  
Ruled Surface  
3
z
Bề mặt được xây dựng bằng cách  
2.5  
z Ruled Surface  
z Coon-Boolea
z Surface of Revolution  
z Swept Surface  
– Extrusion  
cho trượt 1 đoạn thẳng trên 2  
2
1.5  
1
0.2  
Duong cong Bezier  
irớươứ
0.4  
với hai biên đối diện của mặt kẻ  
Duong cong Bspline  
0.6  
P1(u) và P2(u)  
0.6  
0.7  
0.8  
0.8  
0.9  
1
1
•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 = [(1 - u) u]  
P1(v)  
P2(v)  
⎡
⎢
⎣
⎤
⎥
⎦
9
10  
Mặt tròn xoay  
Revolution surface  
VD - Mặt tròn xoay  
z Mặt được xây dựng bởi
thẳng hay 1 đường cong phẳng,  
quanh một trục trong không gian  
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à:  
z
Giả sử đường cong phẳng có dạng  
P(t) = [ x(t) y(t) z(t) ] = P1 + (P1 - P2)t  
với các thành phần Đề-các:  
x(t) = x1 + (x2- x1)t = 1+5t  
0 ≤ t ≤ 1  
P(t)=[x(t) y(t) z(t)] 0≤t≤tmax  
z
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à  
y(t) = y1 + (y2- y1)t = 1+t  
Q(t, φ ) = [ x(t) y(t) cosφ z(t) sinφ ]  
0 ≤ φ ≤ 2π  
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φ ]  
7
2
3
2
π
3
3
2
π
3
⎡
⎤
=
=
cos  
sin  
⎢
⎣
⎥
⎦
⎡
⎢
⎣
⎤
⎥
⎦
7
2
3
4
3 3  
11  
12  
4
2
CNTT-DHBK Hanoi  
Ví dụ về mặt Sweept  
Extrusion  
Mặt trượt - Sweept Surface  
1
0.5  
0
-0.5  
z
Hình vuông xác định bởi 4 đỉnh :  
z
z
Sweep surface là mặt được tạo bởi  
bằng cách trượt một thực thể  
-1  
1
P1[0 -1 0], P2[0 -1 -1],  
10  
0
8
6
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.  
P3[0  
1
-1], P4[0  
1
1]  
-1  
4
2
-2  
0
z
Đường cong trượt  
x= 10v y= cos(Πv) – 1  
z
Q(u,v) = P(u)*[ T(v) ]  
0
−1  
1
1
⎡
⎢
⎢
⎤
1
0.5  
0
⎡
1
0
0
0
1
0
0
0
1
0
0
0
⎤
⎥
⎥
⎡P1  
⎤
⎥
P(u) thực thể cần trượt  
0
−1 −1  
1
⎢
⎢
⎢
⎢
⎢
⎥
⎥
⎥
P2  
⎢
T(v) =  
P(u) =  
= ⎢0  
1
1
−1 1⎥  
[ 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 đó)  
0⎥  
⎢
⎢
⎣
P3⎥  
⎥
⎢
⎥
0
1
1
1
⎥
⎢
⎥
10v cos(Πv) −1  
1
P4  
⎦
⎣
⎦
⎢
⎥
0
−1  
1
-0.5  
⎣
⎦
-1  
1
Quay 1 góc khi trượt  
⎡ 1  
0
0
0
0
⎤
⎥
⎥
0
10  
Ví dụ:  
⎢
8
⎡ cos(ϕ)  
sin(ϕ)  
cos(ϕ)  
0
0
0
1
0
0
0
⎤
⎥
⎥
-1  
0
cos(2Πv) sin(2Πv)  
6
P1[0  
0
0], P2[0  
3
0].  
⎢
⎢
4
T(v) =  
-2  
− sin(ϕ)  
2
⎢
⎢
⎢
P(t) = P1 + (P2 – P1)*u = [0 3u  
0
1]  
0
− sin(2Πv) cos(2Πv) 0⎥  
-3  
0
⎢
⎢
⎣
0
0⎥  
⎥
0 ≤ u,v ≤ 1  
⎥
10v  
0
0
1
⎦
⎣
10v  
cos(Πv) −1  
1
⎦
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)  
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
+ 0 A1(v)  
v P01  
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)  
= v P01 + (1 - v)P00 + A3(v) -(1 - v)P00 - v P01  
= A3(v)  
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  
z Hermite  
z Bezier  
Q
(u, v  
)
=
Cij uv 0≤ u, v ≤1  
∑∑  
i=0 j=0  
z B-Spline  
z
Q(u, v) = [U ][C ][V ]T  
0 ≤ u, v <1  
z
Q(u, v) = [U][MH] [B] [MH]T [V]T  
2
−3  
0
−2  
3
1
1
⎡
⎢
⎢
⎢
⎢
⎣
⎤
⎥
−2 −1  
⎥
[
MH =  
]
⎥
⎥
⎦
0
1
0
0
0
1
0
17  
18  
3
CNTT-DHBK Hanoi  
Mảnh-patch Bézier  
Mảnh Bezier bậc 3  
z
z
Mô Hình dạng tổng quát  
z 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ó  
Mảnh Bezier được hình thành trên  
phép trượt của đường cong Bezier.  
z Hình thành trên 4x4 diểm kiểm soát  
z Công thức có dạng  
z
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
Q
(
u, v  
)
=
B
(
u
)
Bm , j  
(
v P  
)
∑ ∑  
n ,i  
ij  
i = 0 j = 0  
z Đa thức Bernstein có dạng:  
z
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]  
19  
20  
Q
(
u,v  
)
=
[
U
] [  
N
] [  
B
] [M]T [V T  
]
Tính chất của mảnh Bézier  
z Mặt cong là liên tục và  
đạo hàm riêng các bậc  
z Q(u,v) là mọi điểm nằm trên mặt cong và  
z 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ể
soát  
[
U
]
=
[
uu
u
1
]
z Đạo hàm riêng của mặt  
cong có dạng:  
−1  
3
3
− 6  
3
− 3  
3
1
0
0
0
⎡
⎢
⎢
⎢
⎢
⎣
⎤
⎥
⎥
⎥
⎥
⎦
z Mặt cong đi qua 4 điểm cận  
P00, P01,P10,P11 hay chính  
xác  
[N] và [M] được biểu diễn =  
− 3  
1
0
0
0
Q(0,0)=P00, Q(0,1)=P01,  
Q(1,0)=P10, Q(1,1)=P11  
3
−1  
3
3
− 6  
3
− 3  
3
1
0
0
0
B
B01 B02  
B
1
0
0
0
− 3  
3
3
− 6  
3
−1 ⎡  
⎤
⎥
⎥
⎥
⎥
⎡
⎢
⎢
⎤⎡  
⎥⎢  
⎥⎢  
⎥⎢  
⎥⎢  
⎦⎣  
⎤⎡  
⎤ v  
00  
03 ⎥⎢  
⎥
⎥
⎥
⎥
⎦
⎢
⎢
⎢
⎢
v2  
B10 B11 B12 B13  
3
− 3  
1
z Đường cong biên của Mặt  
Bezier là đường cong Bezier  
u3 u2  
u
1
]
⎥⎢  
⎥⎢  
Q
(
u,v  
)
=
[
⎢
⎢
⎣
− 3  
1
0
B20 B21 B22  
B
0
v
23 ⎥⎢  
0
0
B30 B31 B32 B33 ⎦⎣  
0
0
1
⎢
⎣
⎥
⎦
21  
22  
Nối 2 miếng Bezier  
Bậc 3(Bi-cubic)  
z
am biến bằng số điểm kiểm soát trừ 1.  
z Hai mảnh Q và R cùng chun
tham biến tại biên (Giả sử u)  
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.  
z Hai đường cong biên phải  
bằng nhau Q(1,v)=R(0,v)  
z Hệ số của cột cuối ma trận Q  
= cột đầu ma trận R  
z Tương tự: Nếu theo hướng  
của v thì hàng sẽ thay cột ma  
trận  
z
z
z
z
z
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.  
z
Như vậy lưới đa giác cho bề mặt sẽ là 4 × 4  
23  
24  
4
CNTT-DHBK Hanoi  
ĐÁNH GIÁ MẶT CONG BEZIER  
Mặt cong B-Spline  
n
m
z ƯU ĐIỂM  
z Phương trình mặt B-spline  
z Pij là điểm kiểm soát  
Q(u,w) =  
Ni,k (u).M j,h (w).P  
i, j  
∑∑  
– Dễ trong xây dựng chương trình  
i=1 j=1  
1 x ≤ u < x  
⎧
– Dễ trong render  
i
i+1  
z N và M là đa thức B-spline  
Ni,k (u) =  
⎨
⎩
0 otherwise  
– Là mặt cong mạnh biểu diễn được nhiều hình phức  
tạp  
z Với các mặt cong mở mặt  
cong phụ thuộc vào các  
knot vector  
(u − xi )Ni,k−1(u) (xi+k − u).Ni+1,k−1(u)  
Ni,k(u) =  
+
xi+k−1 − xi  
1 ≤ i ≤ k  
= i − k(k +1 ≤ i ≤ n)  
xi+k − xi+1  
z NHƯỢC ĐIỂM  
– Không thể mô tả được hình cầu  
x
x
= 0  
(
)
⎧
⎪
⎨
i
i
– Đ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  
⎪
xi = n − k +1(n +1 ≤ i ≤ n + k)  
⎩
25  
27  
29  
26  
Đặc điểm của mặt cong  
B-Spline  
Mặt cong tham biến bậc 3  
z
z
z
z
z
Số bậc caonhấ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 the
Bề mặt B-spline thì không c
Bề mặt sẽ thay đổi nếu ta 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ố.  
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.  
z Dựa vào việc xây dựng và tạo  
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ạ.  
z Q( u, v ) = [ x y z ]  
z
z = [ x( u, v ) y( u  
,v ) z( u, v ) ] umin  
≤ u ≤ umax , vmin ≤ v ≤ vmax  
z
z
28  
z Bậc cao nhất của m
kiểm soát -1 theo hướng đó  
z Đạ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.  
z Mặt B.spline không thay đổi dưới tác động của các  
phép biến đổi affine  
z 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.  
5
pdf 5 trang yennguyen 17940 Free
Bạn đang xem tài liệu "Bài giảng Đồ họa hiện thực ảo - Bài 10: Mô hình bề mặt Surface. Các phương pháp xây dựng - 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

File đính kèm:

  • pdfbai_giang_do_hoa_hien_thuc_ao_bai_10_mo_hinh_be_mat_surface.pdf