Đồ họa máy tính

Đồ họa máy tính () là một lĩnh vực của khoa học máy tính nghiên cứu về cơ sở toán học, các thuật toán cũng như các kĩ thuật để cho phép tạo, hiển thị và điều khiển hình ảnh trên màn hình máy tính. Đồ họa máy tính có liên quan ít nhiều đến một số lĩnh vự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à chế tạo phần cứng (các loại màn hình, các thiết bị xuất, nhập, các vỉ mạch đồ họa...).

Theo nghĩa rộng hơn, đồ họa máy tính là phương pháp và công nghệ dùng trong việc chuyển đổi qua lại giữa dữ liệu và hình ảnh trên màn hình bằng máy tính. Đồ họa máy tính hay kĩ thuật đồ họa máy tính còn được hiểu dưới dạng phương pháp và kĩ thuật tạo hình ảnh từ các mô hình toán học mô tả các đối tượng hay dữ liệu lấy được từ các đối tượng trong thực tế. Thuật ngữ "đồ họa máy tính" được đề xuất bởi một chuyên gia người Mỹ tên là William Fetter vào năm 1960. Khi đó ông đang nghiên cứu xây dựng mô hình buồng lái máy bay cho hãng Boeing. William Fetter đã dựa trên các hình ảnh 3 chiều của mô hình người phi công trong buồng lái để xây dựng nên mô hình buồng lái tối ưu cho máy bay Boeing. Đây là phương pháp nghiên cứu rất mới vào thời kì đó. 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 buồng lái. William Fetter đã đặt tên cho phương pháp của mình là "đồ họa máy tính."

== Lịch sử ==
Lịch sử của đồ họa máy tính vào thập niên 1960 còn được đánh dấu bởi dự án SketchPad được phát triển tại Học viện Công nghệ Massachusetts (MIT) bởi Ivan Sutherland. Các thành tựu thu được đã được báo cáo tại hội nghị Fall Joint Computer và đây cũng chính là sự kiện lần đầu tiên người ta có thể tạo mới, hiển thị và thay đổi được 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 này được dùng để thiết kế hệ thống mạch điện và bao gồm những thành phần sau:

1. CRT màn hình
2. Bút sáng và một bàn phím bao gồm các phím chức năng
3. Máy tính chứa chương trình xử lý các thông tin

Với hệ thống này, người sử dụng có thể vẽ trực tiếp các sơ đồ mạch điện lên màn hình thông qua bút sáng, chương trình sẽ phân tích và tính toán các thông số cần thiết của mạch điện do người dùng vẽ nên.

Kỹ thuật đồ họa được liên tục hoàn thiện vào thập niên 1970 với sự xuất hiện của các chuẩn đồ họa làm tăng cườ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 vượt bậc của công nghệ vi điện tử và phần cứng máy tính vào thập niên 1980 làm xuất hiện hàng loạt các vỉ mạch hỗ trợ cho việc truy xuất đồ họa đi cùng với sự giảm giá đáng kể của máy tính cá nhân làm đồ họa ngày càng đi sâu vào cuộc sống thực tế.

== Kỹ Thuật Trong Đồ Họa Máy Tính ==
Có rất nhiều kỹ thuật hiển thị hình ảnh được áp dụng trong ngành đồ họa máy tính, mỗi kỹ thuật lại có tuổi đời và những ưu, nhược điểm khác nhau. Dưới đây là 3 kỹ thuật hiển thị hình ảnh của đồ họa máy tính phổ biến nhất:

=== Đồ họa raster ===
Khái niệm thiết kế đồ họa raster (đồ họa hoặc hình ảnh Bitmap) là một trong những kỹ thuật hiển thị hình ảnh lâu đời và phố biến nhất với nền tảng kỹ thuật lấy từ công nghệ màn hình tivi đã tồn tại rất lâu trước khi máy tính điện tử ra đời. Với kỹ thuật này, tất cả các hình ảnh đều được làm nên từ các ô vuông có màu nhỏ li ti được 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ể chứa hàng nghìn đến hàng triệu pixel, giống như một bức tường được xây lên từ nhiều viên gạch vậy. Ưu điểm lớn nhất của kỹ thuật raster là các hình ảnh raster có thể hiển thị các chi tiết rõ ràng, đẹp với màu sắc đa dạng, hài hòa. Tuy nhiên, hình ảnh raster có thể sẽ bị “vỡ” hoặc mờ nếu phóng to hoặc bị nén quá nhiều. Dung lượng các file ảnh raster cũng khá lớn nếu có độ phân giải cao.

=== Đồ họa vector ===
Đồ họa vector là kỹ thuật tạo dựng hình ảnh bằng các đường kẻ quy định bởi các công thức toán học lần đầu tiên được sử dụng cho màn hình máy tính trong những năm 60 và 70 của thế kỉ 20. Tuy không phổ biến bằng kỹ thuật đồ họa raster và đã từng có một thời gian gần như bị “xóa sổ” bởi raster, đồ họa vector đang được ưa chuộng trở lại.

Nhờ vào những ưu điểm như các hình ảnh vector đơn giản, dễ dàng phóng to mà không bị giảm chất lượng, có dung lượng nhỏ hơn so với raster, dễ chỉnh sửa, rất thích hợp với việc thiết kế các loại đồ họa ít màu sắc, đơn giản như logo, icon hay biểu tượng.

