Tổng quan về giáo trình

Kỹ thuật đồ họa (Computer Graphics) là tài liệu giảng dạy chính quy do ThS. Trịnh Thị Vân Anh biên soạn, phát hành dưới hình thức lưu hành nội bộ năm 2006 tại Học viện Công nghệ Bưu chính Viễn thông. Tài liệu được thiết kế chuyên biệt cho sinh viên hệ đào tạo đại học từ xa thuộc khối ngành Công nghệ Thông tin và Điện tử Viễn thông.

Về vị trí trong chương trình đào tạo, môn học cung cấp kiến thức nền tảng về cơ sở lý thuyết và công nghệ biểu diễn hình ảnh trên máy tính, đóng vai trò bản lề cho các chuyên ngành xử lý ảnh, thiết kế hỗ trợ máy tính (CAD/CAM), giao diện người máy (HCI) và truyền thông đa phương tiện.

Mục tiêu học tập của giáo trình hướng đến việc trang bị cho người học:

  • Khả năng hiểu rõ nguyên lý vận hành của các thiết bị phần cứng đồ họa (màn hình CRT, LCD, bộ đệm khung Frame Buffer, bảng tra LUT).
  • Nắm vững và cài đặt các giải thuật sinh thực thể hình học cơ sở (đoạn thẳng, đường tròn, ellipse, đa giác, ký tự).
  • Làm chủ kỹ thuật tô màu vùng kín, xén tỉa và các phép biến đổi hình học trong không gian hai chiều (2D) lẫn ba chiều (3D) bằng tọa độ đồng nhất.
  • Tiếp cận các mô hình màu sắc (RGB, CMYK, HSV), phép chiếu và phương pháp xây dựng đường cong, mặt cong phức tạp.

Giáo trình có cấu trúc gồm 7 chương được xây dựng theo phương pháp sư phạm từ trực quan đến trừu tượng, từ các thực thể 2D cơ bản đến mô hình 3D. Điểm đặc sắc của tài liệu là sự kết hợp chặt chẽ giữa chứng minh toán học giải tích, cấu trúc dữ liệu, lưu đồ thuật toán và mã nguồn thực thi cụ thể bằng ngôn ngữ C/C++ và Borland C.


Nội dung kiến thức cốt lõi

                    ┌────────────────────────────────────────────────────────┐
                    │    GIÁO TRÌNH KỸ THUẬT ĐỒ HỌA (ThS. Trịnh Thị Vân Anh)  │
                    └───────────────────────────┬────────────────────────────┘
                                                │
         ┌──────────────────────────────────────┼─────────────────────────────────────┐
         ▼                                      ▼                                     ▼
┌─────────────────────────┐           ┌─────────────────────────┐          ┌─────────────────────────┐
│ Chương 1: Tổng quan     │           │ Chương 2: Thực thể cơ sở│          │ Chương 3: Biến đổi hình │
│ & Phần cứng hiển thị    │           │ & Giải thuật Raster hóa │          │ học 2D / 3D & Đồng nhất │
├─────────────────────────┤           ├─────────────────────────┤          ├─────────────────────────┤
│• Lịch sử & Chuẩn đồ họa │           │• WCS sang DCS           │          │• Ma trận Affine 2D      │
│  (GKS, PHIGS, OpenGL)   │           │• DDA, Bresenham, Midpt  │          │• Tọa độ đồng nhất (3x3) │
│• Raster vs Vector       │           │• Đường tròn, Ellipse    │          │• Biến đổi 3D (4x4)      │
│• CRT, LCD, Frame Buffer │           │• FloodFill & Scanline   │          │• Quay quanh trục bất kỳ │
│• Video RAM & Bảng LUT   │           │• Quản lý bảng cạnh AET  │          │• Tổ hợp ma trận tích hợp│
└─────────────────────────┘           └─────────────────────────┘          └─────────────────────────┘

