
Thiết kế đồ họa máy tính (tiếng Anh: computer graphics) là ngành khoa học máy tính nghiên cứu các phương pháp toán học, thuật toán và kỹ thuật để tạo ra, hiển thị và điều khiển hình ảnh trên màn hình máy tính. Lĩnh vực này liên quan đến các môn học như đại số, hình học giải tích, hình học họa hình, quang học, và kỹ thuật máy tính, đặc biệt là phần cứng như màn hình, thiết bị xuất nhập, và các bo mạch đồ họa.
Theo cách hiểu rộng hơn, đồ họa máy tính là kỹ thuật và công nghệ chuyển đổi dữ liệu thành hình ảnh trên màn hình máy tính. Nó còn được xem là phương pháp và kỹ thuật tạo ra hình ảnh từ các mô hình toán học mô tả đối tượng hoặc dữ liệu thực tế. Thuật ngữ 'đồ họa máy tính' được giới thiệu bởi chuyên gia William Fetter vào năm 1960 trong nghiên cứu mô hình buồng lái máy bay cho Boeing, nhằm tạo ra mô hình tối ưu cho buồng lái máy bay và quan sát vị trí của phi công một cách trực quan.
Lịch sử
Vào thập niên 1960, lịch sử đồ họa máy tính ghi dấu ấn với dự án SketchPad, được phát triển tại Học viện Công nghệ Massachusetts (MIT) bởi Ivan Sutherland. Những thành tựu của dự án được giới thiệu tại hội nghị Fall Joint Computer, đánh dấu lần đầu tiên có khả năng tạo, hiển thị và điều chỉnh dữ liệu hình ảnh trực tiếp trên màn hình máy tính trong thời gian thực. Hệ thống Sketchpad được sử dụng để thiết kế mạch điện và bao gồm các thành phần sau:
- Màn hình CRT
- Bút sáng và một bàn phím với các phím chức năng
- Máy tính chứa chương trình xử lý thông tin
Với hệ thống này, người dùng có thể vẽ trực tiếp các sơ đồ mạch điện lên màn hình bằng bút sáng, chương trình sẽ tự động phân tích và tính toán các thông số của mạch điện do người dùng tạo ra.
Vào thập niên 1970, kỹ thuật đồ họa tiếp tục được cải tiến với sự xuất hiện của các chuẩn đồ họa, nâng cao khả năng giao tiếp và tái sử dụng phần mềm cũng như các thư viện đồ họa.
Thập niên 1980 chứng kiến sự phát triển vượt bậc của công nghệ vi điện tử và phần cứng máy tính, với hàng loạt vỉ mạch hỗ trợ đồ họa ra đời, cùng với sự giảm giá của máy tính cá nhân, đồ họa ngày càng trở nên phổ biến trong cuộc sống thực tế.
Các Kỹ Thuật Trong Đồ Họa Máy Tính
Ngành đồ họa máy tính sử dụng nhiều kỹ thuật để hiển thị hình ảnh, mỗi kỹ thuật có lịch sử và đặc điểm riêng biệt. Dưới đây là ba kỹ thuật hiển thị hình ảnh phổ biến nhất trong đồ họa máy tính:
Đồ họa raster
Kỹ thuật đồ họa raster (hay còn gọi là đồ họa Bitmap) là một trong những phương pháp hiển thị hình ảnh lâu đời và phổ biến, dựa trên công nghệ màn hình tivi đã tồn tại từ trước khi máy tính điện tử ra đời. Kỹ thuật này tạo hình ảnh từ các ô vuông nhỏ gọi là pixel (phần tử ảnh).
Tùy thuộc vào độ phân giải, một hình ảnh có thể bao gồm hàng nghìn đến hàng triệu pixel, tương tự như một bức tường xây từ nhiều viên gạch. Ưu điểm của kỹ thuật raster là khả năng hiển thị chi tiết rõ ràng với màu sắc đa dạng và hài hòa. Tuy nhiên, hình ảnh raster có thể bị nhòe hoặc vỡ khi phóng to hoặc nén quá nhiều, và dung lượng file ảnh raster có thể lớn nếu độ phân giải cao.
Đồ họa vector
Đồ họa vector là phương pháp tạo hình ảnh bằng các đường kẻ dựa trên công thức toán học, lần đầu tiên áp dụng cho màn hình máy tính vào những năm 60 và 70 của thế kỷ 20. Mặc dù từng bị thay thế bởi kỹ thuật đồ họa raster và ít phổ biến hơn, đồ họa vector đang dần trở lại với sự ưa chuộng.
Ưu điểm của đồ họa vector bao gồm khả năng phóng to không giảm chất lượng, dung lượng nhỏ hơn so với raster, và dễ chỉnh sửa. Kỹ thuật này rất phù hợp cho thiết kế các đồ họa đơn giản và ít màu sắc như logo, biểu tượng, hoặc icon.
Đồ họa 3D
Đồ họa 3D là lĩnh vực đồ họa đang được phát triển mạnh mẽ hiện nay, với ứng dụng rộng rãi trong không gian ảo và hình chiếu ba chiều. Nhà thiết kế đồ họa phải thực hiện nhiều bước phức tạp và áp dụng các kỹ thuật chuyên sâu để tạo ra các đối tượng hình ảnh 3D chính xác và sinh động.
Trước tiên, cần dựng khung cơ bản (wire-frame) của đối tượng trong phần mềm đồ họa máy tính. Sau đó, các phần của đối tượng sẽ được thêm vào và kết nối với nhau (rigged) để tạo ra sự liên kết chân thực, đặc biệt cho các đối tượng có khả năng chuyển động. Cuối cùng, đối tượng phải được render.
Đây là bước phức tạp và tốn thời gian nhất vì một đối tượng 3D có nhiều bề mặt với chất liệu, độ trong suốt, màu sắc, và độ sáng khác nhau. Để tạo ra một đối tượng 3D chính xác, các kỹ thuật toán học như ray tracing hoặc radiosity được sử dụng để mô phỏng ánh sáng chiếu và phản chiếu trên các bề mặt khác nhau.
Các hệ màu phổ biến
Hệ màu RGB
Hệ màu RGB sử dụng ba thành phần Red, Green, Blue để mô tả màu sắc trong một mô hình gọi là 'không gian màu'. Không gian màu này được thể hiện qua một khối lập phương với các trục chính là R, G, B.
Mỗi màu trong không gian RGB được biểu diễn dưới dạng một vector dựa trên ba vector cơ sở là Đỏ, Xanh lá và Xanh dương. Các tổ hợp khác nhau của ba màu này tạo ra các màu mới.
Trong hình lập phương màu, mỗi màu cơ bản (Đỏ, Xanh lá, Xanh dương) được đặt ở góc đối diện với các màu bù của nó. Các màu bù là những màu khi kết hợp sẽ tạo ra màu trắng hoặc xám. Cụ thể, Đỏ đối diện với Cyan, Xanh lá đối diện với Magenta, và Xanh dương đối diện với Vàng. Màu xám nằm trên đường chéo nối các đỉnh (0,0,0) và (1,1,1) của hình lập phương. Thường thì các trục R, G, B được chuẩn hóa. Khi kết hợp hai màu, màu mới có vector bằng tổng của các vector thành phần.
- Lợi ích
- Không gian RGB là tiêu chuẩn công nghiệp cho các thao tác đồ họa máy tính. Mặc dù các phép toán màu sắc có thể thực hiện trong các không gian màu khác, cuối cùng chúng cần phải chuyển về không gian RGB để hiển thị trên màn hình do phần cứng được thiết kế dựa trên mô hình RGB.
- Có khả năng chuyển đổi linh hoạt giữa không gian RGB và các không gian màu khác như CIE, CMY, HSL, HSV,...
- Các phép toán trên không gian RGB thường có tính toán dễ dàng hơn.
- Nhược điểm
- Giá trị R, G, B của một màu có thể khác nhau giữa các màn hình khác nhau: Điều này có nghĩa là màu sắc hiển thị trên một màn hình có thể không giống như trên một màn hình khác.
- Mô tả màu sắc thực tế trong không gian RGB còn nhiều hạn chế, vì không gian RGB không hoàn toàn phản ánh cách mà con người cảm nhận màu sắc. Hai màu trong không gian RGB có thể trông giống nhau hoặc khác nhau tùy thuộc vào sự cảm nhận của mắt người.
Hệ màu CMYK (hệ màu trừ)
Hệ màu CMYK sử dụng mực để tái tạo màu, thường được áp dụng trong in ấn, in offset và in phun màu. Bao gồm ba màu mực chính:
- Cyan (C)
- Magenta (M)
- Yellow (Y)
Khi kết hợp ba màu này, ta thu được màu đen (Black). Tuy nhiên, màu đen này không phải là đen hoàn toàn khi in ra, vì vậy thường thêm mực màu đen vào máy in. Đây là mực màu, không phải mực in trắng đen.
Hệ màu HSB (Hue, Saturation, Brightness)
Hệ màu HSB bao gồm ba thành phần cơ bản của màu sắc:
- Hue (H): sắc thái màu (0-360 độ)
- Saturation (S): độ bão hòa màu (0-100%)
- Brightness (B): độ sáng tối (0-100%)
Hệ màu Lab (mô hình tổng hợp)
Hệ màu Lab sử dụng trong công nghệ thăng hoa màu của ảnh kỹ thuật số. Công nghệ này không dùng mực in, mà giấy tạo ra quang phổ màu với ngưỡng cao và dải màu phong phú.
Hệ Lab bao gồm ba thành phần chính:
- L (Light): ánh sáng (trắng - đen, 0-100%)
- a: từ xanh lá đến đỏ (-127 đến 128)
- b: từ xanh dương đến vàng (-127 đến 128)
Thuật toán để xây dựng các đối tượng cơ bản
Thuật toán DDA (Digital Differential Analyzer)
Xét đoạn thẳng với hệ số góc 0
Các phép biến đổi Affine cơ bản trên mặt phẳng
Các ứng dụng trong đồ họa máy tính
Đồ họa máy tính đóng vai trò quan trọng trong việc xử lý hình ảnh, với ước tính lên đến 80% thông tin được xử lý dưới dạng hình ảnh. Dưới đây là một số ứng dụng nổi bật của đồ họa máy tính:
- Xây dựng mô hình và hoạt cảnh (trong game, giải trí,...)
- Hỗ trợ trong thiết kế đồ họa
- Mô phỏng và chẩn đoán hình ảnh (trong lĩnh vực y tế)
- Đào tạo ảo (trong quân đội, hàng không,...)
- Thiết kế thương hiệu
Liên kết ngoài
- Diễn đàn Hiệp hội đồ họa vi tính Việt Nam Lưu trữ ngày 24-11-2017 tại Wayback Machine
- Tạp chí đồ họa máy tính Việt Nam CGEZINE Lưu trữ ngày 02-02-2011 tại Wayback Machine (Tạp chí E-đồ họa máy tính)
- Trang web thiết kế đồ họa (tiếng Anh)
- Blog về thiết kế đồ họa (tiếng Anh)
- Trang web của chuyên gia đồ họa vi tính Kagaya Yutaka (tiếng Nhật)
Những lĩnh vực chính của khoa học máy tính |
|---|
Chuyên ngành chính của Tin học |
|---|
