Giáo trình đồ họa máy tính

265 7 0
Giáo trình đồ họa máy tính

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KHOA HỌC KHOA CÔNG NGHỆ THƠNG TIN TS NGUYỄN HỮU TÀI GIÁO TRÌNH ĐỒ HỌA MÁY TÍNH (ĐÀO TẠO CỬ NHÂN CƠNG NGHỆ THƠNG TIN) NHÀ XUẤT BẢN ĐẠI HỌC HUẾ Huế, 2017 Mã số sách: GT/ -2017 ii LỜI NĨI ĐẦU Giáo trình Đồ họa Máy tính nhằm mang đến cho người học sinh viên ngành Công nghệ Thông tin kiến thức chuyên sâu lĩnh vực đồ họa máy tính, rèn luyện phát triển kỹ thực hành thực nghiệm, kỹ lập trình cho lĩnh vực đồ họa máy tính Nội dung giáo trình với thời lượng giảng dạy tín gồm có chương, phục lục thực nghiệm trình bày hướng dẫn chi tiết nhằm bước phát triển kỹ lập trình đồ họa, hiểu sâu đánh giá xác lý thuyết giải thuật đồ họa Bố cục giáo trình gồm: Chương 1: Các yếu tố sở đồ họa Trình bày khái niệm thiết bị đồ họa điểm ảnh (Pixel) Giới thiệu trình bày chi tiết giải thuật dựng đường như: Đoạn thẳng, đường tròn, ellipse Hướng dẫn chi tiết bước để tạo ứng dụng khung phục vụ cho việc thực hành thực nghiệm thông qua “Bài thực nghiệm số 1”, để từ dẫn dắt làm quen trang bị bước kiến thức lập trình đồ họa windows với VC++ MFC Chương 2: Các hệ màu chế tổ chức nhớ hình Trình bày đơi nét cấu trúc hình màu Tính chất giao thoa ánh sáng ngun lý tạo điểm màu hình hay máy in Giới thiệu sơ hệ màu RGB, CMY, HSV Tìm hiểu chế tổ chức nhớ hình, cách tính địa để truy xuất thơng tin điểm ảnh thông qua mode đồ họa 13H, chuẩn hiển thị đồ họa cao cấp Vesa Chương 3: Các phép xén hình tơ màu Giới thiệu phạm vi ứng dụng toán xén hình Trình bày chi tiết giải thuật xén hình như: Xén đoạn thẳng vào hình chữ nhật, xén đa giác vào hình chữ nhật Giới thiệu tốn tơ màu ứng dụng Trình bày chi tiết giải thuật tô màu gồm: Giải thuật vết dầu loang (Flood fill), giải thuật tô đa giác theo dịng qt (Scan-line) Tìm hiểu sâu vấn đề xử lý đồ họa hệ thống thông qua “Bài thực nghiệm số 2” để xử iii lý toán tô màu theo giải thuật vết dầu loang Chương 4: Các phép biến đổi hình học Trình bày lý thuyết biến đổi hình học affine với phép tính tốn ma trận Hệ tọa độ lợi ích mơ hình xử lý máy tính Một số ví dụ hướng dẫn thực bước phân tích tốn biến hình phức tạp thành tổng hợp phép biến hình bản, dựa việc tính tích ma trận Phân tích tốn quan sát vật thể khơng gian chiều mô giới thực Chương 5: Mơ hình WireFrame Trình bày chi tiết mơ hình Wireframe cách thức tổ chức lưu trữ thơng tin Hướng dẫn xây dựng ứng dụng mô việc quan sát vật thể chiều không gian theo mơ hình Wireframe, áp dụng kết hợp kiến thức chương chương 5, thông qua “Bài thực nghiệm số 3” Chương 6: Mơ hình mặt đa giác vấn đề khử mặt khuất Giới thiệu mơ hình mặt đa giác, ưu nhược điểm, cách thức tổ chức lưu trữ thông tin Giới thiệu tốn khử mặt khuất trình bày chi tiết giải thuật xếp theo độ sâu, giải thuật chọn lọc mặt sau, giải thuật vùng đệm độ sâu “Bài thực nghiệm số 4” giúp phát triển ứng dụng 3DViewer mô việc quan sát vật thể khơng gian chiều máy tính, vấn đề khử mặt khuất xử lý giải thuật chọn lọc mặt sau Và “Bài thực nghiệm số 5” phát triển nâng cấp ứng dụng 3DViewer, vấn đề khử mặt khuất xử lý giải thuật vùng đệm độ sâu Cuối cùng, hệ thống phụ lục nhằm giúp sinh viên tìm hiểu nghiên cứu sâu số vấn đề mà khn khổ thời gian có hạn học phần khơng cho phép tìm hiểu sâu Nội dung phụ lục bao gồm: Phụ lục 1: Các phương pháp dựng đường cong mặt cong Trình bày chi tiết phương pháp tạo đường cong mặt cong hiệu mơ hình máy tính iv Phụ lục 2: Các mơ hình chiếu sáng Trình bày chi tiết việc tính tốn mơ loại hình chiếu sáng lên vật thể chiều nhằm tăng tính trung thực hình ảnh mơ phỏng, tạo cho hình ảnh mơ trung thực “đẹp hơn” Đề xuất giải pháp công nghệ xử lý kết hợp nhằm giải vấn đề tốc độ thực thi cho tốn xử lý mơ hình ảnh chiều máy tính “Bài thực nghiệm số 6” “Bài thực nghiệm số 7” giúp phát triển hoàn thiện ứng dụng 3DView, để ứng dụng mơ trung thực đối tượng chiều Qua đó, giúp sinh viên có kiến thức sâu kỹ vững vàng vấn đề xử lý mô đối tượng chiều máy tính Với mong muốn tạo điều kiện tốt để sinh viên dễ dàng lĩnh hội kiến thức lý thuyết, phát triển lực thực nghiệm kỹ giải vấn đề nói chung hay kỹ lập trình nói riêng, tác giả cố gắng để trình bày vấn đề thuộc lĩnh vực đồ họa máy tính cách chi tiết mạch lạc chuẩn xác có thể, kỹ thuật xử lý sát với công nghệ thực tiễn Hy vọng sách mang lại nhiều bổ ích cho sinh viên bạn đọc Tác giả mong nhận nhiều đóng góp ý kiến quý đồng nghiệp bạn đọc để sách hoàn thiện lần tái sau Tác giả TS Nguyễn Hữu Tài v vi MỤC LỤC Chương 1 Các khái niệm 1.1 Thiết bị đồ họa điểm ảnh 1.2 Điểm đoạn thẳng mặt phẳng 2 Các giải thuật vẽ đoạn thẳng 2.1 Vẽ đoạn thẳng dựa vào phương trình 2.2 Vẽ đoạn thẳng dựa vào giải thuật Bresenham 2.3 Môi trường thực nghiệm bước thiết lập 13 2.4 So sánh đánh giá hai giải thuật dựng đường thẳng 20 Các giải thuật vẽ đường tròn 23 3.1 Giải thuật vẽ đường tròn MidPoint 24 3.2 Giải thuật vẽ đường tròn Bresenham 29 3.3 So sánh đánh giá hai giải thuật dựng đường tròn 32 Giải thuật vẽ Ellipse 33 4.1 Giải thuật Bresenham cho vẽ hình Ellipse 35 4.2 Tóm tắt giải thuật Bresenham cho vẽ Ellipse 38 4.3 Cài đặt giải thuật 38 Bài tập cuối chương 44 Chương 46 Đơi nét cấu trúc hình màu 46 Các hệ màu 47 2.1 Hệ RGB 48 2.2 Hệ màu CMY 49 2.3 Hệ màu HSV 50 Cơ chế tổ chức nhớ hình 54 3.1 Cơ chế hoạt động chế độ hình độ phân giải 320 × 200 với 256 màu 55 3.2 Cơ chế hoạt động hình theo chuẩn Vesa 56 vii Kỹ thuật thực vẽ đồ họa hậu trường (Off-screen Rendering) 58 Chương 63 Trường hợp hình F tập hữu hạn điểm 64 Trường hợp xén đoạn thẳng vào vùng hình chữ nhật không gian chiều 64 2.1 Khi cạnh hình chữ nhật song song với trục tọa độ 64 2.2 Khi cạnh hình chữ nhật tạo với trục hồnh góc  77 Clipping đa giác vào vùng hình chữ nhật 77 3.1 Giải thuật Sutherland-Hodgman 77 3.2 Cài đặt giải thuật 79 3.3 Nhược điểm giải thuật Sutherland-Hodgman hướng xử lý khắc phục 82 Một số giải thuật tô màu 83 4.1 Giải thuật vết dầu loang 83 4.2 Giải thuật tô màu đa giác theo dòng quét (Scan-line Algorithm) 104 Bài tập cuối chương 115 Chương 117 Các phép biến đổi hình học hai chiều (Affine 2D) 118 1.1 Phép tịnh tiến 118 1.2 Phép đồng dạng 118 1.3 Phép đối xứng 119 1.4 Phép quay quanh gốc tọa độ 120 1.5 Phép biến dạng (Twist Transformation) 120 1.6 Tọa độ (Homogeneous Coordinates) 120 1.7 Tổng hợp phép biến đổi Affine 120 1.8 Phép quay quanh điểm 122 1.9 Các ví dụ minh họa 123 viii 1.10 Biến đổi hệ trục tọa độ (hay biến đổi ngược) 126 1.11 Cài đặt 127 Các phép biến đổi Affine 3D 128 2.1 Các hệ trục tọa độ 128 2.2 Các công thức biến đổi 129 Các phép chiếu vật thể không gian lên mặt phẳng 132 3.1 Phép chiếu phối cảnh (Perspective) 132 3.2 Phép chiếu song song 133 Quan sát vật thể chiều quay hệ quan sát 133 4.1 Biến đổi từ hệ trục cục sang hệ trục người quan sát 134 4.2 Phép chiếu phối cảnh 140 4.3 Phép chiếu song song 141 4.4 Cài đặt 142 Bài tập cuối chương 142 Chương 144 Mơ hình Wireframe 145 Vẽ hình dựa liệu kiểu WireFrame với phép chiếu 147 2.1 Phép chiếu trực giao đơn giản 147 2.2 Phép chiếu phối cảnh đơn giản 147 2.3 Cài đặt thực nghiệm cho mơ hình wireframe 148 Bài tập cuối chương 160 Chương 162 Mô tả đối tượng chiều mơ hình mặt đa giác 162 Xây dựng cấu trúc liệu cho mơ hình mặt đa giác 164 Các phương pháp khử mặt khuất 167 3.1 Giải thuật người thợ sơn với chiến lược xếp theo chiều sâu (Depth-Sorting) 167 3.2 Giải thuật chọn lọc mặt sau (Back-Face Detection) 170 3.3 Cài đặt minh họa cho giải thuật chọn lọc mặt sau 172 ix 3.4 Giải thuật vùng đệm độ sâu (Z-Buffer) 190 3.5 Cài đặt minh họa cho giải thuật “vùng đệm độ sâu” 193 Bài tập cuối chương 203 Chương 204 Nguồn sáng xung quanh 204 Nguồn sáng định hướng 204 2.1 Khái niệm 204 2.2 Tính tốn mơ 205 2.3 Cài đặt giải thuật 207 Nguồn sáng điểm 209 Mơ hình bóng Phong 209 4.1 Khái niệm 209 4.2 Tính tốn mơ 211 4.3 Cài đặt giải thuật 216 BÀI TẬP CUỐI CHƯƠNG 228 Chương 229 Đường cong Bezier mặt cong Bezier 230 1.1 Giải thuật De Casteljau 231 1.2 Dạng Bernstein đường cong mặt cong Bezier 232 1.3 Dạng biểu diễn ma trận đường Bezier 233 1.4 Các tính chất đường cong Bezier 234 1.5 Đánh giá đường cong Bezier khác biệt đường cong Spline 237 Đường cong Spline B-Spline 239 TÀI LIỆU THAM KHẢO 242 x Chương - Các mơ hình chiếu sáng Nguyễn Hữu Tài (b) Hình 7.14 Kết thực nghiệm so sánh phương pháp tơ bóng thường (a) tơ bóng Phong hình cầu lõm màu xám có 800 mặt đa giác BÀI TẬP CUỐI CHƯƠNG Xây dựng chương trình cho phép quan sát vật thể 3D đặc lồi Chương trình cho phép thay đổi vị trí quan sát, cho phép thể tác động nguồn sáng xung quanh định hướng lên đối tượng Nâng cao vấn đề 1, cho thay đổi cường độ nguồn sáng, thay đổi hướng chiếu nguồn sáng định hướng Hãy xây dựng chương trình với chức vấn đề 1, song sử dụng phương pháp tô bóng Phong Hãy tổng hợp kiến thức biết để xây dựng chương trình mơ giới thực, có nhiều đối tượng khác vận động 228 Chương - Các mơ hình chiếu sáng Nguyễn Hữu Tài Chương CÁC PHƯƠNG PHÁP DỰNG ĐƯỜNG CONG VÀ MẶT CONG Đường cong mặt cong công cụ quan trọng nhiều lĩnh vực ứng dụng khoa học Việc nghiên cứu phát triển phương pháp cho phép dễ dàng tạo nên đường cong mặt cong, kiểm soát chúng cách hiệu mở nhiều hội ứng dụng, lĩnh vực thiết kế xây dựng hay lĩnh vực Game chiều thực ảo Hình ảnh minh họa việc áp dụng đường cong Bezier bậc hàm ánh xạ để hiệu chỉnh chất lượng hình ảnh lĩnh vực xử lý ảnh (Digital Image Processing), cách hiệu dễ dàng Hình 8.1 Thay đổi chất lượng hình ảnh với hàm ánh xạ có dạng đường cong Bezier bậc 3, cung cấp khả điều chỉnh hình dạng độ cong hàm ánh xạ cách uyển chuyển đơn giản 229 Chương - Các mơ hình chiếu sáng Nguyễn Hữu Tài Trong chương xem xét hai phương pháp tạo đường cong mặt cong trơn (tức không gồ ghề hay gấp khúc điểm nối), phương pháp Bezier B-Spline Ở đây, bàn đến phương pháp xây dựng đường mặt cong dựa số đặc điểm liệu mô tả đường cong đó, liệu mơ tả đường cong hay mặt cong điểm kiểm soát Khi cần, tiến hành nội suy lại đường cong hay mặt cong từ điểm kiểm sốt theo quy trình giải thuật định Với đường cong tiếp cận theo cách: (1) Lấy số điểm đường cong làm mẫu tìm hàm toán học phù hợp tinh chỉnh hàm cho qua điểm mẫu khớp với đường cong ban đầu Khi đó, có cơng thức đường cong dùng để phát sinh lại đường cong mong muốn (2) Cách thứ hai dùng tập điểm kiểm soát giải thuật để xây dựng nên đường cong riêng dựa điểm Có khả đường cong tạo không khớp với đường cong ban đầu, lúc di chuyển vài điểm kiểm sốt giải thuật phát sinh đường cong dựa điểm kiểm sốt thay đổi Tiến trình thay đổi điểm kiểm soát lặp lặp lại đường cong tạo khớp với đường cong mong muốn (hay đường cong mẫu) Lúc này, lưu trữ tập điểm kiểm soát để phát sinh lại đường cong cần theo giải thuật cố định Trong chương trình bày phương pháp xây dựng đường cong mặt cong theo cách tiếp cận thứ hai Qua cách tiếp cận này, người ta xây dựng nên loại đường cong mặt cong khác nhau, loại thứ gọi đường cong mặt cong Bezier, loại thứ hai đường cong mặt cong B-Spline ĐƯỜNG CONG BEZIER VÀ MẶT CONG BEZIER Phần xem xét phương pháp để định nghĩa đường cong tham số P(t) dựa tập điểm Trước tiên, xem xét ý tưởng giải thuật Casteljau để định nghĩa 230 Chương - Các mơ hình chiếu sáng Nguyễn Hữu Tài đường cong loại này, sau đưa dạng toán học đường cong Bezier qua công thức Bernstein 1.1 Giải thuật De Casteljau Để xây dựng đường cong P(t), giải thuật dựa dãy điểm kiểm soát cho trước tạo giá trị P(t) tương ứng với giá trị t khác Khi thay đổi điểm kiểm sốt kéo theo thay đổi dạng đường cong Phương pháp tạo đường cong dựa dãy thao tác nội suy tuyến tính (hay cịn gọi với tên khác nội suy khoảng giữa) Ví dụ, với điểm , , xây dựng đường cong Parabol nội suy từ điểm cách: chọn giá trị t nằm chia đoạn theo tỷ lệ t, điểm chia phụ thuộc vào tham số t) Tương tự, cấp ( ) (hay điểm chia theo tỷ lệ t thu ( ) Với đoạn chia tiếp thẳng nối điểm chia cấp ( ) ( ), lại tiếp tục chia đoạn theo tỷ lệ t, kết thu điểm chia cấp ( ) Với cách làm này, lấy t giá trị khác tập điểm ( ), tập điểm đường cong P(t) Biểu diễn phương trình: ( ) = (1 − ) Thay thu được: ( ) = (1 − ) ( ) = (1 − ) ( ) ( )= + + ( )+ ( ) ( ) vế phải hai phương trình ( ) = (1 − ) + (1 − ) + Đây đường cong bậc theo t, với tham số đó, ( ) Parabol , , Do Tổng quát có giải thuật Casteljau cho (L+1) điểm: Giả sử tập điểm , ,…, Với giá trị t cho trước tạo điểm từ hệ thứ (r–1) trước theo phương trình: 231 ( ) hệ thứ r Chương - Các mô hình chiếu sáng Với Nguyễn Hữu Tài ( ) = (1 − ) = 1, 2,…, L; ( )+ I = 0, 1, 2,…, L–r ( ) Thế hệ cuối ( ) gọi đường cong Bezier, điểm , ,…, gọi điểm kiểm soát hay đa giác Bezier 1.2 Dạng Bernstein đường cong mặt cong Bezier Đường cong Bezier dựa (L+1) điểm kiểm sốt cho cơng thức: , ,…, L P (t )   Pk BkL (t ) k 0 P(t) ứng với giá trị t nằm điểm 2D hay 3D BkL (t ) gọi đa thức BERNSTEIN cho công thức: BkL (t )  CLk  (1  t ) L  k  t k  L!  (1  t ) L  k  t k k!( L  k )! ,với k ≤ L Mỗi đa thức Bernstein có bậc L Thơng thường gọi BkL(t) hàm trộn Bởi hiểu vector P(t) pha trộn vector kiểm soát , ,…, với tỷ lệ định theo công thức Bernstein giá trị t khác P1 P11 P01 P0 P02 P1 P11 P02 P01 P2 Đường cong Bezier bậc P03 P2 P12 P21 P3 P0 Đường cong Bezier bậc Hình 8.2 Minh họa việc nội suy đường cong Bezier 232 Chương - Các mơ hình chiếu sáng Nguyễn Hữu Tài Hình 8.3 Đường cong Bezier bậc vẽ chương trình Paint Microsoft Các điểm trịn (màu đỏ) điểm kiểm sốt  Đối với mặt BEZIER có phương trình sau: M L P (u , v )   Pi , k BiM (u ) BkL (v ) i  k 0 Trong trường hợp này, khối đa diện kiểm soát mặt cong có (M+1)×(L+1) đỉnh 1.3 Dạng biểu diễn ma trận đường Bezier Để thích hợp cho tính tốn máy tính (việc tính tốn trở nên hợp lý nhanh chóng) người ta thường biểu diễn công thức dạng ma trận: BL(t) = [B0L(t), B1L(t), B2L(t),…, BLL(t)] P = [P0, P1, P2,…,PL]  P0  P  L  1 P(t )   Pk BkL (t )  B0L (t ) B1L (t ) B2L (t )  BLL (t )   P2   B L (t )  P T   k 0   PL  Trong đó: PT dạng chuyển vị P   Mỗi BkL (t ) , với k=0,1…,L lại xem tích (t0, t1, t2,…, tL) với hệ số tương ứng ti i=0 L Vector (t0, t1, t2,…, tL) gọi 233 Chương - Các mơ hình chiếu sáng Nguyễn Hữu Tài sở luỹ thừa (Power basic) Dưới dạng đa thức biểu diễn BkL (t ) sau: BkL (t ) = a0kt0 + a1kt1 + a2kt2 + … + aLktL = (t0, t1, t2,…, tL)(a0k, a1k, a2k,…, aLk)T Do đó, P(t) biểu diễn lại sau: P(t) = PowL(t).BezL.PT Trong đó: - PowL(t) = (t0, t1, t2,…, tL) - BezL ma trận biểu diễn mảng BL(t), cột i ma trận tương ứng với hệ số (a0i, a1i, a2i,…, aLi) đa thức BiL(t) Ví dụ, ma trận Bez3 cho đường Bezier bậc 3: 0    Bez   6   1 3  0  0 0  1 Để tạo đường cong Bezier từ dãy điểm kiểm soát, người ta áp dụng phương pháp Polyline gần cách lấy mẫu hàm P(t) giá trị cách tham số t Ví dụ ti = i/N với i = 0, 1, 2,…, N Khi đó, điểm P(ti) từ công thức, nối điểm lại đoạn thẳng đường cong Bezier gần Để tính P(ti), áp dụng dạng ma trận P(t) vừa trình bày trên, có thành phần Pow L(t) thay đổi, cịn tích: BezL.PT với P = (P0, P1,…, PL) khơng đổi 1.4 Các tính chất đường cong Bezier Đường cong Bezier có số tính chất quan trọng sau: 1.4.1 Nội suy điểm đầu điểm cuối Thật vậy: Chúng ta có L P (t )   Pk BkL (t ) k 0 234 Chương - Các mơ hình chiếu sáng Nguyễn Hữu Tài Khi lấy giá trị t tiến đến có:  L  L Lim P (t )   Lim   Pk BkL (t )     Lim Pk BkL (t )   t 0 t 0  k 0  k   t    L   L      Pk Lim BkL (t )    Pk  Lim BkL (t )   t 0  k   t   k 0  Mà ta thấy:         Lim BkL (t )  Lim CLk (1  t ) L  k t k  CLk  Lim (1  t ) L  k  Lim t k t 0 t 0 t 0 t 0  CLk    với k ≠ Khi k = thì:  L!  (1  t ) L  t  Lim B0L (t )  Lim CL0 (1  t ) L  t  Lim  t   0! L! t 0 t 0  L 0 L L  Lim (1  t ) t  Lim (1  t )  Lim t  Lim (1  t ) Lim 1        Lim(1  t )   Lim(1  t ) t 0 t 0 L t 0  t 0      1 t 0 L t 0   t 0 Vậy: Lim P (t )   P0   P1   P2     PL   P0 t 0 Tương tự cho Lim P(t )  ta có Lim P (t )   PL t 1 t 1 Vậy đường cong Bezier bắt đầu điểm P0 kết thúc điểm PL 1.4.2 Tính bất biến Affine Khi biến đổi Affine đường cong Bezier, không cần biến đổi điểm đường cong cách riêng rẽ mà cần biến đổi Affine điểm kiểm sốt đường cong đó, sử dụng cơng thức Bernstein để tái tạo đường cong Bezier biến đổi Chúng ta gọi tính bất biến Affine đường Bezier Chứng minh: Giả sử ứng với giá trị t cụ thể, P(t) điểm, biến đổi Affine thành P’(t) thì: 235 Chương - Các mơ hình chiếu sáng P’ (t)=P(t).M + Tr = L P B k 0 k L k Nguyễn Hữu Tài (t ) M + Tr Trong đó: M: Ma trận biến đổi Tr: Vector tịnh tiến L Xét đường cong P (t )   Pk M  Tr BkL (t ) (*) k 0 tạo cách biến đổi Affine vector P k, ta chứng minh đường cong P’(t) Khai triển (*) ta có: L L  Pk M BkL (t )   Tr.BkL (t ) k 0 k 0 L L L k 0 k 0 k 0   Pk M BkL (t )  Tr  BkL (t )  Pk M BkL (t )  Tr L B k 0 L k Chứng minh (t )  L B k 0 L k (t )  : Thật vậy, biết khai triển nhị thức Newton (a+b) L, áp dụng với a = (1 – t) b = t, lúc L B k 0 L k (t )  (1  t )  t   1L  L Vì vậy, ta có P’(t) nằm đường cong Bezier tạo điểm kiểm soát P’k Với P’k ảnh Pk qua phép biến đổi Affine 1.4.3 Tính chất bao lồi Bao lồi điểm kiểm soát tập đỉnh nhỏ chứa tất điểm kiểm sốt Đó tập tất tổ hợp lồi điểm kiểm soát L  k 0 k Pk với  k  236 L  k 0 k 1 Chương - Các mơ hình chiếu sáng Nguyễn Hữu Tài Do P(t) tổ hợp lồi điểm kiểm sốt ∀t, khơng có hệ số Bernstein âm L B k 0 L k (t )  , nên điểm đường cong Bezier nằm bao lồi điểm kiểm soát 1.4.4 Độ xác tuyến tính Đường cong Bezier trở thành đường thẳng tất điểm kiểm sốt nằm đường thẳng Vì đó, bao lồi chúng đường thẳng, nên đường Bezier bị kẹp vào bao lồi trở thành đường thẳng 1.4.5 Bất biến với phép biến đổi Affine Có thể đổi đường cong Bezier khoảng tham số khác với khoảng (0,1) Ví dụ khoảng (a,b) ánh xạ đó, chẳng hạn: đường cong tham số t thành đường cong tham số u, không làm thay đổi đường cong ban đầu (dùng tính bất biến Affine) 1.4.6 Đạo hàm đường Bezier L P’(t) =(P(t))’= L  Pk BkL 1 (t ) , ∆Pk=Pk+1 – Pk k 0 đường cong Bezier khác tạo từ vector kiểm soát ∆P k 1.5 Đánh giá đường cong Bezier khác biệt đường cong Spline Bằng điểm kiểm sốt, tạo dạng đường cong khác cách hiệu chỉnh điểm kiểm soát tạo dạng đường cong mong muốn, công việc lặp lặp lại toàn thể đường cong thỏa mãn yêu cầu Tuy nhiên, có vấn đề đường cong Bezier tính cục yếu nó, nghĩa thay đổi điểm kiểm sốt toàn đường cong bị thay đổi theo Nhưng thực tế, thông thường mong muốn thay đổi dạng đường cong gần khu vực hiệu chỉnh điểm kiểm soát 237 Chương - Các mơ hình chiếu sáng Nguyễn Hữu Tài Tính cục yếu đường cong Bezier thấy qua việc tất đa thức BkL(t) khác khoảng [0, 1] Mặt khác, đường cong P(t) thân lại tổ hợp tuyến tính điểm kiểm sốt gia trọng hàm BkL(t), nên suy điểm kiểm sốt có ảnh hưởng đến đường cong tất giá trị t(0; 1) Do đó, hiệu chỉnh điểm kiểm soát ảnh hưởng đến dạng đường cong toàn thể Để giải vấn đề này, người ta đến sử dụng tập hàm trộn khác thay hàm trộn BkL(t) đường cong Bezier, hàm trộn có giá mang phần khoảng [0, 1], hay nói cách khác hàm trộn trộn với số điểm kiểm soát phần đoạn cong Tập đoạn cong hàm trộn mang lại tạo nên đường cong mà mong muốn Như vậy, hàm trộn tập đa thức định nghĩa khoảng kề nhau, nối lại với để tạo nên đường cong liên tục Đường cong kết gọi đa thức riêng phần hay phần Ví dụ, định nghĩa hàm g(t) gồm đa thức a(t), b(t) c(t) sau: a(t) = 1/2 t2 g(t) = có giá mang [0, 1] b(t) = 3/4(t – 3/2)2 có giá mang [1, 2] c(t) = 1/2(3 – t)2 có giá magn [2, 3] Giá mang g(t) [0, 3] Các giá trị t ứng với điểm nối đoạn gọi nút (knot) Hơn nữa, điểm nối đường cong g(t) trơn, khơng bị gấp khúc Chúng ta gọi hàm Spline Vậy hàm Spline cấp m đa thức riêng phần cấp m có đạo hàm cấp m–1 liên tục nút Dựa tính chất hàm Spline, dùng hàm trộn để tạo đường cong P(t), dựa điểm kiểm sốt P0, P1,…, PL Khi đó: 238 Chương - Các mơ hình chiếu sáng Nguyễn Hữu Tài L P (t )   Pk G k (t ) k 0 ĐƯỜNG CONG SPLINE VÀ B-SPLINE Hình 8.4 Một đường cong Spline vẽ chương trình AutoCad Hình 8.5 Đường cong Multi-Spline với điểm điểu khiển (hay vector tiếp tuyến) giúp điều khiển độ cong Một hàm Spline cấp m đa thức riêng phần cấp m có đạo hàm cấp m–1 liên tục nút Dựa tính chất hàm Spline, dùng hàm trộn để tạo đường cong P(t), dựa điểm kiểm sốt P 0, P1,…, PL Khi đó: L P (t )   Pk G k (t ) k 0 239 Chương - Các mơ hình chiếu sáng Nguyễn Hữu Tài với: Pk : k = 0, 1,…, L điểm kiểm soát Gk(t) : k = 0, 1,…, L hàm trộn, liên tục đoạn [ti, ti+1 ] nút Mỗi Rk(t) đa thức riêng phần (piceewise polynomial) Các đoạn đường cong riêng phần gặp nút tạo cho đường cong trở nên liên tục Chúng ta gọi đường cong Spline Cho trước vector nút, có nhiều họ hàm trộn dùng để tạo đường cong Spline định nghĩa vector nút Mỗi họ gọi sở cho Spline Trong số họ hàm này, có sở cụ thể mà hàm trộn có giá mang nhỏ mà nhờ đem lại khả kiểm soát cục lớn Đó B-Spline ( B viết tắt Basic) Đối với hàm B-Spline, đa thức riêng phần tạo nên có cấp đó, người ta gọi m, thay dùng ký hiệu Rk(t) cho hàm riêng phần Nk,m(t) Do đó, đường cong B-Spline biểu diễn công thức sau: L P (t )   Pk N k , m (t ) k 0 Trong hàm B-Spline cấp m hàm B-Spline cấp cấp quang trọng nhất, dùng hầu hết hệ thống xử lý đồ họa Tóm lại: Để xây dựng đường cong B-Spline cần có:  Một vector nút T = (t0, t1,…)  (L+1) điểm kiểm soát Pk  Cấp m hàm B-Spline công thức cho hàm B-Spline Nk,m(t) Nk,m(t) = Nk, m-1(t) + Nk+1, m-1(t) Đây công thức đệ quy với: , ( )= 1, < 0, ngược lại (Hàm đoạn [tk, tk+1]) 240 Chương - Các mơ hình chiếu sáng Nguyễn Hữu Tài Đối với mặt B-Spline, có cơng thức biểu diễn tương tự: P(u, v) = (tương tự mặt Bezier) P , N , (u)N , (v) Ghi chú: Các đường Bezier đường B-Spline Sau công thức cho đường cong Spline bậc có tên Hermite Spline với công thức sau:  P (u )  u u2  Pk 1   P  u  Mc   k   Pk 1     Pk    với Mc gọi ma trận cốt yếu: s   s  s s   2s s  3  s  s   với s = (1 – t)/2 Mc    s s 0   0 0 Hay dạng tường minh là: P(u) = Pk-1[-su3 + 2su2 – su] + Pk [(2 – s)u3 + (s-3)u2 + 1] + Pk+1 [(s – 2)u3 + (3 – 2s)u2 + su) ] + Pk+2 [su3 – su2] = Pk-1 CAR0(u) + Pk CAR1(u) + Pk+1 CAR2 (u) + Pk+2 CAR3(u) gọi CARk(u) với k = 0, 1, 2, hàm trộn 241 TÀI LIỆU THAM KHẢO Bắt buộc John F Hughes, Andries van Dam, Morgan McGuire, David F Sklar, James D Foley, Steven K Feiner, Kurt Akeley (2014), Computer Graphics: Principles and Practice, third edition, Addison-Wesley Publishing Company, USA Không bắt buộc Francis S Hill (1990), Computer Graphics, Jr Macmillan Publishing Company, New York John R Rankin (1989), Computer Graphics Software Contruction, Prentice Hall of Australia Harrington (1986), Computer Graphics: A Programming Approach, McGraw-Hill Book Company, Singapore Video Electronics Standards Association (1998), VESA BIOS Extensions Core Functions Standard – Version 3.0 http://www.tftcentral.co.uk/articles/content/pointers_gamut.htm 20/06/2016 https://msdn.microsoft.com/enus/library/windows/desktop/dd183567(v=vs.85).aspx, 20/06/2016 https://msdn.microsoft.com/enus/library/windows/desktop/dd145049(v=vs.85).aspx, 20/06/2016 https://msdn.microsoft.com/enus/library/windows/desktop/dd183494(v=vs.85).aspx, 20/06/2016 10 https://msdn.microsoft.com/enus/library/windows/desktop/dd162467, 20/06/2016 242 , ... lập trình cho lĩnh vực đồ họa máy tính Nội dung giáo trình với thời lượng giảng dạy tín gồm có chương, phục lục thực nghiệm trình bày hướng dẫn chi tiết nhằm bước phát triển kỹ lập trình đồ họa, ... bị đồ họa mà người học cần nắm vững trước bắt đầu tìm hiểu tốn dựng hình lĩnh vực đồ họa máy tính Từ Hình 1.2 Chương - Các yếu tố sở đồ họa Nguyễn Hữu Tài hiểu q trình dựng hình thiết bị đồ họa. .. đánh giá xác lý thuyết giải thuật đồ họa Bố cục giáo trình gồm: Chương 1: Các yếu tố sở đồ họa Trình bày khái niệm thiết bị đồ họa điểm ảnh (Pixel) Giới thiệu trình bày chi tiết giải thuật dựng

Ngày đăng: 29/12/2022, 15:03

Tài liệu cùng người dùng

Tài liệu liên quan