Các chương/chủ đề chính

  • Chương 1: Tổng quan về kỹ thuật đồ họa: Trình bày lịch sử phát triển đồ họa máy tính qua các mốc thời gian từ thập niên 1950 (thiết bị hiển thị tại Đức năm 1959, bút sáng SAGE năm 1960, thuật ngữ "Computer Graphics" của William Fetter tại hãng Boeing năm 1960, hệ thống Sketchpad của Ivan Sutherland năm 1963) đến các chuẩn công nghiệp (GKS, PHIGS, VRML, OpenGL 1993, DirectX 1997). Chương này phân biệt đồ họa điểm (Raster Graphics) và đồ họa vectơ (Vector Graphics); phân loại các lĩnh vực ứng dụng (CAD/CAM, Computer Imaging, Pattern Recognition, Image Synthesis, Presentation Graphics); mô tả chi tiết phần cứng tương tác, nguyên lý quét dòng/quét mành của màn hình CRT (tia hồi ngang Horizontal Retrace, tia hồi dọc Vertical Retrace, tốc độ làm tươi 60–80 Hz), công nghệ màn hình tinh thể lỏng (LCD), bộ đệm khung (Frame Buffer) và bảng tra màu (LookUp Table – LUT).
  • Chương 2: Các giải thuật sinh thực thể cơ sở: Thiết lập mối liên hệ giữa hệ tọa độ thế giới thực (WCS) và hệ tọa độ thiết bị (DCS). Trình bày các phương pháp biểu diễn toán học cho đoạn thẳng (tường minh, không tường minh, tham số) và phân tích ba giải thuật vẽ đoạn thẳng kinh điển: giải thuật thông thường, giải thuật vi phân số DDA (Digital Differential Analyzer), giải thuật Bresenham và giải thuật điểm giữa Midpoint. Trình bày giải thuật vẽ đường tròn và ellipse (Bresenham, Midpoint) dựa trên tính chất đối xứng 8 phần hoặc 4 phần cùng cách xử lý hiện tượng trùng điểm vẽ (Overstrike). Chương này cũng đề cập kỹ thuật sinh ký tự (Vector font và Bitmap qua cấu trúc fontcache), thuật toán vẽ đường bao đa giác, giải thuật tô màu đường biên (FloodFill đệ quy 4-connected, 8-connected) và giải thuật tô màu theo dòng quét (Scanline) sử dụng bảng cạnh ET (Edge Table) cùng bảng cạnh kích hoạt AET (Active Edge Table), công thức tính nhanh giao điểm $x_{k+1} = x_k + 1/m$, và kỹ thuật tô màu theo mẫu (Pattern Filling).
  • Chương 3: Các phép biến đổi đồ họa: Khảo sát phép biến đổi Affine trong không gian hai chiều thông qua ma trận biến đổi $2 \times 2$ cho các phép tịnh tiến, tỉ lệ (scaling), biến dạng (shearing) theo trục Ox/Oy, phép lấy đối xứng và phép quay quanh gốc tọa độ. Giới thiệu khái niệm tọa độ đồng nhất (Homogeneous Coordinates) dưới dạng ma trận $3 \times 3$ nhằm hợp nhất phép tịnh tiến vào phép nhân ma trận tổng hợp. Mở rộng toàn bộ lý thuyết biến đổi sang không gian 3D với ma trận đồng nhất $4 \times 4$, bao gồm: tịnh tiến 3D, tỉ lệ 3D, đối xứng qua trục/mặt phẳng/gốc tọa độ, quay quanh ba trục tọa độ Ox, Oy, Oz và quay quanh một trục bất kỳ song song với các trục tọa độ thông qua công thức tích hợp ma trận $[T_{\alpha //}] = [T_{tt-}][T_{rot}][T_{tt+}]$.
  • Các chủ đề tiếp theo trong chương trình: Các kỹ thuật xén tỉa hình học (Clipping), các mô hình không gian màu sắc (RGB, CMYK, HSV), các phương pháp chiếu hình học (chiếu song song, chiếu phối cảnh) và các thuật toán mô hình hóa đường cong, mặt cong (Bezier, B-Spline) cùng các bước kết xuất tô trát (Rendering).
   [Hệ tọa độ thế giới (WCS)] ───> [Rời rạc hóa (DDA/Bresenham/Midpoint)] ───> [Hệ tọa độ thiết bị (DCS)]
                                                     │
                                                     ▼
   [Bộ đệm khung Frame Buffer] ───> [Bảng tra màu LookUp Table (LUT)] ───> [Màn hình hiển thị (CRT/LCD)]

Kiến thức nền tảng được xây dựng

  • Đại số ma trận và Hình học giải tích: Biểu diễn điểm hình học dưới dạng ma trận hàng $[x\ y]$ hoặc ma trận đồng nhất $[x\ y\ 1]$ (2D) và $[x\ y\ z\ 1]$ (3D). Khảo sát tính chất không giao hoán của tích các ma trận biến đổi và quy tắc tổng hợp các phép biến đổi liên tiếp.
  • Nguyên lý số hóa và tối ưu hóa giải thuật: Chuyển đổi mô hình toán học liên tục sang lưới điểm rời rạc (Grid Pixel). Kỹ thuật khử phép chia và phép tính trên số thực trong các thuật toán vẽ đường (Bresenham, Midpoint) để chỉ sử dụng phép cộng và phép nhân số nguyên, tối ưu hóa tốc độ xử lý ở mức phần cứng.
  • Cơ chế quản lý bộ nhớ đồ họa: Nguyên lý lưu trữ dữ liệu điểm ảnh trong bộ đệm khung (Frame Buffer), công thức xác định dung lượng bộ nhớ Video RAM theo độ phân giải màn hình và số bit màu ($N \times M \times b\text{ bits}$), nguyên tắc ánh xạ song ánh giữa Frame Buffer và màn hình hiển thị.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical Skills): Cài đặt và thực thi các giải thuật đồ họa cấp thấp bằng ngôn ngữ C/C++ (sử dụng thư viện <graphics.h>), thiết lập cấu trúc dữ liệu cho bảng cạnh AET/ET, tính toán thông số Video RAM và giá trị bảng tra màu LUT.
  • Kỹ năng phân tích (Analytical Skills): Phân tích và so sánh độ phức tạp tính toán giữa các thuật toán (DDA so với Bresenham và Midpoint); nhận diện các trường hợp đặc biệt như hệ số góc $k$ thay đổi, các điểm cực trị khi cắt dòng quét, và hiện tượng Overstrike trên các đường cong đối xứng.
  • Năng lực thực hành ứng dụng (Practical Competencies): Xây dựng các module cơ bản cho ứng dụng CAD/CAM, hiển thị đồ thị thống kê, thiết kế giao diện đồ họa người dùng (GUI/WIMP) và tạo lập các hiệu ứng chuyển động 2D/3D.

Phương pháp giảng dạy và học tập

Giáo trình áp dụng phương pháp tiếp cận diễn dịch kết hợp thực nghiệm:

┌────────────────────────┐      ┌────────────────────────┐      ┌────────────────────────┐
│  Mô hình toán học      │ ───> │  Lưu đồ thuật toán     │ ───> │  Hiện thực hóa mã nguồn│
│  (Giải tích, Ma trận)  │      │  (Flowchart logic)     │      │  (C/C++, Borland C)    │
└────────────────────────┘      └────────────────────────┘      └────────────────────────┘
  1. Từ toán học đến thuật toán: Thiết lập phương trình hình học lý thuyết (phương trình tường minh, không tường minh, hàm tham số), phân tích sai số khoảng cách giữa điểm thực và điểm lưới để rút ra tham số quyết định (decision variable $P_i$ hoặc $d_i$).
  2. Từ thuật toán đến lưu đồ và mã nguồn: Chuyển hóa các bước suy luận toán học thành lưu đồ khối rõ ràng, sau đó cung cấp các đoạn chương trình C/C++ chuẩn mực (như hàm Bre_line, Mid_line, Bre_circle, Mid_ellipse, FloodFill).

Hệ thống bài tập và phương pháp đánh giá

Giáo trình phân chia hệ thống đánh giá thành ba nhóm bài tập cụ thể ở cuối mỗi chương:

  • Bài tập tính toán định lượng: Yêu cầu sinh viên xác định dung lượng bộ nhớ Video RAM theo độ phân giải (ví dụ: $640 \times 480 \times 16\text{ màu}$, $1024 \times 1024 \times 24\text{ bit}$), tính số hạng mục màu trong bảng LUT theo số bit chỉ định, xác định tọa độ các pixel được chọn khi chạy tay thuật toán Bresenham từ $(x_1, y_1)$ đến $(x_2, y_2)$, hoặc tính ma trận tổng hợp của chuỗi phép quay và tịnh tiến.
  • Bài tập trắc nghiệm lý thuyết: Kiểm tra sự hiểu biết về các trường hợp hệ số góc $k$, công thức phương trình tham số, các điểm xảy ra hiện tượng Overstrike tại $(\alpha r, \alpha r)$ với $\alpha = 1/\sqrt{2}$, phân biệt các quy tắc lân cận 4-connected và 8-connected, cũng như tác động của tỷ số phương (Aspect Ratio) làm biến dạng hình học hiển thị.
  • Bài tập lập trình thực hành: Đòi hỏi người học tự viết các hàm đồ họa hoàn chỉnh xét toàn bộ các trường hợp của $k$, cài đặt thuật toán tô màu theo dòng quét đa giác bất kỳ (Scanline), thuật toán tìm giao điểm hai đoạn thẳng, và xây dựng các hàm vẽ mô hình phức hợp (đa giác, hình hộp, mô hình đối tượng).

Hướng dẫn tự học cho sinh viên đào tạo từ xa

Do được biên soạn cho hệ đào tạo từ xa, tài liệu có tính tự chuẩn hóa cao:

  • Mỗi chương đều có mục Tóm tắt chương cô đọng toàn bộ các định nghĩa, công thức và nguyên lý cốt lõi.
  • Sinh viên cần thực hiện phương pháp học theo ba giai đoạn: đọc hiểu cơ sở toán học $\rightarrow$ vẽ lại lưu đồ khối thuật toán $\rightarrow$ biên dịch và kiểm thử mã nguồn trên môi trường thực hành.

Điểm nổi bật và cập nhật

  • Tính chuẩn hóa theo các tiêu chuẩn quốc tế: Giáo trình hệ thống hóa các chuẩn đồ họa công nghiệp quan trọng, bao gồm:
    • GKS (Graphics Kernel System): Chuẩn ISO cho các công cụ đồ họa 2D và 3D.
    • CGI & CGM: Chuẩn giao diện thiết bị ngoại vi và chuẩn định dạng lưu trữ hình ảnh.
    • PHIGS: Chuẩn mô hình hóa đồ họa tương tác thứ bậc theo thời gian thực và hướng đối tượng.
    • OpenGL & DirectX: Các thư viện API đồ họa tiêu chuẩn công nghiệp được giới thiệu cùng tiến trình phát triển của ngành công nghiệp mô phỏng và điện ảnh.
  • Cân bằng giữa kiến trúc phần cứng và kỹ thuật phần mềm: Tài liệu không cô lập giải thuật khỏi phần cứng mà giải thích rõ cơ chế vật lý: từ súng phóng chùm tia điện tử qua cuộn lái tia đến lớp phosphor trên màn CRT, hiện tượng phân cực ánh sáng trên màn LCD, cho đến cấu trúc thanh ghi, bộ đệm khung (Frame Buffer) và bộ điều khiển video (Video Controller).
  • Tính thực tiễn của giải thuật: Các thuật toán được chọn lọc (DDA, Bresenham, Midpoint, Scanline với AET) đều là các giải thuật tối ưu nền tảng, giải quyết triệt để bài toán hiệu năng và tốc độ xử lý vốn là yêu cầu sống còn của các hệ thống đồ họa máy tính.

Đối tượng sử dụng giáo trình

Đối tượng Mục đích & Phương thức sử dụng Kiến thức tiên quyết cần có
Sinh viên Đại học ngành CNTT, Kỹ thuật Máy tính Sử dụng làm tài liệu học tập chính thức cho học phần Kỹ thuật đồ họa / Đồ họa máy tính (đặc biệt hệ đào tạo từ xa và vừa làm vừa học). Đại số tuyến tính (ma trận, vectơ), Hình học giải tích, Lập trình C/C++ cơ bản.
Giảng viên các trường Đại học, Cao đẳng Dùng làm giáo trình khung, tham khảo cấu trúc bài giảng, đề xuất ngân hàng câu hỏi bài tập tính toán, trắc nghiệm và đề án lập trình. Chuyên môn sâu về Khoa học máy tính và Đồ họa tương tác.
Kỹ sư phát triển phần mềm, Game & CAD/CAM Dùng làm tài liệu tham khảo kỹ thuật để hiểu sâu nguyên lý raster hóa cấp thấp, biến đổi hệ tọa độ và tối ưu hóa bộ nhớ hiển thị. Lập trình hướng đối tượng, cấu trúc dữ liệu và giải thuật.

Câu hỏi thường gặp

1. Giáo trình này phù hợp nhất với đối tượng người học nào?

Giáo trình được biên soạn chuyên biệt cho sinh viên hệ đào tạo đại học từ xa ngành Công nghệ Thông tin tại Học viện Công nghệ Bưu chính Viễn thông, đồng thời phù hợp với sinh viên chính quy các khối ngành kỹ thuật và lập trình viên cần nắm vững bản chất toán học - giải thuật của đồ họa máy tính.

2. Người học cần chuẩn bị kiến thức nền tảng gì trước khi tiếp cận tài liệu?

Người học cần có kiến thức toán học cơ bản về Giải tích (đạo hàm riêng, hệ số góc đường thẳng), Đại số tuyến tính (phép nhân ma trận, hệ tọa độ Descartes), và kỹ năng lập trình cấu trúc với ngôn ngữ C/C++ (con trỏ, cấu trúc struct, mảng và thao tác bộ nhớ).

3. Điểm khác biệt cơ bản giữa giáo trình này và các tài liệu hướng dẫn sử dụng thư viện đồ họa hiện đại là gì?

Thay vì chỉ hướng dẫn gọi các hàm API bậc cao (như trong các bộ công cụ engine hiện đại), giáo trình tập trung phân tích sâu vào bản chất tính toán cấp thấp: cách tính toán từng pixel từ phương trình vi phân, cách khử số thực trong thuật toán Bresenham/Midpoint, cách quản lý bảng cạnh dòng quét (AET) và cách thiết lập ma trận biến đổi Affine.

4. Làm thế nào để tự học và thực hành hiệu quả các thuật toán trong giáo trình?

Người học nên chạy tay các thuật toán trên giấy với các tọa độ mẫu (như bài toán tính điểm từ $(1,1)$ đến $(8,5)$), theo dõi biến đổi của biến quyết định ($P_i$), sau đó cài đặt mã nguồn trên môi trường C/C++ với thư viện <graphics.h> hoặc Borland C để trực quan hóa kết quả trên màn hình.

5. Tài liệu có cung cấp hướng dẫn lập trình cụ thể không?

Có. Giáo trình có phần phụ lục và mã nguồn mẫu xuyên suốt các chương, hướng dẫn cách sử dụng các hàm đồ họa cơ sở như initgraph, putpixel, getpixel, closegraph, cùng cấu trúc dữ liệu chi tiết cho việc quản lý bảng font (fontcache) và bảng màu tra cứu (LUT).


Kết luận

Giáo trình Kỹ thuật đồ họa của ThS. Trịnh Thị Vân Anh (Học viện Công nghệ Bưu chính Viễn thông) là một tài liệu học thuật hoàn chỉnh, chuẩn mực về các nguyên lý cơ bản và giải thuật cốt lõi của ngành Đồ họa máy tính. Bằng cách tiếp cận chặt chẽ từ cấu trúc phần cứng, mô hình toán học giải tích đến mã nguồn cài đặt thực nghiệm trên ngôn ngữ C/C++, tài liệu cung cấp cho sinh viên nền tảng tư duy thuật toán vững chắc.

Lộ trình học tập đề xuất là nắm chắc lý thuyết phần cứng và raster hóa 2D ở Chương 1 và Chương 2, làm chủ các phép biến đổi Affine và không gian 3D ở Chương 3, trước khi tiến hành nghiên cứu các kỹ thuật nâng cao về xén tỉa, không gian màu và dựng hình đường cong, mặt cong trong các học phần chuyên sâu tiếp theo.