Giáo trình Đồ họa - Bài 9: Mặt cong
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Đồ họa - Bài 9: Mặt cong", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- giao_trinh_do_hoa_bai_9_mat_cong.pdf
Nội dung text: Giáo trình Đồ họa - Bài 9: Mặt cong
- Bài 9 MẶT CONG © Copyright Copyright © Showeet.com Trịnh Thành Trung trungtt@soict.hust.edu.vn 1
- 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 © Copyright Copyright © Showeet.com - 2
- 1 © Copyright Copyright © Showeet.com KHÁI NIỆM -
- Các khái niệm cơ bản • Mặt cong – Surface: Là quỹ đạo chuyển động của 1 đường cong tạo nên © Copyright Copyright © Showeet.com 4
- Biểu diễn mặt cong • 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 Copyright © Showeet.com • 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) ] 5
- Biểu diễn 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 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 Copyright © Showeet.com 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 6
- Biểu diễn mảnh tứ giác • 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 Copyright © Showeet.com theo hướng u, v 7
- Kết nối mảnh tứ giác • 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 Copyright © Showeet.com nhau trên cùng 1 hướng thi 2 mảnh gọi là kết nối bậc C1 8
- Hệ tọa độ Barycentric • 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 Copyright © Showeet.com được gọi là hệ toạ độ barycentric. 9
- Tam giác • 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 Copyright © Showeet.com trên cạnh tam giác 10
- Bi-Linear • 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 © Copyright Copyright © Showeet.com • Mở rộng cho các đối tượng cùng loại 11
- 2 © Copyright Copyright © Showeet.com MÔ HÌNH HÓA MẶT CONG -
- Mô hình hóa mặt cong • Ruled Surface • Coon-Boolean Sum • Surface of Revolution • Swept Surface Extrusion © Copyright Copyright © Showeet.com 13
- Ruled Surface • Bề mặt được xây dựng bằng cách cho Ruled Surface (Matke) trượt 1 đoạn thẳng trên 2 đường cong 3 • Các mặt kẻ nhận được bằng phép nội 2.5 suy tuyến tính từ hai đường cong biên 2 cho trước tương ứng với hai biên đối 1.5 1 diện của mặt kẻ P1(u) và P2(u) 0.2 Duong cong Bezier 0.4 Duong cong Bspline Phương trình mặt kẻ: 0.6 0.6 0.8 0.7 Q(u,v) = P2(u)v + P1(u)(1-v) 0.8 0.9 Nếu hai đường cong cho trước tương 1 1 ứng là P1(v) và P2(v) thì mặt kẻ có Copyright © Showeet.com phương trình P1(v) Q(u,v) = P1(v)(1-u) + P2(v)u [(1 - u) u] P2(v) 14
- 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 • 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 Copyright © Showeet.com phẳng xy, phương trình bề mặt là Q(t, ) = [ x(t) y(t) cos z(t) sin ] 0 2 15
- Ví dụ mặt tròn xoay • 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 ] 7 3 3 Copyright © Showeet.com cos sin 2 2 3 2 3 7 3 3 3 2 4 4 16
- Mặt trượt - sweept surface • 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ụ: © Copyright Copyright © Showeet.com 1 0 0 0 P1[0 0 0], P2[0 3 0]. 0 cos(2v) sin(2v) 0 P(t) = P1 + (P2 – P1)*u = [0 3u 0 1] T (v) 0 sin(2v) cos(2v) 0 0 u,v 1 10v 0 0 1 17
- Ví dụ về mặt sweept extrusion • 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 0 1 1 1 P1 1 0 0 0 0 1 1 1 P2 0 1 0 0 P(u) 0 1 1 1 T (v) P3 0 0 1 0 0 1 1 1 10v cos(v) 1 0 1 P4 0 1 1 1 • Quay 1 góc khi trượt Copyright © Showeet.com cos( ) sin( ) 0 0 sin( ) cos( ) 0 0 0 0 1 0 10v cos(v) 1 0 1 18
- 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 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); Copyright © Showeet.com • P là các đỉnh của mảnh 4 • Ai(u) là các phương trình đường biên 19
- Ví dụ 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) + 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) © Copyright Copyright © Showeet.com 20
- 3 XÂY DỰNG MẶT CONG Copyright © Showeet.com TỪ ĐƯỜNG CONG -
- Xây dựng mặt cong từ đường cong • Hermite • Bezier • B-Spline © Copyright Copyright © Showeet.com 22
- Mặt cong bậc ba Hermite 3 3 i j Q u, v Cij u v 0 u, v 1 i 0 j 0 Q(u, v) = [U ][C ][V ]T 0 u, v <1 Q(u, v) = [U][MH] [B] [MH]T [V]T 2 2 1 1 3 3 2 1 M H 0 0 1 0 Copyright © Showeet.com 1 0 0 0 23
- Mảnh-patch Bézier • 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: © Copyright Copyright © Showeet.com • u,v E [0, 1] 24
- Mảnh Bezier bậc 3 • 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 3 3 Q u,v Bn,i u Bm, j v Pij i 0 j 0 • Đa thức Bernstein có dạng: 3 Copyright © Showeet.com B0(t) = (1-t) 2 B1(t) = 3t(1-t) 2 B2(t) = 3t (1-t) 3 B3(t) = t 25
- Tính chất của mảnh Bézier • Tính bao lồi: Mặt cong • Mặt cong là liên tục và Bezier luôn nằm trong đa đạo hàm riêng các bậc diện lồi của các điểm kiểm tồn tại của nó cũng liên soát tục. • Mặt cong đi qua 4 điểm cận • Đạo hàm riêng của mặt P00, P01,P10,P11 hay cong có dạng: 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 Copyright © Showeet.com Bezier là đường cong Bezier 26
- • Q(u,v) là mọi điểm nằm trên mặt cong và Q u,v U N B MT VT V v3 v2 v 1 U u3 u2 u 1 1 3 3 1 3 6 3 0 [N] và [M] được biểu diễn = 3 3 0 0 1 0 0 0 3 1 3 3 1 B00 B01 B02 B03 1 3 3 1 v Copyright © Showeet.com 3 6 3 0 B B B B 0 3 6 3 v2 Q u,v u3 u2 u 1 10 11 12 13 3 3 0 0 B20 B21 B22 B23 0 0 3 3 v 1 0 0 0 B30 B31 B32 B33 0 0 0 1 1 27
- Nối 2 miếng Bezier bậc 3 • 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 Copyright © Showeet.com 28
- • 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. Copyright © Showeet.com • 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 29
- Đánh giá mặt cong bezier • Ư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 © Copyright Copyright © Showeet.com – Đ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 30
- Mặt cong B-spline n m • Phương trình mặt B- Q(u,w) Ni,k (u).M j,h (w).Pi, j spline i 1 j 1 1 xi u xi 1 Ni,k (u) • Pij là điểm kiểm soát 0 otherwise • N và M là đa thức B- (u x )N (u) (x u).N (u) Ni,k(u) i i,k 1 i k i 1,k 1 spline xi k 1 xi xi k xi 1 • Với các mặt cong mở xi 0 1 i k mặt cong phụ thuộc xi i k(k 1 i n) xi n k 1(n 1 i n k) vào các knot vector Copyright © Showeet.com 31
- Đặc điểm của mặt cong B-spline • 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. Copyright © Showeet.com • Ả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ố. 32
- Đặc điểm của mặt cong B-spline (tiếp) • 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 . Copyright © Showeet.com • 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. 33
- Mặt cong tham biến bậc 3 • 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 ) ] © Copyright Copyright © Showeet.com umin u umax , vmin v vmax 34
- Đặc điểm mặt cong tham biến bậc 3 • 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 Copyright © Showeet.com Bezier. 35