[r]
(1)1
Mơ hình bềmặt – Surface Các phương pháp xây dựng
Khái niệm Constructive surface Bềmặt tổng hợp Bềmặt tam giác Le Tan Hung www.dohoavietnam.com
2
I Các khái niệm cơbản
z Mặt cong-Surface
Là quỹ đạo chuyểnđộng đừơ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 tạo bềmặt toán học nhữngđiểm dữliệu
– Dựa 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 cách trực diện thơng qua tương tácđồhoạ z Biểu diễn theo mảnh
– Biểu diễn miếng tứgiác -quadrilateraPatches
– 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 = 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) ]
3
Ưu điểm dùng mặt lưới
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 mơment của mặt.
Với khảnăng tô màu bềmặt thực tếcho phép việc kiểm tra thiết kếđơn giản.
Tạo 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 phương pháp thiết kế cổ
điển
4
Biểu diễn mảnh tứgiác
z 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 tham biến
– Cácđiểm Q(0,0) Q(0,1), Q(1,0), Q(1,1) cận mảnh – Cácđường cong Q(1,v), Q(0,v), Q(u,0), Q(u,1) biên 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
5
Kết nối mảnh tứgiác
z Thực thểhình học biểu diễn thơng qua mảnh dạng z Các mảnh có thểnối với theo
các hướng u,v mảnh cùng hướngđó
z Nếu mọiđiểm biên mảnh = nhau, hay biên = mảnh liên tục bậc Co
z Nếu biên = vàđạo hàm bằng nhau hướng thi mảnh gọi kết nối bậc C1
6
Hệ tọa độ
Barycentric Coordinates ?
Tập điểm P1,P2 Pn Tập tổ hợp đ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 gias trị toạ
độ nates
k1,k2,k3, kn
(2)7
Tam giác Triangular
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 = P = k1P1 + k2P2+ k3P3
Nếu Hệsốki > <0 điểm P sẽnằm tam giác Q
Nếu Hệsốki = =0 điểm P sẽnằm cạnh tam giác
8
Bi-Linear
z Là mặt nội suy từ4 điểm P00; P01; P10; P11trong 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
z Dùngđểmơ tảcácđối tượng có hình dạng tứgiác nhưcờ, khăn z Mởrộng cho cácđối tượng loại
9
Mơ hình hố mặt cong Surface Patches
zRuled Surface
zCoon-Boolean Sum
zSurface of Revolution
zSwept Surface
–Extrusion
10
Ruled Surface
z Bềmặtđược xây dựng cách
cho trượt đoạn thẳng
đường cong
z Các mặt kẻnhậnđược 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 mặt kẻ
P1(u) P2(u)
0.2 0.4
0.6 0.8
1
0.6 0.7 0.8 0.9 1 1.5 2.5
Ruled Surface (Matke)
Duong cong Bspline Duong cong Bezier
•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 P1(v) P2(v) Thì mặt kẻcó phương trình
Q(u,v) = P1(v)(1-u) + P2(v)u ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ =
) (
) ( u] u) [(1
v P
v P
Mặt tròn xoay Revolution surface
z Mặtđược xây dựng bởiđường thẳng hay đường cong phẳng, quanh trục khơng gian
z Giảsử đường cong phẳng có dạng P(t)=[x(t) y(t) z(t)] 0≤t≤tmax
z Ví dụ: quay quanh trục x thực thểnằm mặt phẳng xy, phương trình bềmặt
Q(t, φ) = [ x(t) y(t) cosφ z(t) sinφ] 0≤φ≤2π
VD - Mặt tròn xoay
P1[1 0] P2[6 0] nằm mặt phẳng xy Quay đường thẳng quanh trục x mặt nón Xácđịnhđiểm mặt 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 ≤t ≤1 với 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 = Dùng phương trình
Q(1/2, π/3) = [ 1+5t (1+t)cosφ (1+t)sinφ]
⎥⎦ ⎤ ⎢⎣
⎡ =
3 sin 3 cos
(3)13
Mặt trượt -Sweept Surface z Sweep surface mặtđược tạo
bằng cách trượt thực thể
z ví dụ: mộtđường thẳng, đa giác, đường cong, hình… dọc theo đường khơng gian
z Q(u,v) = P(u)*[ T(v) ]
P(u) thực thểcần trượt
[ T(v) ] ma trận biếnđổi([ T(v) ] có thểlà ma trận tịnh tiến, quay, hay tỉlệ…hoặc kết hợp nhiều phép biếnđổiđó) Ví dụ:
P1[0 0], P2[0 0]
P(t) = P1 + (P2 – P1)*u = [0 3u 1] ≤ u,v≤1 ⎢⎢
⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ Π Π − Π Π = 0 10 ) cos( ) sin( 0 ) sin( ) cos( 0 0 ) ( v v v v v v T 14 10 -3 -2 -1 -1 -0.5 0.5 10 -2 -1 -1 -0.5 0.5
Ví dụvềmặt Sweept Extrusion
z Hình vng xácđịnh đỉnh : P1[0 -1 0], P2[0 -1 -1], P3[0 -1], P4[0 1]
z Đường cong trượt
x= 10v y= cos(Πv) –
Quay góc trượt
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − − − = ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ = 1 1 1 1 1 1 1 ) ( P P P P u P ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ − Π = 1 ) cos( 10 0 0 0 0 ) ( v v v T ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ − Π − 1 ) cos( 10 0 0 ) cos( ) sin( 0 ) sin( ) cos( v v ϕ ϕ ϕ ϕ 15 Boolean sum Coon surface
Mặtđược xây dựng điểm
cácđường cong biên
S(u,v) Mặt nội suy đườ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 cácđỉnh mảnh
Ai(u) phương trìnhđường biên
16
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) + A1(v)
+ A3(v) - (1 -v)P00 -v P01 = v P01 + (1 -v)P00 + A3(v) -(1 -v)P00 -v P01 = A3(v)
17
Surface from Curves
zHermite
zBezier
zB-Spline
18
Mặt cong bậc ba Hermite
( ) ∑∑ = = ≤ ≤ = 3 1 0 i j j i
ijuv uv
C v
u
Q , ,
[ ] ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − − = 0 1 0 3 1 2 H M
z Q(u, v) = [U ][C ][V ]T
0 ≤u, v <1
(4)19
Mảnh-patch Bézier z Mô Hình dạng tổng quát
z Mảnh Bezier hình thành phép trượt củađường cong Bezier
z Việc xây dựng nên mảnh Bezier
cácđiểm kiểm soát, tạo nênđa diện kiểm sốt
z Phương trình tổng quát mặt cong
tham biến Bezier có dạng: u,v E [0, 1]
20
Mảnh Bezier bậc 3
z Mặt cong Bezier bậc mặt phổbiến trong CG, vìđiđộ đơn giản nó
z Hình thành 4x4 diểm kiểm sốt z Cơng thức có dạng
z Đa thức Bernstein có dạng:
( ) ( ) ( )ij i j
j m i
n u B v P
B v
u
Q ∑ ∑
= = =
0
0
, ,
,
21
Tính chất của mảnh Bézier z Tính bao lồi: Mặt cong
Bezier ln nằm trongđa diện lồi cácđiểm kiểm sốt
z Mặt cong qua đ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 z Đường cong biên Mặt
Bezier làđường cong Bezier
z Mặt cong liên tục đạo hàm riêng bậc tồn liên tục.
z Đạo hàm riêng mặt cong có dạng:
22
zQ(u,v) là mọiđiểm nằm mặt cong và
( ) [ ]
⎥ ⎥ ⎥ ⎥ ⎥
⎦ ⎤
⎢ ⎢ ⎢ ⎢ ⎢
⎣ ⎡
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢
⎢ ⎢ ⎢ ⎣ ⎡
− −
− −
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢
⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢
⎢ ⎢ ⎢ ⎣ ⎡ −
− − − =
1 v v v
1 0
3 0
3
1 3
B B B B
B B B B
B B B B
B B B B
0 0
0 3
0
1 3 1 u u u v , u Q
2
33 32 31 30
23 22 21 20
13 12 11 10
03 02 01 00
3
( ) [ ] [ ] [ ] [ ] [ ]T T
V M B N U v , u
Q =
[N] và[M] biểu diễn= [ ]U=[u3 u2 u 1]
[ ]V=[v3 v2 v 1]
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢
⎢ ⎢ ⎢ ⎣ ⎡ −
− − −
0 0
0 3
0
1 3
Nối miếng Bezier Bậc 3(Bi-cubic)
z Hai mảnh Q R chung tham biến biên (Giảsửu) z Haiđường cong biên phải
bằng 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 hàng sẽthay cột ma trận
z Bậc mặt cong theo hướng tham biến sốđiểm kiểm soát trừ1
z Tính liên tục hayđạo hàm mặt theo tham biến sốđiểm kiểm sốt trừ2
z Hình dạng mặt biếnđổi theo cạnh củađa giác kiểm soát
z Mặt lưới chỉđi qua cácđiểm góc cạnh củađa giác kiểm soát
z Mặt lưới chỉnằm phần giới hạn lưới củađa giác lồi kiểm soát
z Mặt lưới không thayđổi tácđộng phép biếnđổi affine
z Mỗiđường biên 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 cácđường Bezier bậc3
(5)25
ĐÁNH GIÁ MẶT CONG BEZIER
zƯ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
zNHƯỢC ĐIỂM
– Khơng thểmơ tả hình cầu
– Điều kiệnđểnối mặt cong cần nhiềuđiểm Dẫn đến khảnăngđiều khiển
26
Mặt cong B-Spline
z Phương trình mặt B-spline z Pij làđiểm kiểm soát z N M làđa thức B-spline z Với mặt cong mởmặt
cong phụthuộc vào các knot vector
j i n
i m
j
h j k
i u M w P
N w
u
Q ,
1
, ,( ). ( .)
) ,
( ∑∑
= = =
⎩ ⎨ ⎧ ≤ <
= +
otherwise x u x u
Nik 0i i )
(
,
1 , 1
1
, () ( ) ()
) ( ) ( ,
+ +
− + + −
+ −
− − + − − =
i k i
k i k i i k i
k i i
x x
u N u x x x
u N x u u k Ni
( )
⎪ ⎩ ⎪ ⎨ ⎧
+ ≤ ≤ + + − =
≤ ≤ + − =
≤ ≤ =
) (
) (
k n i n k n x
n i k k i x
k i x
i i i
27
Đặcđiểm của mặt cong B-Spline
z Sốbậc caonhất bềmặt theo hướng số điểm kiểm
sốt -1 theo hướngđó
z Đạo hàm riêng phương trình bềmặt theo tham biến có bậc
bằng số điểm kiểm sốt theo tham biếnđó trừ2
z Bềmặt B-spline khơng chịuảnh hưởng phép biếnđổi anfine
Bềmặt sẽthayđổi ta thayđổiđa giác kiểm soát
z ảnh hưởng mộtđiểm kiểm soátđơnđược giới hạn + - k/2
h/2 khoảngđối với tham số
z Nếu số đỉnh củađa giác kiểm soát sốbậc theo tham biến
và khơng cóđiểm kép mặt B-spline sẽchuyển thành mặt Bezier
z Nếu cácđa giác kiểm sốt có dạng tam giác lướiđa giác kiểm sốt sẽcó hình dáng gần giống với bềmặt cong
z Mỗi mặt B-Spline nằm bao lồi củađa giác kiểm sốt z Mỗi mặt B-Spline có dángđiệu ln bám theo hình dáng củađa giác
kiểm sốt
28
Mặt cong tham biến bậc3
z Dựa vào việc xây dựng tạo bề mặt toán học những điểm dữliệu
z Dựa 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 tương tácđồhoạ
z Q( u, v ) = [ x y z ] z = [ x( u, v ) y( u
,v ) z( u, v ) ] umin ≤u ≤umax , vmin≤v ≤vmax
29
z Bậc cao nhất của mặt theo mỗi hướng bằng sốđiểm kiểm số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 số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