Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 98 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
98
Dung lượng
1,97 MB
Nội dung
LỜI NÓI ĐẦU Đồ họa máy tính lĩnh vực lí thú phát triển nhanh tin học Ngay từ xuất hiện, đồ họa máy tính có sức lôi mãnh liệt, hút nhiều người sử dụng nhiều lĩnh vực khác : khoa học, nghệ thuật, kinh doanh, thương mại, công nghiệp, quản lí, giáo dục, giải trí, … Số lượng chương trình đồ họa ứng dụng thật khổng lồ phát triển liên tục Cuốn sách biên soạn dựa đề cương môn Đồ họa máy tính thuộc chương trình đào tạo tin học bậc cử nhân cao đẳng Bộ Giáo dục Đào tạo, tập trung vào vấn đề đồ họa hai chiều ba chiều nhằm cung cấp tảng kiến thức đầy đủ chọn lọc bao gồm khái niệm nhất, thuật toán sở đồ họa máy tính, … giúp người đọc tự tìm hiểu xây dựng chương trình ứng dụng đồ họa Cuốn sách chia làm 10 chương, gồm hai phần : đồ họa hai chiều đồ họa ba chiều Cuối chương có phần tóm tắt hệ thống tập để người đọc tự kiểm tra Các thuật toán trình bày có lưu đồ chương trình minh họa dạng ngôn ngữ C Để vấn đề trình bày phong phú, đa dạng cập nhật, nỗ lực việc tham khảo tài liệu kinh điển, đặc biệt giảng đồ họa trường đại học tiếng giới Âu, Mỹ Brown, Stanford, MIT, Waterloo, … Tuy nhiên trình biên soạn chắn không tránh khỏi sơ sót, xin trân trọng tiếp thu tất ý kiến đóng góp bạn đọc bạn đồng nghiệp để hoàn thiện sách ngày tốt Chúng xin chân thành cám ơn Ban chủ nhiệm Khoa Công nghệ Thông tin - Đại học Khoa học Tự nhiên, anh chị Ban biên tập Nhà xuất Giáo dục hỗ trợ nhiệt tình để sách sớm đến tay bạn đọc CÁC TÁC GIẢ CHƢƠNG GIỚI THIỆU VỀ ĐỒ HỌA MÁY TÍNH Sự phát triển khoa học, kĩ thuật, nghệ thuật, kinh doanh, công nghệ luôn phụ thuộc vào khả truyền đạt thông tin chúng ta, thông qua bit liệu lƣu trữ microchip thông qua giao tiếp tiếng nói Câu châm ngôn từ xa xƣa “một hình ảnh có giá trị vạn lời” hay “trăm nghe không thấy” cho thấy ý nghĩa lớn hình ảnh việc chuyển tải thông tin Hình ảnh đƣợc cảm nhận nhanh dễ dàng hơn, đặc biệt trƣờng hợp bất đồng ngôn ngữ Do ngạc nhiên mà từ xuất máy tính, nhà nghiên cứu cố gắng sử dụng để phát sinh ảnh hình Trong suốt gần 50 năm phát triển máy tính, khả phát sinh hình ảnh máy tính đạt tới mức mà hầu nhƣ tất máy tính có khả đồ họa Đồ họa máy tính lĩnh vực lí thú phát triển nhanh tin học Ngay từ xuất hiện, đồ họa máy tính có sức lôi mãnh liệt, hút nhiều ngƣời nhiều lĩnh vực khác nhƣ khoa học, nghệ thuật, kinh doanh, quản lí, Tính hấp dẫn đa dạng đồ họa máy tính đƣợc minh họa trực quan thông qua việc khảo sát ứng dụng MỘT SỐ ỨNG DỤNG CỦA ĐỒ HỌA MÁY TÍNH Ngày nay, đồ họa máy tính đƣợc sử dụng nhiều lĩnh vực khác nhƣ công nghiệp, thƣơng mại, quản lí, giáo dục, giải trí, … Số lƣợng chƣơng trình đồ họa ứng dụng thật khổng lồ phát triển liên tục, sau số ứng dụng tiêu biểu : 1.1 Hỗ trợ thiết kế Một ứng dụng lớn đồ họa máy tính hỗ trợ thiết kế (CAD – computer-aided design) Ngày CAD đƣợc sử dụng hầu hết việc thiết kế cao ốc, ô tô, máy bay, tàu thủy, tàu vũ trụ, máy tính, trang trí mẫu vải, nhiều sản phẩm khác Sử dụng chƣơng trình này, đối tƣợng đƣợc hiển thị dƣới dạng phác thảo phần khung (wireframe outline), mà từ thấy đƣợc toàn hình dạng thành phần bên đối tƣợng Sử dụng kĩ thuật này, ngƣời thiết kế dễ dàng nhận thấy thay đổi đối tƣợng tiến hành hiệu chỉnh chi tiết hay thay đổi góc nhìn, … Một thiết kế xong phần khung đối tƣợng, mô hình chiếu sáng, tô màu tạo bóng bề mặt đƣợc kết hợp để tạo kết cuối gần với giới thực 1.2 Biểu diễn thông tin Đây ứng dụng sử dụng đồ họa máy tính để phát sinh biểu đồ, đồ thị, … dùng minh họa mối quan hệ nhiều đối tƣợng với Các ứng dụng thƣờng đƣợc dùng để tóm lƣợc liệu tài chính, thống kê, kinh tế, khoa học, toán học, … giúp cho việc nghiên cứu, quản lí, … cách có hiệu Hình 1.1 - Phác thảo phần khung kết thiết kế xy lanh Hình 1.2 – Thông tin tóm lƣợc đƣợc biểu diễn qua biểu đồ 1.3 Lĩnh vực giải trí, nghệ thuật Trong lĩnh vực nghệ thuật, chƣơng trình máy tính nhƣ Paint Shop Pro, Adobe Photoshop, 3D Studio, … hỗ trợ đắc lực cho họa sĩ, nhà tạo mẫu việc thiết kế hình ảnh sống động, thực Với chƣơng trình này, ngƣời họa sĩ đƣợc máy tính tạo cho cảm giác y nhƣ làm việc đời thực cách cung cấp công cụ nhƣ khung vẽ, giá vẽ, bảng pha màu, hiệu ứng ba chiều, … làm cho họ cảm thấy thoải mái tiện lợi Ngoài đồ họa máy tính giúp tạo chƣơng trình trò chơi, giải trí; hỗ trợ cho kĩ xảo điện ảnh, cho nhà làm phim Có nhiều phim tiếng nhờ vào kĩ xảo điện ảnh nhƣ : Công viên Khủng long kỉ Jura (Jurassic Park), Titanic, Thế giới nƣớc (Water World), … Hình 1.3 – Hình ảnh đƣợc tạo từ chƣơng trình đồ họa 1.4 Giáo dục đào tạo Hiện chƣơng trình mô cấu trúc vật thể, tiến trình phản ứng hóa học, hoạt động gói tin mạng máy tính, … đƣợc dùng nhiều việc hỗ trợ giảng dạy Trong đào tạo, ứng dụng mô đƣợc dùng để kiểm tra trình độ ngƣời lái, huấn luyện phi công, điều khiển giao thông, … Hình 1.4 – Chƣơng trình học máy tính 1.5 Giao tiếp máy tính ngƣời dùng Mọi ứng dụng phải có giao diện giao tiếp với ngƣời dùng Giao diện đồ họa thực cách mạng mang lại thuận tiện thoải mái cho ngƣời dùng ứng dụng Các ứng dụng dựa hệ điều hành MS Windows minh họa trực quan giao diện đồ họa Các chức ứng dụng đƣợc thiết kế cho ngƣời dùng làm việc thông qua biểu tƣợng mô tả chức Ví dụ, chức lƣu tập tin đƣợc hiểu thông qua biểu tƣợng đĩa mềm, chức in ấn đƣợc hiểu thông qua biểu tƣợng máy in, … Để chọn chức năng, ngƣời dùng sử dụng chuột trỏ đến nhấn vào biểu tƣợng tƣơng ứng Điểm thuận lợi dùng biểu tƣợng kích thƣớc không gian mà chiếm nhiều so với dùng văn để mô tả cho chức năng, việc nắm bắt chức qua biểu tƣợng dễ dàng nhiều ngƣời dùng gặp trở ngại mặt ngôn ngữ Các ứng dụng có giao diện đồ họa cho phép ngƣời dùng khả 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 lúc Hình 1.5 – Giao diện chƣơng trình MS Word KHÁI NIỆM VỀ ĐỒ HỌA MÁY TÍNH Đồ họa máy tính tất liên quan đến việc sử dụng máy tính để phát sinh hình ảnh Các vấn đề liên quan tới công việc bao gồm : tạo, lƣu trữ, thao tác mô hình (các mô tả hình học đối tƣợng) ảnh Theo định nghĩa đồ họa máy tính bao gồm việc thiết kế phần cứng nhƣ thiết bị hiển thị, thuật toán cần thiết để phát sinh đƣờng thiết bị này, phần mềm đƣợc sử dụng cho ngƣời lập trình hệ thống ngƣời lập trình ứng dụng đồ họa, chƣơng trình ứng dụng tạo ảnh máy tính Đồ họa máy tính cung cấp phƣơng cách tự nhiên cho việc truyền đạt thông tin với máy tính Ngày nay, nhiều trình thiết kế, cài đặt xây dựng, thông tin mà hình ảnh mang lại hầu nhƣ thiếu đƣợc Kĩ thuật trực quan (scientific visualization) trở nên lĩnh vực quan trọng từ năm 1980, nhà nghiên cứu khoa học kĩ sƣ nhận họ xử lí lƣợng liệu khổng lồ phát sinh từ siêu máy tính mà liệu không đƣợc tóm lƣợc làm bật xu hƣớng tƣợng qua nhiều loại biểu diễn đồ họa khác Đồ họa máy tính tƣơng tác phƣơng tiện mang lại thêm nhiều thuận lợi cho ngƣời dùng việc phát sinh hình ảnh kể từ có phát minh máy ảnh truyền hình Với máy tính, tạo hình ảnh không đối tƣợng cụ thể, thực tế, mà đối tƣợng trừu tƣợng, nhân tạo; biểu diễn liệu mà tính kế thừa mặt hình học, nhƣ kết điều tra, khảo sát Hơn nữa, với đồ họa máy tính không bị giới hạn ảnh tĩnh Các ảnh động thông thƣờng mang lại nhiều hiệu so với ảnh tĩnh, đặc biệt với tƣợng biến đổi theo thời gian, thực tế (nhƣ đổi hƣớng cánh máy bay siêu âm, hay phát triển khuôn mặt ngƣời từ lúc trẻ thơ tới lúc già) trừu tƣợng (nhƣ xu hƣớng phát triển việc sử dụng lƣợng, gia tăng dân số, …) Có nhiều cách tiếp cận việc học môn đồ họa, trải rộng từ việc nghiên cứu phần cứng tới việc học để sử dụng đồ họa máy tính lĩnh vực chuyên biệt nhƣ thiết kế mạch tích hợp cao (VLSI – very large scale integrated circuit) Ở tiếp cận từ góc độ ngƣời lập trình ứng dụng, ngƣời sử dụng tất hỗ trợ phần cứng, công cụ phần mềm để xây dựng nên ứng dụng Tuy nhiên để thiết kế cài đặt chƣơng trình ứng dụng đồ họa đƣợc tốt, việc tìm hiểu khả công cụ lập trình, cần phải nắm vững khái niệm phần cứng; vấn đề, nguyên lí liên quan đến cài đặt phần mềm, thuật toán, ứng dụng, … TỔNG QUAN VỀ MỘT HỆ ĐỒ HỌA Một hệ đồ họa có hai thành phần phần cứng phần mềm Phần cứng bao gồm thiết bị hiển thị nhập liệu, … Phần mềm bao gồm công cụ lập trình trình ứng dụng đồ họa Chúng ta lần lƣợt khảo sát thành phần 3.1 Phần cứng 3.1.1 Thiết bị hiển thị Màn hình thiết bị hiển thị thông dụng hệ đồ họa Các thao tác hầu hết hình dựa thiết kế ống tia âm cực (CRT – cathode ray tube) Cấu tạo CRT Hình 1.6 minh họa thao tác sở ống tia âm cực Một chùm tia điện tử (tia âm cực) phát từ súng điện tử, vƣợt qua hệ thống hội tụ (focusing) dẫn hƣớng (deflection) hƣớng tới vị trí xác định hình đƣợc phủ lớp phosphor Tại vị trí tƣơng tác với tia điện tử, hạt phosphor phát chấm sáng nhỏ Vì ánh sáng phát hạt phosphor mờ dần nhanh nên cần phải có cách để trì ảnh hình Một cách lặp lặp lại nhiều lần việc vẽ lại ảnh thật nhanh cách hƣớng tia điện tử trở lại vị trí cũ Kiểu hiển thị gọi refresh CRT Hình 1.6 – Cấu tạo CRT Có nhiều loại phosphor đƣợc dùng CRT Ngoài màu sắc ra, điểm khác loại phosphor “độ bền” (persistent), khoảng thời gian phát sáng sau tia CRT không tác động Lớp phosphor có độ bền thấp cần tốc độ làm tƣơi cao để giữ cho hình ảnh hình khỏi nhòe Loại thƣờng tốt cho hoạt hình, cần thay đổi hình ảnh liên tục Lớp phosphor có độ bền cao thƣờng đƣợc dùng cho việc hiển thị ảnh tĩnh, độ phức tạp cao Mặc dù số loại phosphor có độ bền lớn giây, nhiên hình đồ họa thƣờng đƣợc xây dựng với độ bền dao động từ 10 đến 60 micro giây Số lƣợng tối đa điểm hiển thị CRT đƣợc gọi độ phân giải (resolution) Một định nghĩa xác độ phân giải số lƣợng điểm centimet mà đƣợc vẽ theo chiều ngang chiều dọc, thƣờng đƣợc xem nhƣ tổng số điểm theo hƣớng Kích thƣớc vật lí hình đồ họa đƣợc tính từ độ dài đƣờng chéo hình, thƣờng dao động từ 12 đến 27 inch lớn Một hình CRT đƣợc kết hợp với nhiều loại máy khác nhau, số lƣợng điểm hình đƣợc vẽ thật tùy thuộc vào khả hệ thống mà kết hợp vào Một thuộc tính khác hình tỉ số phƣơng (aspect ratio) Tỉ số phƣơng tỉ lệ điểm dọc điểm ngang cần để phát sinh đoạn thẳng có độ dài đơn vị theo hai hƣớng hình (trong số trƣờng hợp ngƣời ta thƣờng dùng tỉ số phƣơng nhƣ tỉ số điểm theo chiều ngang so với điểm theo chiều dọc) Với hình có tỉ số phƣơng khác 1, dễ dàng nhận thấy hình vuông hiển thị có dạng hình chữ nhật, hình tròn có dạng hình ellipse Thực khái niệm tỉ số phƣơng xuất phát từ chất khoảng cách (nếu tính đơn vị độ dài) điểm dọc không khoảng cách điểm ngang Một tỉ số phƣơng có giá trị ¾ có nghĩa vẽ điểm theo chiều dọc có độ dài với việc vẽ điểm theo chiều ngang Màn hình dạng điểm (raster - scan display): Màn hình dạng điểm dạng thƣờng gặp số dạng hình sử dụng CRT dựa công nghệ truyền hình Trong hệ thống này, chùm tia điện tử đƣợc quét ngang qua hình, lần dòng quét từ xuống dƣới Sự bật tắt điểm sáng hình phụ thuộc vào cƣờng độ tia điện tử sở việc tạo hình ảnh hình Mỗi điểm hình đƣợc gọi pixel pel (viết tắt picture element) Các thông tin hình ảnh hiển thị hình đƣợc lƣu trữ vùng nhớ gọi vùng đệm làm tƣơi (refresh buffer) vùng đệm khung (frame buffer) Vùng nhớ lƣu trữ tập giá trị cƣờng độ sáng toàn điểm hình luôn tồn song ánh điểm hình phần tử vùng Hình 1.7 – Quá trình tạo hình ảnh tia quét Để thay đổi hình ảnh cần hiển thị, giá trị tƣơng ứng với vị trí độ sáng phải đƣợc đặt vào vùng đệm khung Hình 1.8 minh họa giá trị tƣơng ứng vùng đệm khung để hiển thị hình ảnh chữ A hình Đối với hình đen trắng, vùng đệm khung đƣợc gọi bitmap, với hình khác vùng đệm khung thƣờng đƣợc gọi pixmap Để tạo ảnh đen trắng, đơn giản cần lƣu thông tin pixel bit (các giá trị 0, tƣợng trƣng cho việc tắt (tối), bật (sáng) pixel hình) Trong trƣờng hợp ảnh nhiều màu, ngƣời ta cần nhiều bit hơn, thông tin pixel đƣợc lƣu b bit, ta có 2b giá trị màu phân biệt cho pixel Hình 1.8 – Song ánh vùng đệm khung hình Trong hình màu, ngƣời ta định nghĩa tập màu làm việc bảng tra (LookUp Table - LUT) Mỗi phần tử LUT định nghĩa ba giá trị R (Red), G (Green), B (Blue) mô tả màu Khi cần sử dụng màu, ta cần định số thứ tự (index) tƣơng ứng màu LUT Bảng LUT đƣợc thay đổi ứng dụng ngƣời lập trình can thiệp điều khiển Với cách làm tiết kiệm không gian lƣu trữ cho phần tử vùng đệm khung Số phần tử LUT đƣợc xác định từ số lƣợng bits/pixel Nếu phần tử vùng đệm khung dùng b bits để lƣu thông tin pixel, bảng LUT có b phần tử Nếu b=8, LUT có 28=256 phần tử, số màu đƣợc hiển thị lúc hình Việc làm tƣơi hình dạng đƣợc thực tốc độ 60 đến 80 frame/giây Đôi tốc độ làm tƣơi đƣợc biểu diễn đơn vị Hertz (Hz – số chu kì/ giây), chu kì tƣơng ứng với frame Sử dụng đơn vị này, mô tả tốc độ làm tƣơi 60 frame/giây đơn giản 60Hz Khi đạt đến cuối dòng quét, tia điện tử quay trở lại bên trái hình để bắt đầu dòng quét Việc quay trở lại phía trái hình sau làm tƣơi dòng quét đƣợc gọi tia hồi ngang (horizontal retrace) Và tới cuối frame, tia điện tử (tia hồi dọc – vertical retrace) quay trở lại góc bên trái hình để chuẩn bị bắt đầu frame Trong số hình, frame đƣợc hiển thị thành hai giai đoạn sử dụng kĩ thuật làm tƣơi đan xen (interlaced refesh) Ở giai đoạn đầu tiên, tia quét quét số dòng từ xuống dƣới, sau tia hồi dọc, dòng lại đƣợc quét Việc đan xen dòng quét cho phép thấy đƣợc toàn hình hiển thị nửa thời gian so với dùng để quét tất dòng lần từ xuống dƣới Kĩ thuật thƣờng đƣợc dùng cho loại hình có tốc độ làm tƣơi thấp Hình 1.9 – Hoạt động hình interlaced Các hệ màu Việc nghiên cứu màu sắc bao gồm nhiều lĩnh vực nhƣ : quang học, sinh lí học, tâm lí học nhân tố khác thuộc ngƣời Vì thế, có nhiều quan niệm nhƣ thành ngữ khoa học màu sắc Đối với ngƣời làm tin học, vấn đề mà họ quan tâm mối tƣơng tác qua lại cảm nhận màu sắc ngƣời với phận phần cứng hiển thị màu sắc hình máy tính, với phần mềm thiết kế Bảng dƣới trình bày mối quan hệ : Sự cảm nhận Đặc điểm phần cứng Đặc điểm phần mềm ngƣời Màu sắc Các màu hiển thị gốc Sắc độ màu (Hue) Bƣớc sóng (WaveLength) Độ bão hòa (Saturation) Sự màu Độ sáng hay độ chói Cƣờng độ sáng Sự “rung” hình Tốc độ làm tƣơi (refresh) Thuật toán không gian màu Hiệu chỉnh gamma Không gian màu (color space) đƣợc đƣa để định màu hiển thị máy tính chúng làm đơn giản hóa thao tác tính toán cần thiết cho việc chuyển đổi màu sắc (color transformation) Không gian màu đƣợc thiết kế dựa sở phát sinh màu phần cứng (hardware color G generation) (ví dụ nhƣ không gian RGB) dựa cảm nhận màu Green Yellow sắc mắt (nhƣ không gian HSL) Với ứng dụng, việc chọn không gian (0,1,0) (1,1,0) Grayscale màu để sử dụng tùy thuộc vào số nhân tố sau : độ xác mà nhà thiết kế cần kiểm soát màu sắc (color control); yêu cầu tƣơng tác màu sắc tốc độ tính toán cho ứng dụng Cyan White (1,1,1) (0,1,1) Không gian RGB (RGB space) Black (0,0,0) Không gian RGB mô tả màu sắc ba thành phần Red, Green, Blue Không gian đƣợc minh họa khối lập phƣơng với trục R, G, B Mỗi màu không gian RGB đƣợc biểu diễn nhƣ vector thông qua ba vector sở Red, Green, Blue Do đó, ứng với tổ hợp khác ba màu cho ta màu Red (1,0,0) B Blue (0,0,1) R Magenta (1,0,1) Hình 1.10 - Mô hình không gian RGB Trong hình lập phƣơng màu gốc (Red, Green, Blue) đƣợc đặt vào góc đối diện với màu bù (Hai màu bù hai màu mà kết hợp tạo thành màu trắng hay xám (grey)) Nhƣ Red đối diện với Cyan, Green đối diện với Magenta, Blue đối diện với Yellow Giá trị xám nằm đƣờng chéo nối đỉnh 0,0,0, 1,1,1 hình lập phƣơng Thƣờng thƣờng trục R, G, B đƣợc chuẩn hóa Khi kết hợp hai màu lại với màu sinh có vector tổng vector thành phần Một số thuận lợi dùng không gian RGB : Không gian RGB chuẩn công nghiệp cho thao tác đồ họa máy tính Các thao tác màu sắc đƣợc tính toán không gian màu khác nhƣng cuối cần phải chuyển không gian RGB để hiển thị hình (do thiết kế phần cứng dựa mô hình RGB) Có thể chuyển đổi qua lại không gian RGB với không gian màu khác nhƣ CIE, CMY, HSL, HSV, Các thao tác tính toán không gian RGB thƣờng đơn giản Một số bất lợi : Các giá trị RGB màu khác hình khác : Nghĩa giá trị RGB màu tim hình màu không sinh màu hình khác Sự mô tả màu giới thực không gian RGB nhiều hạn chế không gian RGB không hoàn toàn phù hợp với cảm nhận màu sắc ngƣời Hai điểm phân biệt không gian RGB, với mắt ngƣời thể hai màu khác Chính điều mà không gian RGB ánh xạ trực tiếp đến chiều cảm nhận khác (nhƣ hue, saturation, lightness) hue (sắc độ) Không gian HSL Không gian có trọng không gian RGB đến thành phần cảm nhận màu sắc mắt (Hue, Saturation, Lightness) Tuy nhiên, không gian HSL thực phép biến đổi gần không gian RGB mà Không giống nhƣ không gian màu khác xây dựng cảm nhận màu sắc mắt, không gian HSL bị lệ L(Lightness) thuộc vào phần cứng CRT L=1 (White) Không gian HSL đƣợc biểu diễn hệ tọa độ trụ, hình minh họa hai hình nón úp vào H (Hue) toạ độ ứng với góc quay, S (Saturation) tọa độ gốc, L trục thẳng đứng Hầu hết màu đạt bão hòa S = L = 0.5 Red Hình 1.11 - Mô hình không gian HSL Yellow Một số thuận lợi không gian HSL : Magenta L=0.5 Green Không gian HSL gần với cảm nhận thuộc tính màu sắc ngƣời không gian RGB (tuy cách tiếp cận đơn giản hóa nhiều) Các màu đƣợc xác định dễ dàng chẳng hạn H quay quanh trục đứng nên màu bù đƣợc xác định cách dễ dàng, giá trị lightness Blue Cyan Grayscale H(Hue angle) L=0 (Black) S(Saturation) Việc kiểm soát màu sở HSL dễ cho ngƣời làm quen với chƣơng trình đồ họa Một số bất lợi : V(Value) Việc thêm vào vector thực đơn giản nhƣ không gian RGB (chỉ thêm vào thành phần màu) Các thao tác lƣợng giác biến đổi ảnh hƣởng đáng kể đến tốc độ chƣơng trình Green (1200) V=1 (White) Cyan Cần phải qua hiệu chỉnh gamma trƣớc hiển thị (giống nhƣ không gian khác) Yellow Blue (2400) Red (00) Magenta Không gian HSV Không gian HSV thực chất biến đổi khác không gian RGB Không gian HSV đƣợc mô hình hình lập phƣơng RGB quay đỉnh Black H (Hue) góc quay quanh trục Values, S (Saturation) từ đến 1, trục V (Values) tƣơng ứng với đƣờng chéo nối đỉnh White Black Grayscale H(Hue angle) V=0 (Black) S(Saturation) Hình 1.12 - Mô hình không gian HSV Theo cách này, màu đạt bão hòa S=1 V=1 Trong không gian HSV màu đƣợc chuẩn hóa số gam (gamut) màu thiết bị hiển thị Một số thuận lợi không gian HSV : Không gian HSV dễ dàng đáp ứng màu sắc chƣơng trình đồ họa đƣợc xây dựng dựa bắt chƣớc luật trộn màu ngƣời họa sĩ Ví dụ : Khi cần thêm màu trắng vào, phải đặt V=S=1 sau giảm S từ từ đạt đƣợc màu vừa ý; hay cần thêm màu đen vào, điều có nghĩa giảm V (cƣờng độ sáng) cố định S, Do không cần sử dụng phép biến đổi lƣợng giác muốn chuyển sang không gian RGB nên không gian HSV có nhiều thuận lợi mặt tính toán so với không gian HSL Một số bất lợi : Cần có phép hiệu chỉnh gamma Bảng so sánh không gian màu RGB HSL HSV Chuẩn công nghiệp cho thao tác Hình thức biến đổi khác không gian Hình thức biến đổi khác không gian đồ họa máy tính RGB RGB Liên hệ trực tiếp với phần cứng Liên hệ gần với cảm nhận màu Liên hệ gần với cảm nhận màu sắc sắc ngƣời ngƣời Là chuyển đổi cuối cho tất Đòi hỏi phép biến đổi phức tạp nhu cầu hiển thị Đã đơn giản hóa thao tác tính toán Không thể chuyển sang hình khác Độc lập thiết bị (phụ thuộc thiết bị) Độc lập thiết bị Không có tƣơng ứng 1-1 với cách Có cảm nhận màu ngƣời Có Mô hình hình lập phƣơng Mô hình hai hình nón úp vào Mô hình hình nón đơn Đƣợc chuẩn hóa Đƣợc chuẩn hóa Đƣợc chuẩn hóa Độ bão hòa đạt max S =1 Độ bão hòa đạt max S =1, L =0.5 Độ bão hòa đạt max S =1, V =1 Trộn màu không rõ ràng Rõ ràng Rõ ràng 3.1.2 Các thiết bị nhập Bàn phím : Xuất hầu hết máy tính, thiết bị để nhập liệu dạng văn số Đây loại thiết bị quen thuộc với ngƣời sử dụng có hạn chế tƣơng tác không cao Chuột : Cùng với xuất ứng dụng đồ họa tƣơng tác cao, chuột thiết bị nhập ngày quen thuộc với ngƣời sử dụng Ngƣời ta dùng chuột để trỏ chọn (point-click) chức phù hợp với yêu cầu Bằng cách này, giao tiếp ngƣời dùng máy tính ngày thân thiện dễ dàng Ngoài có số thiết bị nhập khác họ với chuột nhƣ track ball, … 3.2 Phần mềm Phần mềm đồ họa phân thành loại : công cụ lập trình trình ứng dụng đồ họa phục vụ cho mục đích Các công cụ lập trình cung cấp tập hàm đồ họa đƣợc dùng ngôn ngữ lập trình cấp cao nhƣ C, Pascal, Ví dụ nhƣ thƣ viện đồ họa ngôn ngữ nhƣ C, Pascal hay GL (Graphics Library) Silicon Graphics Các hàm sở bao gồm việc tạo đối tƣợng sở hình ảnh nhƣ đoạn thẳng, đa giác, đƣờng tròn, …, thay đổi màu sắc, chọn khung nhìn, áp dụng phép biến đổi, … Trong đó, ứng dụng đồ họa đƣợc thiết kế cho ngƣời dùng lập trình viên, cho phép ngƣời dùng tạo đối tƣợng, hình ảnh, … mà không cần quan tâm tới việc chúng đƣợc tạo nhƣ Ví dụ nhƣ Photoshop, AutoCAD, … Biểu diễn tọa độ Thông thƣờng hệ đồ họa sử dụng hệ tọa độ Descartes để mô tả đối tƣợng Nếu tọa độ đối tƣợng đƣợc mô tả hệ tọa độ khác nhƣ tọa độ cầu, …, chúng phải đƣợc chuyển tọa độ Descartes trƣớc dùng Quy trình hiển thị đối tƣợng Trƣớc tiên mô tả đối tƣợng thành phần ảnh phức tạp hệ tọa độ riêng để thuận tiện cho việc biểu diễn tọa độ chúng Các hệ tọa độ đƣợc gọi hệ tọa độ mô hình (modeling coordinates) hay gọi hệ tọa độ cục (local coordinates) Một đối tƣợng thành phần đƣợc biểu diễn xong, đặt chúng vào vị trí tƣơng ứng ảnh sử dụng hệ tọa độ giới thực (world coordinates) Sau cùng, mô tả ảnh hệ tọa độ giới thực đƣợc chuyển đến nhiều hệ tọa độ khác thiết bị hiển thị, tùy vào muốn hiển thị thiết bị Các hệ tọa độ đƣợc gọi hệ tọa độ thiết bị (device coordinates) Các mô tả hệ tọa độ cục hệ tọa độ giới thực cho phép sử dụng thứ nguyên thích hợp cho đơn vị đo mà bị ràng buộc thiết bị hiển thị cụ thể Hình 1.13 – Quy trình hiển thị đối tƣợng Thông thƣờng, hệ đồ họa chuyển mô tả hệ tọa độ giới thực tới hệ tọa độ thiết bị chuẩn (normalized device coordinates) có chiều đơn vị trƣớc chuyển tới hệ tọa độ thiết bị Điều làm cho hệ thống độc lập với nhiều loại thiết bị khác Các hàm đồ họa Các hàm đồ họa cung cấp khả tạo thao tác hình ảnh Các hàm đƣợc phân loại nhƣ sau : Tập công cụ tạo đối tƣợng đồ họa sở nhƣ điểm, đoạn thẳng, đƣờng cong, vùng tô, kí tự, … Tập công cụ thay đổi thuộc tính dùng để thay đổi thuộc tính đối tƣợng đồ họa sở nhƣ màu sắc, kiểu đƣờng, kiểu chữ, mẫu tô, … Tập công cụ thực phép biến đổi hình học dùng để thay đổi kích thƣớc vị trí, hƣớng đối tƣợng, … Tập công cụ biến đổi hệ quan sát dùng để xác định vị trí quan sát đối tƣợng vị trí thiết bị hiển thị đƣợc dùng để hiển thị đối tƣợng Tập công cụ nhập liệu : Các ứng dụng đồ họa sử dụng nhiều loại thiết bị nhập khác nhƣ bút vẽ, bảng, chuột, bàn phím,… để điều khiển xử lí dòng liệu nhập Cuối tập công cụ chứa thao tác dùng cho việc quản lí điều khiển ví dụ nhƣ xóa toàn hình, thiết lập chế độ đồ họa, … Các chuẩn phần mềm Mục tiêu phần mềm đồ họa đƣợc chuẩn tính tƣơng thích Khi công cụ đƣợc thiết kế với hàm đồ họa chuẩn, phần mềm đƣợc di chuyển cách dễ dàng từ hệ phần cứng sang hệ phần cứng khác đƣợc dùng nhiều cài đặt ứng dụng khác Sau nỗ lực không nhỏ tổ chức chuẩn hóa quốc gia quốc tế, chuẩn cho việc phát triển phần mềm đồ họa đời GKS (Graphics Kernel System – Hệ đồ họa sở) Hệ thống ban đầu đƣợc thiết kế cho tập công cụ đồ họa hai chiều, sau đƣợc phát triển mở rộng cho đồ họa ba chiều Các hàm GKS thực mô tả trừu tƣợng, độc lập với ngôn ngữ lập trình Để cài đặt chuẩn đồ họa cho ngôn ngữ cụ thể nào, cú pháp tƣơng ứng đƣợc xác định cụ thể hóa Mặc dù GKS xác lập đƣợc ý tƣởng ban đầu cho hàm đồ họa sở, nhiên không cung cấp cách thức chuẩn cho việc giao tiếp đồ họa với thiết bị xuất Nó không xác định cách thức cho mô hình thời gian thực nhƣ cách thức lƣu trữ chuyển đổi hình ảnh Các chuẩn cho cách thức đƣợc xây dựng riêng, cụ thể : Các chuẩn cho cách thức giao tiếp thiết bị đƣợc cho hệ CGI (Computer Graphics Interface System), hệ CGM (Computer Graphics Metafile) xác định chuẩn cho việc lƣu trữ chuyển đổi hình ảnh, hệ PHIGS (Programmer’s Hierarchical Interactive Graphics Standard) xác định cách thức chuẩn cho mô hình thời gian thực khả lập trình mức độ cao mà chƣa đƣợc quan tâm tới GKS TÓM TẮT Sự đời đồ họa máy tính thực cách mạng giao tiếp ngƣời dùng máy tính Với lƣợng thông tin trực quan, đa dạng phong phú đƣợc chuyển tải qua hình ảnh, ứng dụng đồ họa máy tính lôi nhiều ngƣời nhờ tính thân thiện, dễ dùng, kích thích khả sáng tạo tăng đáng kể hiệu suất làm việc Đồ họa máy tính ngày đƣợc ứng dụng rộng rãi nhiều lĩnh vực khoa học, kĩ thuật, nghệ thuật, kinh doanh, quản lí, … Các ứng dụng đồ họa đa dạng, phong phú phát triển liên tục không ngừng Ngày nay, hầu nhƣ chƣơng trình ứng dụng mà không sử dụng kĩ thuật đồ họa để làm tăng tính hấp dẫn Một hệ đồ họa có hai thành phần phần cứng phần mềm Thành phần phần cứng bao gồm thiết bị hiển thị (hay thiết bị xuất) thiết bị nhập Tiêu biểu thiết bị hiển thị hình mà chế hoạt động dựa cấu tạo ống tia âm cực CRT Các thiết bị nhập liệu thƣờng gặp bao gồm bàn phím, chuột Phần mềm đồ họa chia làm hai loại công cụ lập trình nhƣ hàm thƣ viện C, Pascal, GL, … ứng dụng phục vụ cho mục đích nhƣ AutoCAD, Photoshop, … Hƣớng tiếp cận tài liệu mức độ ngƣời lập trình, nghĩa tìm hiểu thuật toán, nguyên lí để xây dựng nên ứng dụng đồ họa học cách sử dụng phần mềm nhƣ AutoCAD, Photoshop, … BÀI TẬP Cấu tạo nguyên lí hoạt động hình dạng điểm Các khái niệm nhƣ vùng đệm khung, độ phân giải, tỉ số phƣơng, … hình dạng Ý nghĩa hoạt động bảng tra LUT Ba hình có độ phân giải lần lƣợt 640x480, 1024x768, 1280x1024 Hãy cho biết kích thƣớc vùng đệm khung (tính byte) pixel đƣợc mô tả bit, 12 bit, 24 bit Hai hình có độ phân giải 640x480 1024x768 Cho biết số pixel đƣợc truy cập giây hình tốc độ làm tƣơi CRT 60Hz Một hình có kích thƣớc theo chiều ngang 12 inche, chiều dọc 9.6 inch Hãy cho biết đƣờng kính điểm hình độ phân giải 1280x1024 tỉ số phƣơng Hãy cho biết thông tin vùng đệm khung hình vẽ kí tự B, G, H, … Các hệ màu Mối liên hệ chúng Quy trình hiển thị đối tƣợng Ý nghĩa hệ tọa độ Tập hàm đồ họa công cụ lập trình Liên hệ tới thƣ viện đồ họa ngôn ngữ học nhƣ C, Pascal, … 10 Tại cần phải chuẩn hóa phần mềm ? Tìm hiểu chuẩn GKS, PHIGS 10 CHƢƠNG CÁC ĐỐI TƢỢNG ĐỒ HỌA CƠ SỞ Bất kì ảnh mô tả giới thực đƣợc cấu trúc từ tập đối tƣợng đơn giản Ví dụ ảnh thể trí phòng đƣợc cấu trúc từ đối tƣợng nhƣ cảnh, tủ kính, bàn ghế, tƣờng, ánh sáng đèn, … Với ảnh đồ họa phát sinh máy tính, hình dạng màu sắc đối tƣợng đƣợc mô tả riêng biệt hai cách : dãy pixel tƣơng ứng tập đối tƣợng hình học sở nhƣ đoạn thẳng hay vùng tô đa giác, … Sau đó, ảnh đƣợc hiển thị cách nạp pixel vào vùng đệm khung Hình 2.1 – Ảnh cánh tay robot đƣợc cấu tạo từ đối tƣợng đồ họa sở Với ảnh đƣợc mô tả đối tƣợng hình học sở, cần phải có trình chuyển đối tƣợng dạng ma trận pixel trƣớc Quá trình đƣợc gọi trình chuyển đổi dòng quét (scan-converting) Bất kì công cụ lập trình đồ họa phải cung cấp hàm để mô tả ảnh dƣới dạng đối tƣợng hình học sở hay gọi đối tƣợng đồ họa sở (output primitives) hàm cho phép kết hợp tập đối tƣợng sở để tạo thành đối tƣợng có cấu trúc phức tạp Mỗi đối tƣợng đồ họa sở đƣợc mô tả thông qua liệu tọa độ thuộc tính nó, thông tin cho biết kiểu cách mà đối tƣợng đƣợc hiển thị Đối tƣợng đồ họa sở đơn giản điểm đoạn thẳng, có đƣờng tròn, đƣờng conics, mặt bậc hai, mặt đƣờng splines, vùng tô đa giác, chuỗi kí tự, … đƣợc xem đối tƣợng đồ họa sở để giúp xây dựng ảnh phức tạp Chƣơng khảo sát thuật toán hiển thị đối tƣợng đồ họa sở cho thiết bị hiển thị dạng điểm Xét mặt chất, thuật toán thực trình chuyển đổi đối tƣợng đồ họa sở đƣợc mô tả hệ tọa độ thực dãy pixel có tọa độ nguyên thiết bị hiển thị Có hai yêu cầu đặt cho thuật toán : Đối tƣợng đƣợc mô tả hệ tọa độ thực đối tƣợng liên tục, đối tƣợng hệ tọa độ thiết bị đối tƣợng rời rạc, chất trình chuyển đổi rời rạc hóa nguyên hóa đối tƣợng cho xác định điểm nguyên xấp xỉ đối tƣợng cách tốt nhất, thực Nghĩa đối tƣợng hiển thị lƣới nguyên thiết bị hiển thị phải có hình dạng tƣơng tự nhƣ đối tƣợng lƣới tọa độ thực “có vẻ” liên tục, liền nét Sự liên tục lƣới nguyên thiết bị hiển thị có đƣợc mắt ngƣời phân biệt đƣợc hai điểm gần Do đối tƣợng đồ họa sở thành phần cấu trúc đối tƣợng phức tạp nên thuật toán hiển thị chúng cần phải đƣợc tối ƣu hóa mặt tốc độ, điểm mấu chốt cho việc đời thuật toán khác Hình 2.2 – Quá trình chuyển đổi đoạn thẳng dãy pixel tƣơng ứng CÁC ĐỐI TƢỢNG ĐỒ HỌA CƠ SỞ 4.1 Hệ tọa độ giới thực hệ tọa độ thiết bị 4.1.1 Hệ tọa độ giới thực Hệ tọa độ giới thực (hay hệ tọa độ thực) hệ tọa độ đƣợc dùng mô tả đối tƣợng giới thực Một hệ tọa độ thực thƣờng đƣợc dùng hệ tọa độ Descartes Với hệ tọa độ này, điểm mặt phẳng đƣợc mô tả cặp tọa độ (x, y) x, y R Gốc tọa độ điểm O có tọa độ (0, 0) Các trục tọa độ có chiều dƣơng đƣợc quy ƣớc nhƣ hình 2.3; Ox, Oy lần lƣợt đƣợc gọi trục hoành, trục tung; x khoảng cách từ điểm đến trục hoành hay đƣợc gọi hoành độ, y khoảng cách từ điểm đến trục tung hay đƣợc gọi tung độ Các tọa độ giới thực cho phép ngƣời dùng sử dụng thứ nguyên (dimension) quy ƣớc nhƣ foot, cm, mm, km, inch, lớn nhỏ tùy ý 4.1.2 Hệ tọa độ thiết bị Hệ tọa độ thiết bị hệ tọa độ đƣợc dùng thiết bị xuất cụ thể nhƣ máy in, hình, Đặc điểm chung hệ tọa độ thiết bị : Các điểm hệ tọa độ thiết bị đƣợc mô tả cặp tọa độ (x, y), nhiên điểm khác với hệ tọa độ thực x, y N Điều cho thấy điểm hệ tọa độ thực đƣợc định nghĩa liên tục, điểm hệ tọa độ thiết bị rời rạc tính chất tập số tự nhiên 11 Các tọa độ x, y hệ tọa độ thiết bị lớn tùy ý mà bị giới hạn khoảng Một số thiết bị cho x chạy đoạn[0,639], y chạy đoạn [0,479] Khoảng y giới hạn tọa độ x, y khác loại thiết bị khác y y PWC(x,y) ymax PDC(x,y) O x x O Hình 2.3 – Hệ tọa độ thực (a) hệ tọa độ thiết bị (b) Hệ tọa độ với hƣớng trục tọa độ nhƣ đƣợc gọi hệ tọa độ theo quy ƣớc bàn tay phải (a) xmax x (b) Ngoài cách tổ chức nhớ nên thông thƣờng hệ tọa độ thiết bị thƣờng dựa hệ tọa độ theo quy ƣớc bàn tay trái y O O x x y (a) (b) Hình 2.4 - Hệ tọa độ theo quy ƣớc bàn tay phải (a) quy ƣớc bàn tay trái (b) 4.2 Điểm Điểm thành phần sở đƣợc định nghĩa hệ tọa độ Đối với hệ tọa độ hai chiều điểm đƣợc xác định cặp tọa độ (x, y) Ngoài thông tin tọa độ, điểm có thuộc tính màu sắc 4.3 Đoạn thẳng, đƣờng gấp khúc Một đƣờng thẳng xác định biết hai điểm thuộc Phƣơng trình đƣờng thẳng qua hai điểm (x 1, y1) (x2, y2) có dạng sau : x x1 x x1 y y1 y2 y1 hay dạng tƣơng đƣơng : x x1 y2 y1 y y1 x2 x1 Khai triển ta có dạng : y mx b , : Dy , Dy y2 y1 , Dx x x1 Dx b y1 mx1 m Đây đƣợc gọi phƣơng trình đoạn chắn đƣờng thẳng Nếu khai triển dƣới dạng : y2 y1 x x2 x1 y x1 y2 x2 y1 0 đặt A y2 y1 , B x2 x1 , C x2 y1 x1 y2 phƣơng trình đƣờng thẳng có dạng Ax By C , dạng đƣợc gọi phƣơng trình tổng quát đƣờng thẳng Phƣơng trình tham số đƣờng thẳng có dạng tọa độ x, y đƣợc mô tả qua thành phần thứ ba t Dạng thuận tiện khảo sát đoạn thẳng x 1 tx1 tx2 y 1 ty1 ty2 (x2, y2) Nếu t 0,1 , ta có điểm (x,y) thuộc đoạn thẳng giới hạn hai điểm (x 1, y1) (x2, y2), t , , ta có toàn đƣờng thẳng (x1, y1) t>1 t=1 t=0 Một đoạn thẳng đƣờng thẳng bị giới hạn hai điểm đầu, cuối t