
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
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ặttổng hợp
Bềmặt tam giác
Le Tan Hung
www.dohoavietnam.com
2
I. Cáckháiniệmcơbản
zMặt cong-Surface
Là quỹđạochuyểnđộng của1 đừơng cong tạonên
zBiểudiễn tham biếnchomặt cong
–Dựavàoviệcxâydựng và tạobềmặt toán họctrênnhững điểmdữliệu
–Dựatrênviệcxâydựng nên bềmặtphụthuộc vào biếnsốcó khảnăng
thay đổimộtcáchtrựcdiện thông qua các tương tác đồhoạ.
zBiểudiễn theo mảnh
–Biểudiễnmiếng tứgiác - quadrilatera Patches
–Biểudiễnmiế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) ]
3
Ưuđiểmdùngmặtlưới
Cho phépphântích sớmvàdễdàng cácđặctính của
bềmặt, đường cong củabềmặtvàtính chấtvậtlýcủa
bềmặt.
Cho phépxácđịnh diệntích, xácđịnh vùng củabềmặt
hay cácmômentcủamặt.
Vớikhảnăng tô màubềmặttrongthựctếcho phép
việckiểmtrathiếtkếđơngiản.
Tạoracác thông tin cầnthiếtchoviệcsảnxuấtvàtạo
ra bềmặtnhưcode điềukhiểnsốđượcdễdàng thuận
tiệnhơnnhiềuso vớicácphương phápthiếtkếcổ
điển
4
Biểudiễnmảnh
tứgiác
zPhươ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ậncủamảnh
–Các đường cong Q(1,v), Q(0,v), Q(u,0), Q(u,1) là các biên củamảnh
–Đạohàmriêngtạiđiểm Q(u,v) xác định vector tiếptuyếntheohướng u, v
5
Kếtnốimảnh tứgiác
zThựcthểhình họcbiểudiễn thông
qua các mảnh cùng dạng
zCác mảnh có thểnốivới nhau theo
các hướng u,v khi 2 mảnh cùng
hướng đó
zNếumọiđiểmtrênbiêncủa2 mảnh =
nhau, hay 2 biên = nhau. 2 mảnh liên
tụcbậcCo
zNếu 2 biên = nhau và đạo hàm bằng
nhau trên cùng 1 hướng thi 2 mảnh
gọilàkếtnốibậcC1
6
Hệ tọa độ
Barycentric Coordinates ?
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 gias trị toạ
độ nates
k1,k2,k3,..kn
được gọi là hệ toạ độ barycentric.

CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
2
7
Tam giác
Triangular
Trong tam giác các điểmcódạng P1, P2, P3
Hệsố: k1, k2, k3 E [ 0, 1]
k1 + k2 + k3 = 1
P = k1P1 + k2P2+ k3P3
NếuHệsốki > 1 hoặc<0 điểmP sẽnằm ngoài tam
giác Q
NếuHệsốki = 1 hoặc=0 điểmP sẽnằmtrêncạnh
tam giác
8
Bi-Linear
zLà mặtnộisuytừ4 điểmP00; 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
zDùng để mô tảcác đốitượng có hình dạng tứgiác nhưcờ, khăn...
zMởrộng cho các đốitượng cùng loại
9
Mô hình hoá các mặt cong
Surface Patches
zRuled Surface
zCoon-Boolean Sum
zSurface of Revolution
zSwept Surface
–Extrusion
10
Ruled Surface
zBềmặtđượcxâydựng bằng cách
cho trượt1 đoạnthẳng trên 2
đường cong
zCác mặtkẻnhậnđượcbằng phép
nội suy tuyếntínhtừhai đường
cong biên cho trướctương ứng
với hai biên đốidiệncủamặtkẻ
P1(u) và P2(u)
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
•Phương trình mặtkẻ:
Q(u,v) = P2(u)v + P1(u)(1-v)
Nếuhaiđường cong cho trướctương ứng là P1(v) và P2(v)
Thì mặtkẻcó phương trình
Q(u,v) = P1(v)(1-u) + P2(v)u ⎥
⎦
⎤
⎢
⎣
⎡
=)(2
)(1
u] u) - [(1 vP
vP
11
Mặttrònxoay
Revolution surface
zMặtđượcxâydựng bởiđường
thẳng hay 1 đường cong phẳng,
quanh mộttrục trong không gian
zGiảsửđường cong phẳng có dạng
P(t)=[x(t) y(t) z(t)] 0≤t≤tmax
zVí dụ: quay quanh trụcx mộtthựcthểnằmtrênmặtphẳng xy, phương
trình bềmặtlà
Q(t,
φ
) = [ x(t) y(t) cos
φ
z(t) sin
φ
]
π
φ
20 ≤≤
12
VD - Mặttrònxoay
P1[1 1 0] và P2[6 2 0] nằmtrongmặtphẳng xy. Quay đường thẳng
quanh trụcx sẽđượcmộtmặt nón. Xác định điểmcủamặttại
t=0.5,
φ
=π/3.
Phương trình tham sốcho đoạnthẳng từP1 tớiP2 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
φ
]
⎥
⎦
⎤
⎢
⎣
⎡
=
⎥
⎦
⎤
⎢
⎣
⎡
=
4
33
4
3
2
7
3
sin
2
3
3
cos
2
3
2
7
ππ

CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
3
13
Mặttrượt-Sweept Surface
zSweep surface là mặtđượctạobởi
bằng cách trượtmộtthựcthể
zví dụ: mộtđường thẳng, đagiác, một
đường cong, một hình… dọc theo một
đường trong không gian.
zQ(u,v) = P(u)*[ T(v) ]
P(u) thựcthểcầntrượt
[ T(v) ] là ma trậnbiếnđổi([ T(v) ] có thểlà
ma trậntịnh tiến, quay, hay tỉlệ…hoặc
là kếthợpcủanhiềuphépbiếnđổiđó)
Vídụ:
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
14
0
2
4
6
8
10
-3
-2
-1
0
1
-1
-0.5
0
0.5
1
0
2
4
6
8
10
-2
-1
0
1
-1
-0.5
0
0.5
1
Ví dụvềmặt Sweept
Extrusion
zHình vuông xác định bởi4 đỉnh :
P1[0 -1 0], P2[0 -1 -1],
P3[0 1 -1], P4[0 1 1]
zĐường cong trượt
x= 10v y= cos(Πv) – 1
Quay 1 góc khi trượt
⎥
⎥
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎢
⎢
⎣
⎡
−
−
−−
−
=
⎢
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎥
⎦
⎤
=
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
ϕϕ
ϕϕ
15
Boolean sum
Coon surface
Mặtđượcxâydựng trên 4 điểmvà
các đường cong biên
S(u,v) Mặtnộ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ủamảnh 4
Ai(u) là các phương trình đường biên
16
Example
Boolean Sum Surface
Vớiu = 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)
17
Surface from Curves
zHermite
zBezier
zB-Spline
18
Mặtcongbậc ba Hermite
()
∑∑
==
≤≤=
3
0
3
0
10
ij
ji
ij vuvuCvuQ ,,
[]
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−−−
−
=
0 0 0 1
0 1 0 0
123 3
1 1 22
H
M
zQ(u, v) = [U ][C ][V ]T
0 ≤u, v <1
zQ(u, v) = [U][MH] [B] [MH]T[V]T

CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
4
19
Mảnh-patch Bézier
zMô Hình dạng tổng quát
zMảnh Bezier được hình thành trên
phép trượtcủađường cong Bezier.
zViệcxâydựng nên mảnh Bezier dưới
các điểmkiểm soát, tạo nên đadiện
kiểm soát
zPhương trình tổng quát củamặt cong
tham biếnBezier códạng:
u,v E [0, 1]
20
Mảnh Bezier bậc3
zMặt cong Bezier bậc3 làmặtphổbiếnnhấttrong
CG, vì điđộ đơngiảncủanó
zHình thành trên 4x4 diểmkiểm soát
zCông thứccódạng
zĐathức Bernstein có dạng:
() () ()
ij
ij
jmin PvBuBvuQ ∑∑
==
=3
0
3
0
,,
,
21
Tính chấtcủamảnh Bézier
zTính bao lồi: Mặt cong
Bezier luôn nằm trong đa
diệnlồicủacácđiểmkiểm
soát
zMặt cong điqua 4 điểmcậ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 củaMặt
Bezier là đường cong Bezier
zMặ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.
zĐạo hàm riêng củamặt
cong có dạng:
22
zQ(u,v) là mọiđiểmnằmtrênmặ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] đượcbiểudiễn=
[
]
[
]
1uuuU 23
=
[
]
[
]
1vvvV 23
=
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−
−
−−
0001
0033
0363
1331
23
Nối2 miếng Bezier
Bậc 3(Bi-cubic)
zHai mảnh Q và R cùng chung
tham biếntạibiên(Giảsửu)
zHai đường cong biên phải
bằng nhau Q(1,v)=R(0,v)
zHệsốcủacộtcuốima trậnQ
= cộtđầuma trậnR
zTương tự: Nếutheohướng
củav thìhàngsẽthay cộtma
trận
24
zBậccủamặt cong theo mỗihướng của tham biếnbằng sốđiểmkiểmsoáttrừ1.
zTính liên tục hay đạohàmcủamặt theo mỗithambiếnbằng sốđiểmkiểmsoát
trừ2.
zHình dạng củamặtbiếnđổitheocáccạnh củađagiáckiểm soát.
zMặtlướichỉđiquacácđiểmgóccạnh củađagiáckiểm soát.
zMặtlướichỉnằm trong phầngiớihạnbởilướicủađagiáclồikiểmsoát.
zMặtlưới không thay đổidướitácđộng của các phép biếnđổi affine.
zMỗiđường biên củamặtBezierlà1 đường cong Bezier vớimặt cong bậcba
Bezier các đường cong biên luôn đảmbảolàcácđường Bezier bậc3.
zNhưvậylướiđagiácchobềmặtsẽlà 4 ×4

CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
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ểudiễnđược nhiềuhìnhphức
tạp
zNHƯỢC ĐIỂM
–Không thểmô tảđượchìnhcầu
–Điềukiệnđể nối2 mặt cong cầnrất nhiềuđiểm. Dẫn
đếnmấtkhảnăng điềukhiển
26
Mặt cong B-Spline
zPhương trình mặtB-spline
zPij là điểmkiểm soát
zN và M là đathức B-spline
zVớicácmặt cong mởmặt
cong phụthuộcvàocác
knot vector
ji
n
i
m
j
hjki PwMuNwuQ ,
11
,, .)().(),( ∑∑
==
=
⎩
⎨
⎧<≤
=+
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
27
Đặcđiểmcủamặt cong
B-Spline
zSốbậc caonhấtcủabềmặttheomỗihướng thì bằng sốđiểmkiểm
soát -1 theo hướng đó.
zĐạo hàm riêng củaphương trình bềmặt theo mỗithambiếncóbậc
bằng sốđiểmkiểm soát theo tham biếnđótrừ2.
zBềmặt B-spline thì không chịuảnh hưởng của phép biếnđổi anfine.
Bềmặtsẽthay đổinếu ta thay đổiđagiáckiểmsoát.
zảnh hưởng củamộtđiểmkiểmsoátđơnđượcgiớihạnbởi + - k/2
h/2 khoảng đốivớimỗithamsố.
zNếusốđỉnh củađagiáckiểmsoátbằng sốbậctheomỗithambiến
và không có điểm kép nào thì mặt B-spline sẽchuyển thành mặt
Bezier.
zNếucácđagiáckiểm soát có dạng tam giác thì lướiđagiáckiểm
soát sẽcó hình dáng gầngiống vớibềmặt cong.
zMỗimặtB-Splineluônnằmtrongbaolồicủađagiáckiểmsoát.
zMỗimặt B-Spline có dáng điệu luôn bám theo hình dáng củađagiác
kiểm soát.
28
Mặtcongthambiếnbậc3
zDựavàoviệcxâydựng và tạo
bềmặt toán họctrênnhững
điểmdữliệu
zDựatrênviệcxâydựng nên bề
mặtphụthuộcvàobiếnsốcó
khảnăng thay đổimộtcách
trựcdiện thông qua các tương
tác đồhoạ.
zQ( u, v ) = [ x y z ]
z= [ x( u, v ) y( u
,v ) z( u, v ) ] umin
≤u ≤umax , vmin ≤v ≤vmax
29
zBậc cao nhấtcủamặttheomỗihướng bằng sốđiểm
kiểmsoát -1 theo hướng đó
zĐạohàmriêngcủaphương trình bềmặttheomột
hướng cóbậcbằng sốđiểmkiểmsoát-2.
zMặt B.spline không thay đổidướitácđộng củacác
phépbiếnđổi affine
zNếusốđiểmkiểmsoátbằng sốbậccủamặt cong
cộng 1 thìmặt B-spline chuyểndạng Bezier.