Các thuật toán trong đồ họa máy tính
Ngày nay, hình ảnh được tạo ra từ máy tính có mặt ở khắp mọi nơi. Các sản phẩm đồ họa tràn ngập cuộc sống của chúng ta và đạt được đến kỹ thuật mà đôi khi chúng ta không thể nhận ra đó là một hình ảnh nhân tạo. Show Các chương trình máy tính thường hiển thị kết quả bằng đồ họa. Các chương trình truyền hình và quảng cáo sử dụng hình ảnh từ đồ họa mang lại hiệu quả rõ rệt về tính thẩm mĩ. Nhiều chương trình truyền hình và điện ảnh gần đây pha trộn các diễn viên thực và hình ảnh nhân tạo đến mức người xem có thể rất khó để phân biệt một nhân vật hoặc cảnh thật với hình ảnh do máy tính tạo ra. Ngày càng nhiều máy ảnh kỹ thuật số, thiết bị điện tử sử dụng input là màn hình cảm ứng thay vì bàn phím. Do vậy, kỹ thuật đồ họa máy tính trở thành một lĩnh vực lý thú và có nhiều ứng dụng trong thực tế. Kỹ thuật đồ họa liên quan đến tin học và toán học vì hầu hết các giải thuật vẽ, tô màu cùng các phép biến hình đều được xây dựng dựa trên nền tảng của hình học không gian hai chiều và ba chiều. Hiện nay, Kỹ thuật đồ họa máy tính là một môn học được giảng dạy cho sinh viên chuyên ngành công nghệ thông tin học với 30 tiết lý thuyết. Bài giảng được biên soạn theo đúng chương trình đào tạo của Nhà trường. Nội dung bài giảng tập trung vào các vấn đề chính trong 5 chương như sau: Chương 1: Tổng quan về đồ họa máy tính, giới thiệu các khái niệm và cái nhìn tổng quan về đồ họa máy tính. Chương 2: Đồ họa 2 chiều, trình bày các thuật toán vẽ và tô các đường cơ bản như đường thẳng, đường tròn, các phép biến đổi trên đối tượng đồ họa 2D và các thuật toán xén đoạn thẳng. Chương 3: Đồ họa 3 chiều, Giới thiệu tổng quan về đồ họa 3 chiều, các phép biến đổi và các phép chiếu, một số cách biểu diễn đối tượng đồ họa 3 chiều từ các đối tượng đơn giản như các hình khối, các đa diện ... Chương 4: Các hệ màu, trình bày về các hệ màu cơ bản cùng các qui tắc phối màu cơ bản trong đồ họa máy tính. Chương 5: Các kỹ thuật đồ họa trong bộ Công cụ Adobe After Effect
Với các nội dung như trên, sau khi học xong môn này, sinh viên cần đạt được các yêu cầu sau:
Môn Đồ họa máy tính được giảng dạy cho sinh viên năm thứ ba của khoa Công nghệ thông tin – Trường Đại học Kinh tế kỹ thuật công nghiệp.
Sinh viên nghe đầy đủ các tiết học lý thuyết trên lớp, kết hợp với các ngôn ngữ lập trình đã được học để thực hiện cài đặt các thuật toán trong nội dung môn học. Hình thức đánh giá kết quả:
CHƯƠNG 5: CÁC KỸ THUẬT ĐỒ HỌA TRONG BỘ CÔNG CỤ ADOBE AFTER
Tuy nhiên để có thể thiết kế và cài đặt các chương trình ứng dụng đồ họa được tốt, ngoài việc tìm hiểu các khả năng của công cụ lập trình, chúng ta cũng cần phải nắm vững các khái niệm về phần cứng; các vấn đề, các nguyên lí liên quan đến cài đặt phần mềm, các thuật toán, các ứng dụng, ... 1.1. Lịch sử phát triển Năm 1955, hệ thống phòng không SAGE (Môi trường mặt đất bán tự động) bắt đầu hoạt động, sử dụng màn hình quét vector làm đầu ra chính và Light pen là thiết bị đầu vào và được sử dụng rộng rãi vào năm 1958. Tập đoàn thiết bị kỹ thuật số DEC được thành lập vào năm 1957, bắt đầu chế tạo minicomputers mà sau này được sử dụng phát triển đồ họa máy tính. Năm 1960, nhà khoa học người Mỹ, William Fette nghiên cứu, xây dựng mô hình buồng lái máy bay cho hãng Boeing của Mỹ. Ông đã dựa trên hình ảnh 3 chiều của mô hình người phi công trong buồng lái của máy bay để xây dựng nên một mô hình tối ưu cho buồng lái máy bay. Phương pháp này cho phép các nhà thiết kế quan sát một cách trực quan vị trí của người lái trong khoang. Ông đặt tên cho phương pháp này là đồ hoạ máy tính (Computer Graphics). Màn hình là thiết bị thông dụng nhất trong hệ đồ hoạ, các thao tác của hầu hết các màn hình đều dựa trên thiết kế ống tia âm cực CRT (Cathode ray tube). Khi đó máy tính xử lý chậm, đắt và không chắc chắn (không đáng tin cậy). Vào những năm 1960, lĩnh vực này đã có những phát triển đầu tiên. Năm 1961, Ivan Sutherland phát triển dự án Sketchpad tại MIT. Bảng vẽ được sử dụng và một thiết bị light pen làm thiết bị đầu vào chính, một máy hiện sóng là thiết bị đầu ra. Phiên bản đầu tiên chỉ xử lý các số liệu hai chiều và sau đó được phát triển để vẽ, biến đổi và hiển thị các đối tượng 3 chiều dưới dạng hình chiếu xuống mặt phẳng 2 chiều. Kỹ thuật đồ họa liên tục được phát triển vào những năm 1960 và 1970 kéo theo sự ra đời của các chuẩn đồ họa, làm tăng khả năng giao tiếp và tái sử dụng của phần mềm cũng như các thư viện đồ họa. Sự phát triển đột phá của công nghệ điện tử máy tính vào thập niên 1980 làm xuất hiện một loạt các vi mạch hỗ trợ cho việc truy xuất đồ họa, làm giảm giá thành của máy tính cá nhân. Vào cuối những năm 1980, các máy tính đồ họa SGI (Silicon Graphics Inc.) đã tạo ra một số phim hoạt hình ngắn đầu tiên tại Pixar. Hệ điều hành Microsoft Windows 3 được xuất xưởng lần đầu tiên vào năm 1990 thúc đẩy to lớn cho khái niệm GUI (Graphical User Interface). Ngày càng nhiều ứng dụng được phát triển chạy trên MS Windows. OpenGL (Thư viện đồ họa mở) được SGI đưa ra năm 1992. Những năm 1990 cũng chứng kiến sự phát triển nhanh chóng trong đồ họa ba chiều, đặc biệt là trong phát triển game, đa phương tiện và hoạt hình. Quake, một trong những game 3D hoàn chỉnh đầu tiên, đã được phát hành vào năm 1996. Ngày nay, đồ họa có những tác động to lớn đến ngành công nghiệp giải trí, các lĩnh vực khoa học, kỹ thuật, y học, thiết kế trang web, truyền thông, xử lý thông tin thiết lập các tương tác mới từ lớn đến nhỏ các yếu tố thực tế ảo, màn hình cỡ lớn, màn hình thực tế ảo, thiết bị cảm ứng đa điểm và điện thoại thông minh...[1][5] Nếu nhìn lịch sử đồ họa theo góc độ phát triển của kỹ thuật hiển thị ta sẽ thấy các kỹ thuật hiển thị phát triển theo những giai đoạn sau:
Ví dụ:
Môi trường giao tiếp với người sử dụng được xây dựng trên cơ sở các hình ảnh 2 chiều, 3 chiều và mô phỏng thế giới thực. [4] 1.1. Một số ứng dụng Như đã nói ở trên, đồ họa máy tính không còn là những gì mới mẻ, xa lạ nữa mà nó trở nên gần gũi và cần thiết trên hầu hết các thiết bị chúng ta sử dụng hàng ngày. Dưới đây là một số các ứng dụng cơ bản của đồ họa máy tính. a, Hỗ trợ thiết kế Một trong những ứng dụng lớn nhất của đồ họa máy tính là hỗ trợ thiết kế (CAD – computer-aided design). Ngày nay CAD đã được sử dụng hầu hết trong việc thiết kế các biểu tượng là kích thước không gian mà nó chiếm ít hơn nhiều so với dùng văn bản để mô tả cho cùng một chức năng, ngoài ra việc nắm bắt các chức năng qua các biểu tượng sẽ dễ dàng hơn rất nhiều khi người dùng gặp trở ngại về mặt ngôn ngữ. Các ứng dụng có giao diện đồ họa còn cho phép người dùng khả năng làm việc dễ dàng với nhiều cửa sổ với nhiều dạng tài liệu khác nhau cùng một lúc. 1.1 Phân loại các lĩnh vực của kỹ thuật đồ hoạ máy tính Có nhiều phương pháp để phân loại các lĩnh vực của đồ hoạ máy tính. a, Phân loại theo tiêu chí là mục đích xử lý dữ liệu trong các lĩnh vực:
Ví dụ: phần mềm 3D Studio, 3D Animation, 3D Studio Max
Kỹ thuật đồ họa Xử lý đồ họa Kiến tạo đồ họa CAD/CAMĐồ họa hoạt hình và nghệ thuật Đồ họa minh họa Xử lý ảnh Kỹ thuật phân tích và tạo ảnh Kỹ thuật nhận dạng gốc này được lưu trong một thư viện và căn cứ vào thư viện này ta xây dựng được các thuật giải phân tích và tổ hợp ảnh. b, Phân loại theo hệ toạ độ dùng trong thuật đồ họa:
Một trong các yêu cầu chính của một hệ thống đồ họa là các ứng dụng có thể thực thi trên nhiều hệ thiết bị, được phát triển không phụ thuộc vào phần cứng. Để có được điều đó, phải có tiêu chuẩn hóa cho môi trường đồ họa ở mức chức năng, bằng việc cung cấp sự độc lập thiết bị và ngôn ngữ lập trình. Sự độc lập với thiết bị cho phép các chương trình ứng dụng đồ họa chạy trên các hệ thống phần cứng khác nhau. Điều này được thực hiện thông qua thiết bị nhập xuất logic của thư viện đồ họa ánh xạ thiết bị cụ thể. Cho tới nay, có những tiêu chuẩn đồ họa đã được phát triển trong nhiều năm, bao gồm:
Kỹ thuật đồ họa Kỹ thuật đồ họa 3 chiều Kỹ thuật đồ họa 2 chiều 1.3 Kỹ thuật đồ hoạ điểm Các mô hình, hình ảnh của các đối tượng được hiển thị thông qua từng pixel (từng mẫu rời rạc) trong kỹ thuật này ta có thể:
1.3 Kỹ thuật đồ họa vector Nguyên lý xây dựng các mô hình, hình ảnh trong kỹ thuật đồ họa vector như sau:
Trong kỹ thuật đồ họa vector, chỉ lưu trữ mô tả toán học của các thành phần trong mô hình hình học cùng với các thuộc tính tương ứng của nó mà không lưu lại toàn bộ các pixel của mô hình tô trát ( rendering) được. Các thành phần được mô tả trong mô hình hình học của đối tượng được gọi là các thực thể hình học cơ sở, các đối tượng hình ảnh sẽ được xây dựng từ những thực thể cơ sở này. Hình ảnh được tô trát từ nhiều góc nhìn và điểm nhìn khác nhau. So sánh giữa 2 kỹ thuật đồ họa điểm và đồ họa vector: Đồ hoạ điểm
Đồ hoạ vector
Đồ hoạ điểm
Đồ hoạ vector
CHƯƠNG 2: ĐỒ HỌA 2 CHIỀUMục tiêu của chương: Sinh viên cần nắm được các thuật toán DDA, Bresenham, Midpoint vẽ các đường cơ bản như đường thẳng, đường tròn, có khả năng cài đặt các thuật toán này bằng ngôn ngữ C, C++ .. Có thể thực hiện tính toán được ảnh của các điểm 2D sau các phép biến đổi: Tỷ lệ tâm O(0,0), tâm bất kỳ, phép tịnh tiến, phép quay tâm O(0,0,0), quay tâm bất kỳ, và các phép lấy đối xứng qua qua trục tọa độ, gốc tọa độ. Sinh viên cần nắm được các tính chất của các phép biến đổi Affine trên đối tượng đồ họa 2D, hiểu và cài đặt được các thuật toán xén đoạn thẳng: Cohen-Sutherland và Liang- Barsky.
Bất kì một ảnh mô tả thế giới thực nào bao giờ cũng được cấu trúc từ tập các đối tượng đơn giản hơn. Với các ảnh đồ họa phát sinh bằng máy tính, hình dạng và màu sắc của mỗi đối tượng có thể được mô tả riêng biệt bằng hai cách:
Quá trình này còn được gọi là quá trình chuyển đổi bằng dòng quét (scan- converting). Bất kì công cụ lập trình đồ họa nào cũng cung cấp các hàm để mô tả một ảnh dưới dạng các đối tượng hình học cơ sở hay còn gọi là các đối tượng đồ họa cơ sở (output primitives) và các hàm cho phép kết hợp tập các đối tượng cơ sở để tạo thành đối tượng có cấu trúc phức tạp hơn. Mỗi đối tượng đồ họa cơ sở được mô tả thông qua dữ liệu về tọa độ và các thuộc tính của nó, đây chính là thông tin cho biết kiểu cách mà đối tượng được hiển thị. Đối tượng đồ họa cơ sở đơn giản nhất là điểm và đoạn thẳng, ngoài ra còn có đường tròn, và các đường conics, mặt bậc hai, các mặt và đường cong, các vùng tô đa giác, chuỗi kí tự, ... cũng được xem là các đối tượng đồ họa cơ sở để giúp xây dựng các ảnh phức tạp. Chương này sẽ khảo sát các thuật toán hiển thị các đối tượng đồ họa cơ sở cho các thiết bị hiển thị dạng điểm. Xét về mặt bản chất, các thuật toán này thực hiện quá trình chuyển đổi các đối tượng đồ họa cơ sở được mô tả trong hệ tọa độ thực về dãy các pixel có tọa độ nguyên của thiết bị hiển thị. Có hai yêu cầu đặt ra cho các thuật toán đó là: Đối tượng được mô tả trong hệ tọa độ thực là đối tượng liên tục, còn đối tượng trong hệ tọa độ thiết bị là đối tượng rời rạc, do đó bản chất của quá trình chuyển đổi này chính là sự rời rạc hóa và nguyên hóa các đối tượng sao cho có thể xác định các điểm nguyên xấp xỉ đối tượng một cách tốt nhất, thực nhất. Nghĩa là đối tượng hiển thị bằng lưới nguyên trên thiết bị hiển thị phải có hình dạng tương tự như đối tượng trong lưới tọa độ thực và “có vẻ” liên tục, liền nét. Sự liên tục trên lưới nguyên của thiết bị hiển thị có được do mắt người không thể phân biệt được hai điểm quá gần nhau. Do các đối tượng đồ họa cơ sở là thành phần chính cấu trúc các đối tượng phức tạp nên các thuật toán hiển thị chúng cần phải được tối ưu hóa về mặt tốc độ, đây chính là điểm mấu chốt cho việc ra đời các thuật toán khác nhau. 2.1 Các hệ tọa độ a, Hệ tọa độ thế giới thực Hệ tọa độ thế giới thực (hay hệ tọa độ thực) là hệ tọa độ được dùng mô tả các đối tượng thế giới thực. Một trong các hệ tọa độ thực thường được dùng nhất đó là hệ tọa độ Descartes. Với hệ tọa độ này, bất kì một điểm nào trong mặt phẳng cũng được mô tả bằng một cặp tọa độ (x, y) trong đó x, y R. Các tọa độ thế giới thực cho phép người dùng sử dụng bất kì một thứ nguyên (dimension) quy ước như foot, cm, mm, km, inch, ... nào và có thể lớn nhỏ tùy ý. b, Hệ tọa độ thiết bị Hệ tọa độ thiết bị là hệ tọa độ được dùng bởi một thiết bị xuất cụ thể nào đó như máy in, màn hình , ... Đặc điểm chung của các hệ tọa độ thiết bị đó là:
Do cách định nghĩa các hệ tọa độ thiết bị khác nhau nên một hình ảnh được hiển thị trên thiết bị này là chính xác nhưng có thể không được hiển thị chính xác ở thiết bị khác. Người ta xây dựng một hệ tọa độ thiết bị chuẩn ( NDCS – Normalized Device Coordinate System) đại diện chung cho tất cả các thiết bị để có thề mô tả các hình ảnh mà không phụ thuộc vào bất kỳ thiết bị nào. Trong hệ tọa độ thiết bị chuẩn, các tọa độ x, y sẽ được gán các giá trị trong đoạn [0,1]. Như vậy, vùng không gian của hệ tọa độ chuẩn chính là hình vuông đơn vị có góc trái dưới (0,0) và góc phải trên (1,1) 2.1 Các đối tượng đồ họa cơ sở
Điểm là thành phần cơ sở được định nghĩa trong một hệ tọa độ. Đối với hệ tọa độ hai chiều mỗi điểm được xác định bởi cặp tọa độ (x, y). Đồ họa máy tính là gì các ứng dụng của đồ họa máy tính?Đồ họa máy tính liên quan đến việc tạo, chỉnh sửa và hiển thị các hình ảnh và video trên bề mặt phẳng như giấy, vải hay màn hình máy tính. Hệ đồ họa máy tính được thiết kế với hai phần gồm phần cứng và phần mềm. Phần cứng của hệ đồ họa bao gồm thiết bị hiển thị, các thuật toán cần thực hiện để thao tác thực hành. Đồ họa máy tính là gì?PC đồ họa là loại máy tính chuyên xử lý về đồ họa, thường có cấu hình cao để xử lý các tác vụ chuyên môn như kỹ thuật, phim ảnh, video, âm thanh và hơn nữa. Đặc điểm thường thấy nhất ở những chiếc máy tính này là bộ CPU mạnh mẽ và đặc biệt là card đồ họa khủng hơn nhiều so với máy tính thông thường. Thiết kế trên máy tính gọi là gì?Computer-aided design, viết tắt là CAD trong tiếng Anh (thiết kế được sự hỗ trợ của máy tính), được dùng rộng rãi trong các thiết bị nền tảng bằng máy tính hỗ trợ cho các kỹ sư, kiến trúc sư và các chuyên viên thiết kế khác. |