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
I. Các khái niệm cơ bản
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ạ.
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) 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) ]
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
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
Tóm tắt nội dung 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
CNTT-DHBK Hanoi hunglt@it-hut.edu.vn I. Cáckháiniệmcơ 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ỹđạochuyển động của1 đừơng cong tạonên z Biể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 Khái niệm thay đổimộtcáchtrựcdiện thông qua các tương tác đồ hoạ. Constructive surface z Biểudiễn theo mảnh Bề mặttổng hợp – Biểudiễnmiếng tứ giác - quadrilatera Patches Bề mặt tam giác – Biểudiễnmiếng tam giác-Triangular Patches Le Tan Hung x=x(u,v,w) u,v,w E [0, 1] y=y(u,v,w) u + v + w = 1 www.dohoavietnam.com 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) ] 1 2 Biểudiễnmảnh Ưu điểmdùngmặtlưới tứ giác z Phương trình 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 x=x(u,v) bề mặt. y=y(u,v) u,v E [ 0, 1] z=z(u,v) Cho phépxác định diệntích, xác định vùng củabề mặt hay cácmômentcủamặt. Q(u,v) = Q[ x=x(u,v) y=y(u,v) z=z(u,v) ] Thành phần Vớikhả năng tô màubề mặttrongthựctế cho phép – u,v là các tham biến việckiểmtrathiếtkế đơngiả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 Tạoracác thông tin cầnthiếtchoviệcsảnxuấtvà tạo – Đạohàmriêngtại điểm Q(u,v) xác định vector tiếptuyếntheohướng u, v 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 3 4 Hệ tọa độ Barycentric Coordinates ? Kếtnốimảnh tứ giác Tập các điểm P1,P2 ... Pn z Thựcthể hình họcbiểudiễn thông Tập các tổ hợp của các điểm đó qua các mảnh cùng dạng z Các mảnh có thể nốivới nhau theo k1P1 + k2P2 + k3P3 ... + knPn các hướng u,v khi 2 mảnh cùng Với hướng đó k1 + k2 + k3 + ... + kn =1 z Nếumọi điểmtrênbiêncủa2 mảnh = các điểm tạo thành không gian affine với các gias trị toạ nhau, hay 2 biên = nhau. 2 mảnh liên độ nates tụcbậcCo k1,k2,k3,..kn z Nếu 2 biên = nhau và đạo hàm bằng được gọi là hệ toạ độ barycentric. nhau trên cùng 1 hướng thi 2 mảnh gọilàkếtnốibậcC1 5 6 1 CNTT-DHBK Hanoi hunglt@it-hut.edu.vn Tam giác Triangular Bi-Linear Trong tam giác các điểmcódạng P1, P2, P3 z Là mặtnộisuytừ 4 điểm P00; P01; P10; P11 trong không gian Hệ số: k1, k2, k3 E [ 0, 1] Với(u,v) [0; 1] [0; 1] k1 + k2 + k3 = 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 đốitượng có hình dạng tứ giác như cờ, khăn... NếuHệ số ki > 1 hoặc<0 điểmP sẽ nằm ngoài tam z Mở rộng cho các đốitượng cùng loại giác Q NếuHệ số ki = 1 hoặc=0 điểmP sẽ nằmtrêncạnh tam giác 7 8 Mô hình hoá các mặt cong Surface Patches Ruled Surface Ruled Surface (Matke) 3 z Bề mặt đượcxâydựng bằng cách 2.5 z Ruled Surface cho trượt1 đoạnthẳng trên 2 đường cong 2 z Coon-Boolean Sum z Các mặtkẻ nhận đượcbằng phép 1.5 nội suy tuyếntínhtừ hai đường 1 cong biên cho trướctương ứng 0.2 Duong cong Bezier với hai biên đốidiệncủamặtkẻ 0.4 z Surface of Revolution Duong cong Bspline 0.6 P1(u) và P2(u) 0.6 0.8 0.7 0.8 0.9 1 1 z Swept Surface •Phương trình mặtkẻ: Q(u,v) = P2(u)v + P1(u)(1-v) – Extrusion Nếuhaiđường cong cho trướctương ứng là P1(v) và P2(v) Thì mặtkẻ có phương trình ⎡P1(v) ⎤ Q(u,v) = P1(v)(1-u) + P2(v)u = [(1 - u) u] ⎢ ⎥ ⎣P2(v)⎦ 9 10 Mặttrònxoay Revolution surface VD - Mặttrònxoay z Mặt đượcxâydựng bởi đường P1[1 1 0] và P2[6 2 0] nằmtrongmặtphẳng xy. Quay đường thẳng thẳng hay 1 đường cong phẳng, quanh trụcx sẽđượcmộtmặt nón. Xác định điểmcủamặttại quanh mộttrục trong không gian t=0.5, φ =π/3. Phương trình tham số cho đoạnthẳng từ P1 tớiP2 là: z Giả sửđường cong phẳng có dạng P(t) = [ x(t) y(t) z(t) ] = P1 + (P1 - P2)t 0 ≤ t ≤ 1 P(t)=[x(t) y(t) z(t)] 0≤t≤tmax với các thành phần Đề-các: z Ví dụ: quay quanh trụcx mộtthựcthể nằmtrênmặtphẳng xy, phương x(t) = x1 + (x2- x1)t = 1+5t trình bề mặtlà 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 3 π 3 π ⎤ = cos sin ⎣⎢ 2 2 3 2 3 ⎦⎥ ⎡ 7 3 3 3 ⎤ 11 12 = ⎢ ⎥ ⎣ 2 4 4 ⎦ 2 CNTT-DHBK Hanoi hunglt@it-hut.edu.vn Ví dụ về mặt Sweept Mặttrượt-Sweept Surface 1 Extrusion 0.5 0 -0.5 z Hình vuông xác định bởi4 đỉnh : z Sweep surface là mặt đượctạobởi -1 P1[0 -1 0], P2[0 -1 -1], 1 bằng cách trượtmộtthựcthể 10 0 8 6 z ví dụ: một đường thẳng, đagiác, một P3[0 1 -1], P4[0 1 1] -1 4 2 -2 0 đường cong, một hình dọc theo một z Đường cong trượt đường trong không gian. x= 10v y= cos(Πv) – 1 z Q(u,v) = P(u)*[ T(v) ] 0 −1 1 1 1 ⎡ ⎤ ⎡ 1 0 0 0 P(u) thựcthể cầntrượt ⎡P1⎤ ⎢ ⎥ ⎤ ⎢ ⎥ 0 −1 −1 1 ⎢ ⎥ P2 ⎢ ⎥ 0 1 0 0 0.5 ⎢ ⎥ T (v) = ⎢ ⎥ [ T(v) ] là ma trậnbiến đổi([ T(v) ] có thể là P(u) = = ⎢0 1 −1 1⎥ ⎢ ⎢P3⎥ ⎢ ⎥ 0 0 1 0⎥ 0 1 1 1 ⎢ ⎥ 0 ma trậntịnh tiến, quay, hay tỉ lệ hoặc ⎢ ⎥ ⎢ ⎥ 10v cos(Πv) −1 0 1 ⎣P4⎦ ⎣ ⎦ là kếthợpcủanhiềuphépbiến đổi đó) ⎣⎢0 −1 1 1⎦⎥ -0.5 -1 ⎡ 1 0 0 0⎤ Quay 1 góc khi trượt 1 0 10 Vídụ: ⎢ ⎥ ⎡ cos(ϕ) sin(ϕ ) 0 0⎤ 8 P1[0 0 0], P2[0 3 0]. 0 cos(2Πv) sin(2Πv) 0 -1 6 ⎢ ⎥ ⎢ ⎥ -2 4 T (v) = − sin(ϕ) cos(ϕ) 0 0 2 P(t) = P1 + (P2 – P1)*u = [0 3u 0 1] ⎢ 0 − sin(2Πv) cos(2Πv) 0⎥ ⎢ ⎥ -3 0 ⎢ 0 ≤ u,v ≤ 1 ⎢ ⎥ 0 0 1 0⎥ 10v 0 0 1⎦ ⎢ ⎥ 13 ⎣ 14 ⎣ 10v cos(Πv) −1 0 1⎦ Boolean sum Example Coon surface Boolean Sum Surface Mặt đượcxâydựng trên 4 điểmvà Vớiu = 0 các đường cong biên S(0,v) = S1(0,v) + S2(0,v) - P(0, v) S(u,v) Mặtnội suy trên 4 đường biên = v A0(0) + (1 - v)A2(0) + 0 A1(v) + 1 A3(v) - (1 - v)P00 - v P01 S(u; v) = S1(u, v) + S2(u, v) - P(u; v) = v P01 + (1 - v)P00 + A3(v) -(1 - v)P00 - v P01 Với: = A3(v) 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 15 16 Surface from Curves Mặtcongbậc ba Hermite 3 3 z Hermite i j 0 1 Q()u, v = ∑∑Cij u v ≤ u, v ≤ z Bezier ij==0 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 −2 1 1⎤ ⎢ ⎥ −3 3 −2 −1 []M = ⎢ ⎥ H ⎢ 0 0 1 0⎥ ⎢ ⎥ ⎣ 1 0 0 0⎦ 17 18 3 CNTT-DHBK Hanoi hunglt@it-hut.edu.vn Mảnh-patch Bézier Mảnh Bezier bậc3 z Mô Hình dạng tổng quát z Mặt cong Bezier bậc3 làmặtphổ biếnnhấttrong z Mảnh Bezier được hình thành trên CG, vì đi độ đơngiảncủanó phép trượtcủa đường cong Bezier. z Hình thành trên 4x4 diểmkiểm soát z Việcxâydựng nên mảnh Bezier dưới các điểmkiểm soát, tạo nên đadiện z Công thứccódạng kiểm soát 3 3 Q ()u , v = ∑∑B n ,i ()()u B m , j v Pij ij==0 0 z Đathức Bernstein có dạng: z Phương trình tổng quát củamặt cong tham biếnBezier códạng: u,v E [0, 1] 19 20 T T Tính chấtcủamảnh Bézier Q()u,v = [][][][][]U N B M V z Mặt cong là liên tục và z Tính bao lồi: Mặt cong z Q(u,v) là mọi điểmnằmtrênmặt cong và Bezier luôn nằm trong đa đạo hàm riêng các bậc tồn tại của nó cũng liên 3 2 diệnlồicủacácđiểmkiểm [V] = [v v v 1] tục. soát 3 2 z Đạo hàm riêng củamặt [U]= [u u u 1] z Mặt cong điqua 4 điểmcận ⎡−1 3 − 3 1⎤ cong có dạng: ⎢ ⎥ P00, P01,P10,P11 hay chính [N] và [M] đượcbiểudiễn = ⎢ 3 − 6 3 0⎥ xác ⎢− 3 3 0 0⎥ ⎢ ⎥ Q(0,0)=P00, Q(0,1)=P01, ⎣ 1 0 0 0⎦ Q(1,0)=P10, Q(1,1)=P11 3 ⎡−1 3 − 3 1⎤⎡B 00 B 01 B 02 B 03 ⎤⎡1 − 3 3 −1⎤⎡v ⎤ ⎢ ⎥⎢ ⎥⎢ ⎥⎢ 2 ⎥ z Đường cong biên củaMặt 3 2 3 − 6 3 0 B10 B11 B12 B13 0 3 − 6 3 v Q()u,v = []u u u 1 ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥ ⎢− 3 3 0 0⎥⎢B 20 B 21 B 22 B 23 ⎥⎢0 0 3 − 3⎥⎢ v ⎥ Bezier là đường cong Bezier ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥ ⎣ 1 0 0 0⎦⎣B 30 B 31 B 32 B 33 ⎦⎣0 0 0 1 ⎦⎣⎢ 1 ⎦⎥ 21 22 Nối2 miếng Bezier Bậc 3(Bi-cubic) z Bậccủamặt cong theo mỗihướng của tham biếnbằng số điểmkiểmsoáttrừ 1. z Hai mảnh Q và R cùng chung z Tính liên tục hay đạohàmcủamặt theo mỗithambiếnbằng số điểmkiểmsoát tham biếntạibiên(Giả sử u) trừ 2. z Hai đường cong biên phải z Hình dạng củamặtbiến đổitheocáccạnh của đagiáckiểm soát. bằng nhau Q(1,v)=R(0,v) z Mặtlướichỉ điquacácđiểmgóccạnh của đagiáckiểm soát. z Hệ số củacộtcuốima trậnQ z Mặtlướichỉ nằm trong phầngiớihạnbởilướicủa đagiáclồikiểmsoát. = cột đầuma trậnR z Mặtlưới không thay đổidướitácđộng của các phép biến đổi affine. z Mỗi đường biên củamặtBezierlà1 đường cong Bezier vớimặt cong bậcba z Tương tự: Nếutheohướng Bezier các đường cong biên luôn đảmbảolàcácđường Bezier bậc 3. củav thìhàngsẽ thay cộtma z Như vậylưới đagiácchobề mặtsẽ là 4 × 4 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 z ƯU ĐIỂM z Phương trình mặtB-spline Q(u, w) = N (u).M (w).P – ∑∑ i,k j,h i, j Dễ trong xây dựng chương trình z Pij là điểmkiểm soát i==11j ⎧1 x ≤ u < x – Dễ trong render z N và M là đathức B-spline i i+1 Ni,k (u) = ⎨ ⎩ 0 otherwise – Là mặt cong mạnh biểudiễn được nhiềuhìnhphức z Vớicácmặt cong mở mặt tạp cong phụ thuộcvàocác (u − x )N (u) (x − u).N (u) Ni, k(u) = i i,k−1 + i+k i+1,k −1 z NHƯỢC ĐIỂM knot vector xi+k −1 − xi xi+k − xi+1 – Không thể mô tảđượchìnhcầu ⎧xi = 0()1 ≤ i ≤ k ⎪ – Điềukiện để nối2 mặt cong cầnrất nhiều điểm. Dẫn ⎨xi = i − k(k +1 ≤ i ≤ n) ⎪ đếnmấtkhả năng điềukhiển ⎩xi = n − k +1(n +1 ≤ i ≤ n + k) 25 26 Đặc điểmcủamặt cong B-Spline Mặtcongthambiếnbậc 3 z Số bậc caonhấtcủabề mặttheomỗihướng thì bằng sốđiểmkiểm soát -1 theo hướng đó. z Dựavàoviệcxâydựng và tạo z Đạo hàm riêng củaphương trình bề mặt theo mỗithambiếncóbậc bề mặt toán họctrênnhững bằng sốđiểmkiểm soát theo tham biến đótrừ 2. điểmdữ liệu z Bề 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 Dựatrênviệcxâydựng nên bề z ảnh hưởng củamột điểmkiểmsoátđơn đượcgiớihạnbởi + - k/2 mặtphụ thuộcvàobiếnsố có h/2 khoảng đốivớimỗithamsố. khả năng thay đổimộtcách z Nếusốđỉnh của đagiáckiểmsoátbằng số bậctheomỗithambiến trựcdiện thông qua các tương và không có điểm kép nào thì mặt B-spline sẽ chuyển thành mặt tác đồ hoạ. Bezier. z Q( u, v ) = [ x y z ] z Nế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. z = [ x( u, v ) y( u ,v ) z( u, v ) ] umin z MỗimặtB-Splineluônnằmtrongbaolồicủa đagiáckiểmsoát. ≤ u ≤ umax , vmin ≤ v ≤ vmax z Mỗ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. 27 28 z Bậ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. z Mặt B.spline không thay đổidướitác động củacác phépbiến đổi affine z Nếusố điểmkiểmsoátbằng số bậccủamặt cong cộng 1 thì mặt B-spline chuyểndạng Bezier. 29 5
File đính kèm:
- bai_giang_do_hoa_hien_thuc_ao_bai_10_mo_hinh_be_mat_surface.pdf