=== Đồ họa 3D ===
Đồ họa 3D là kỹ thuật đồ họa đang được tập trung phát triển nhất trong thời điểm hiện tại, với sự quan tâm và tiềm năng của các ứng dụng như không gian ảo hay hình chiếu ba chiều. Nhà thiết kế đồ họa phải thực hiện rất nhiều bước khác nhau và áp dụng nhiều kỹ thuật tạo dựng hình ảnh phức tạp để có được một đôí tượng hình ảnh 3D đúng nghĩa.

Trước hết, khung cơ bản (wire-frame) của vật thể phải được dựng trong một phần mềm đồ họa máy tính, sau đó các phần của vật thể sẽ được thêm vào và nối với nhau (rigged) để tạo sự liên kết chân thực, đặc biệt là với các vật thể có khả năng chuyển động. Sau đó vật thể phải được render.

Đây là bước mất thời gian và phức tạp nhất vì một vật thể 3D có nhiều bề mặt khác nhau với các chất liệu khác nhau, độ trong suốt hay mờ đục, màu sắc, mức độ bắt sáng hay phản sáng khác nhau. Để tạo được một vật thể 3D thật nhất có thể, nhiều kỹ thuật toán học được áp dụng để tính toán và mô phỏng cách ánh sáng chiếu và phản chiếu vào các loại mặt phẳng khác nhau như ray tracing hay radiosity...

== Các hệ màu thông dụng ==
===Hệ màu RGB===
Hệ màu RGB mô tả màu sắc bằng ba thành phần Red, Green, Blue trong một mô hình gọi là "không gian màu". Không gian này được minh họa bằng một khối lập phương với các trục chính R, G, B.

Mỗi màu trong không gian RGB đều được biểu diễn như là một vector thông qua ba vector cơ sở là Red, Green, Blue. Do đó, ứng với các tổ hợp khác nhau của ba màu này sẽ cho ta một màu mới.

Trong hình lập phương mỗi màu gốc (Red, Green, Blue) được đặt vào góc đối diện với các màu bù nó (Hai màu bù nhau là hai màu mà khi kết hợp tạo thành màu trắng hay xám (grey). Như vậy 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 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ường các trục R, G, B được chuẩn hóa. Khi kết hợp hai màu lại với nhau thì màu sinh ra có vector bằng tổng các vector thành phần.

- Thuận lợi

- Không gian RGB là chuẩn công nghiệp cho các thao tác đồ họa máy tính. Các thao tác màu sắc có thể được tính toán trên các không gian màu khác nhưng cuối cùng cần phải chuyển về không gian RGB để có thể hiển thị trên màn hình (do thiết kế của phần cứng dựa trên mô hình RGB).

- Có thể chuyển đổi qua lại giữa không gian RGB với các không gian màu khác như CIE, CMY, HSL, HSV...

- Các thao tác tính toán trên không gian RGB thường đơn giản hơn.

- Bất lợi

- Các giá trị R,G,B của một màu là khác nhau đối với các màn hình khác nhau: Nghĩa là các giá trị R,G,B của một màu trên màn hình màu này sẽ không sinh ra đúng màu đó trên một màn hình khác.

- Sự mô tả các màu trong thế giới thực đối với không gian RGB còn nhiều hạn chế bởi vì không gian RGB không hoàn toàn phù hợp với sự cảm nhận màu sắc của con người. Hai điểm phân biệt trong không gian RGB, với mắt người có thể hoặc không thể là thể hiện của hai màu khác nhau.

===Hệ màu CMYK (hệ màu trừ) ===
Hệ màu CMYK tái tạo màu bằng mực, dùng trong in ấn, in offset, in phun màu. Gồm 3 màu mực cơ bản: 
- Cyan (C)
- Magenta (M)
- Yellow (y)
Ba màu này tổng hợp lại ra màu đen (Black). Nhưng màu đen này in ra không đen hoàn toàn nên thường người ta bổ sung thêm hộp mực màu đen trong máy in. Đây là mực màu, không phải là mực in trắng đen. 
===Hệ màu HSB (hệ tổng hợp) ===
Hệ HSB gồm 3 thành phần cơ bản của màu sắc:
- Hue (H): sắc màu (0-360)
- Saturation (S): độ no màu (0-100%)
- Brightness (B): độ sáng tối (0-100%)
=== Hệ màu Lab (hệ tổng hợp) ===
Hệ màu Lab tái tạo màu trong công nghệ thăng hoa màu của ảnh kỹ thuật số. Công nghệ này thường không có mực in mà giấy đóng vai trò quang phổ tạo sắc lên có ngưỡng rất cao và dải màu phong phú.

Hệ Lab gồm 3 thành phần:
- 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)
== Giải thuật xây dựng các thực thể cơ sở ==
=== Giải thuật DDA (Digital Differential Analyzer) ===
Xét đoạn thẳng có hệ số góc 0<m<1 và Δx>0. Giả sử ta đã xác định được điểm thứ i có tọa độ ("x", "y") cần được bật sáng.

== Các ứng dụng của đồ họa máy tính ==
Đồ họa máy tính có rất nhiều ứng dụng trong máy tính vì ước tính đến 80% thông tin xử lý là hình ảnh. Một số ứng dụng tiêu biểu của đồ họa máy tính như là:

- Tạo mô hình, hoạt cảnh (game, giải trí...)
- Hỗ trợ thiết kế đồ họa
- Mô phỏng hình ảnh, chẩn đoán hình ảnh (trong y tế)
- Huấn luyện đào tạo ảo (quân sự, 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
- Tạp chí đồ họa máy tính Việt Nam CGEZINE (The Computer Graphics E-magazine)
- Web thiết kế đồ họa (tiếng Anh)
- Blog 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)