TỔNG QUAN HỌC THUẬT VỀ GIÁO TRÌNH KỸ THUẬT ĐỒ HỌA MÁY TÍNH (ĐẠI HỌC CÔNG NGHIỆP QUẢNG NINH)


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

Giáo trình Kỹ thuật Đồ họa Máy tính dùng cho bậc Đại học do Trường Đại học Công nghiệp Quảng Ninh (Bộ Công Thương) biên soạn và ban hành lưu hành nội bộ năm 2013. Trong chương trình đào tạo bậc đại học, học phần Kỹ thuật đồ họa được bố trí giảng dạy với thời lượng chuẩn 60 tiết, bao gồm 45 tiết lý thuyết và 15 tiết thực tập tại phòng máy. Môn học giữ vị trí chuyên ngành nền tảng, thiết lập cầu nối giữa lý thuyết toán học không gian và kỹ thuật lập trình hệ thống hiển thị.

Về mục tiêu học tập (learning outcomes), giáo trình trang bị cho người học:

  • Khả năng hiểu và phân biệt bản chất của hệ đồ họa máy tính, bao gồm mô hình dữ liệu dựa trên mẫu số hóa (raster) và đặc trưng hình học (vector).
  • Năng lực thiết kế, chứng minh và cài đặt trực tiếp các giải thuật sinh đường cơ bản (đoạn thẳng, đường tròn, ellipse, đường conic, đa giác).
  • Năng lực làm chủ các kỹ thuật tô màu vùng đóng (tô đơn giản, tô dòng quét scan-line, tô loang theo đường biên).
  • Năng lực tính toán và lập trình các phép biến đổi hình học Affine hai chiều và ba chiều, kỹ thuật tạo cửa sổ (windowing) và cắt xén hình ảnh (clipping).
  • Năng lực tiếp cận mô hình quan sát không gian ba chiều (phép chiếu song song, phép chiếu phối cảnh) và các phương pháp khử mặt khuất, đường khuất.

Cấu trúc giáo trình gồm 7 chương được xây dựng theo hai trục nội dung chính: (1) Nhóm thuật toán đồ họa hai chiều cơ sở và tô màu (Chương 1 và Chương 2); (2) Nhóm đồ họa hai chiều nâng cao và đồ họa ba chiều (Chương 3 đến Chương 7). Cách tiếp cận của tài liệu đi từ nền tảng toán học giải tích đến thuật toán rời rạc hóa số nguyên và mã nguồn cài đặt minh họa bằng ngôn ngữ lập trình cấu trúc.

Tài liệu được xây dựng dựa trên nguồn tài liệu tham khảo chuẩn mực quốc tế, tiêu biểu là công trình Computer Graphics của Donald Hearn và M. Pauline Baker (Prentice-Hall, 1986), kết hợp các giáo trình chuyên ngành trong nước.


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

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

Giáo trình phân chia toàn bộ khối lượng kiến thức thành 7 chương tuần tự:

[Chương 1: Thuật toán vẽ đường cơ bản]
[Chương 2: Các thuật toán tô màu]
[Chương 5: Đồ họa 3D & Biến đổi Affine 3D]
[Chương 6: Quan sát ảnh 3D (Viewing Pipeline)]
[Chương 7: Khử các mặt khuất và đường khuất]
  • Chương 1: Giới thiệu thuật toán vẽ và tô các đường cơ bản (Trang 6–30): Trình bày 3 hệ tọa độ trong hệ mềm đồ họa (thế giới thực, thiết bị, thiết bị chuẩn hóa $[0,1]$). Trình bày thuật toán DDA (Digital Differential Analyzer) và thuật toán Bresenham cho đoạn thẳng; thuật toán đối xứng, thuật toán điểm giữa (MidPoint) và Bresenham cho đường tròn; thuật toán Bresenham cho Ellipse; thuật toán vẽ đường Conic tổng quát ($Ax^2 + Bxy + Cy^2 + Dx + Ey + F = 0$); định nghĩa đa giác và hai thuật toán kiểm tra tính lồi/lõm của đa giác.
  • Chương 2: Các thuật toán tô màu (Trang 31–46): Giới thiệu các mô hình không gian màu RGB, CMY, HSV. Trình bày chi tiết thuật toán tô đơn giản (kiểm tra điểm trong đa giác qua hàm PointInpoly, phân biệt đỉnh cực trị và đỉnh đơn điệu), thuật toán tô màu theo dòng quét (Scan-Line) sử dụng Bảng danh sách cạnh (Edge Table - ET) và Bảng cạnh kích hoạt (Active Edge Table - AET), cùng phương pháp tô theo đường biên (Boundary-fill 4 liên thông và 8 liên thông).
  • Chương 3: Phép biến đổi trong đồ họa hai chiều (Trang 47–58): Phân tích phép biến đổi Affine 2D, các phép biến đổi cơ sở gồm tịnh tiến (vector độ dời $tr_x, tr_y$), biến đổi tỉ lệ (đồng dạng, không đồng dạng, phép căng), phép quay quanh gốc tọa độ góc $\theta$, phép đối xứng, phép biến dạng, phép biến đổi Affine ngược, hệ tọa độ thuần nhất và kỹ thuật kết hợp ma trận biến đổi.
  • Chương 4: Windowing và Clipping (Trang 58–86): Định nghĩa không gian cửa sổ (Window) và vùng quan sát (Viewport), các giải thuật cắt xén hình ảnh (clipping) đối với điểm, đoạn thẳng, đa giác và phép biến đổi ánh xạ từ cửa sổ sang vùng quan sát.
  • Chương 5: Đồ họa ba chiều (Trang 87–97): Trình bày các phương pháp biểu diễn đối tượng trong không gian 3 chiều, quy ước hệ tọa độ bàn tay phải và bàn tay trái, cùng các ma trận biến đổi Affine cơ sở trong không gian 3 chiều.
  • Chương 6: Quan sát ảnh ba chiều (Trang 98–134): Khảo sát phép chiếu song song và phép chiếu phối cảnh; xác định hệ tọa độ quan sát, mặt phẳng quan sát, không gian quan sát; quy trình xây dựng đường ống quan sát (Viewing Pipeline) và phương pháp cài đặt phần cứng/lập trình hiển thị 3D.
  • Chương 7: Khử các mặt khuất và đường khuất (Trang 135–157): Phân loại và giải thích các thuật toán xác định bề mặt hiển thị: Khử mặt nằm sau (Back-Face Removal), Phương pháp vùng đệm độ sâu (Depth-Buffer / Z-Buffer), Phương pháp dòng quét (Scan-Line), Phương pháp sắp xếp độ sâu (Depth-Sorting), Phương pháp phân chia vùng (Area-Subdivision), Phương pháp cây bát phân (Octree) và kỹ thuật loại bỏ đường khuất.

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

Nội dung giáo trình củng cố ba khối lý thuyết nền tảng:

  1. Lý thuyết hệ tọa độ và không gian hiển thị: Hệ thống hóa sự chuyển dịch dữ liệu qua 3 miền: Miền điều khiển, Miền thực (tính toán dấu phẩy động trên số thực $\mathbb{R}$) và Miền hiển thị (chuyển đổi thành số nguyên 16-bit $\mathbb{N}$). Xác lập quy chuẩn ánh xạ từ tọa độ thực Descartes qua tọa độ chuẩn hóa $[0, 1] \times [0, 1]$ tới tọa độ thiết bị rời rạc (ví dụ độ phân giải $640 \times 480$).
  2. Nguyên lý tối ưu hóa rời rạc và giải tích sai phân: Chuyển đổi các phương trình hình học vi phân liên tục thành các phép toán số học nguyên. Khử bỏ phép nhân và phép chia số thực bằng kỹ thuật sai phân lũy tiến (trong DDA) và biến quyết định nguyên $P_i$ (trong Bresenham và MidPoint với công thức truy hồi $P_{i+1} - P_i$).
  3. Lý thuyết không gian màu và quang học kỹ thuật số: Xây dựng mô hình hình học lập phương của không gian màu cộng RGB, không gian bù trừ CMY và mô hình biến đổi hình nón/trụ HSV (Hue $0^\circ - 360^\circ$, Saturation $0 - 1$, Value $0 - 1$).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Lập trình cài đặt các thủ tục đồ họa mức thấp bằng ngôn ngữ Pascal/mã giả; thao tác trực tiếp trên bộ nhớ đệm điểm ảnh thông qua hàm putpixelgetpixel; xây dựng các cấu trúc dữ liệu bản ghi record và mảng tĩnh/động để quản lý đỉnh và cạnh đa giác.
  • Kỹ năng phân tích (Analytical skills): Phân tích hình thái hàm số dựa trên hệ số góc đường thẳng ($0 < m \le 1$, $m > 1$, $m < 0$); đánh giá tính liên tục và tính đạo hàm $f'(x)$ để phân chia vùng vẽ cho đường cong conic; kiểm tra tính lồi/lõm của đa giác thông qua tích vô hướng vector $T(\vec{a}, \vec{b}) = a_x b_y - a_y b_x$.
  • Năng lực thực hành (Practical competencies): Quản lý bộ nhớ ngăn xếp (stack) chống tràn trong các thuật toán đệ quy tô loang; thiết kế cấu trúc dữ liệu bảng cạnh ET/AET trong xử lý đồ họa dòng quét; tính toán các ma trận biến đổi Affine 2D/3D phục vụ mô phỏng chuyển động.

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

Giáo trình áp dụng phương pháp sư phạm tiếp cận theo quy trình 4 bước chặt chẽ:

  1. Thiết lập mô hình toán học: Xuất phát từ phương trình hình học giải tích tổng quát ($y = mx + b$, $x^2 + y^2 = R^2$, ma trận Affine).
  2. Rời rạc hóa và tối ưu thuật toán: Khảo sát sai số pixel, thiết lập hàm quyết định $P_i$ và công thức truy hồi $P_{i+1} - P_i$ trên tập số nguyên.
  3. Mô hình hóa trực quan bằng lưu đồ: Chuẩn hóa thuật toán bằng sơ đồ khối chi tiết (lưu đồ DDA, Bresenham, MidPoint, Scan-line).
  4. Hiện thực hóa mã nguồn: Cung cấp mã cài đặt hoàn chỉnh (minh họa bằng Pascal) có chú thích tham số rõ ràng.

Hệ thống bài tập thực hành được thiết kế với độ khó tăng dần sau mỗi chương, gắn liền với 15 tiết thực tập phòng máy:

  • Chương 1 (19 bài tập): Yêu cầu viết chương trình mô phỏng bầu trời 10.000 điểm sao đổi màu ngẫu nhiên; vẽ chuỗi ký tự tô bóng (settextstyle); vẽ đường thẳng DDA và Bresenham bao quát mọi trường hợp hệ số góc; vẽ đường tròn đồng tâm mở rộng và co lại; quay đoạn thẳng quanh tâm; vẽ ellipse lồng đường tròn nội tiếp; kiểm tra quan hệ vuông góc, giao điểm đoạn thẳng và tính lồi/lõm của đa giác.
  • Chương 2 (8 bài tập): Viết chương trình kiểm tra điểm trong đa giác; tô đa giác và đường tròn bằng giải thuật tô đơn giản; tô đa giác lồi/lõm bằng thuật toán tô biên; tô bằng Scan-line; giải bài toán tô phần giao và phần bù của 2 đường tròn cắt nhau bằng 3 màu riêng biệt.

Về phương pháp tự học, tài liệu định hướng sinh viên tự phát triển các trường hợp suy rộng (như thuật toán DDA/Bresenham khi $m < 0$, $|m| > 1$), tự khử đệ quy cho thuật toán Boundary-fill bằng kỹ thuật tô theo dòng, và đối chiếu song song với các chương tương ứng trong tài liệu của Donald Hearn & M. Pauline Baker (1986).


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

  • Tính quy chuẩn học thuật: Nội dung kế thừa cấu trúc chuẩn mực từ tài liệu kinh điển quốc tế Computer Graphics của Donald Hearn và M. Pauline Baker (Prentice-Hall, 1986), kết hợp tư liệu giảng dạy của các tác giả uy tín trong nước như nhóm tác giả Vũ Mạnh Tường, Dương Anh Đức, Trần Đan Thư, Lý Quốc Ngọc (Giáo trình Nhập môn đồ họa & xử lý ảnh), Lê Tấn Hùng và Huỳnh Quyết Thắng (Kỹ thuật đồ họa, NXB KH&KT Hà Nội, 2000).
  • Phân tích so sánh giải thuật chuyên sâu: Giáo trình làm rõ sự khác biệt bản chất và hiệu năng giữa các giải pháp kỹ thuật:
    • Vẽ đường thẳng: Phân tích nguyên nhân thuật toán Bresenham đạt tốc độ vượt trội so với DDA nhờ loại bỏ hoàn toàn số thực dấu phẩy động và thay thế phép nhân bằng phép cộng/dịch bit trên số nguyên.
    • Tô màu vùng kín: So sánh hạn chế tốc độ của phương pháp tô đơn giản (do gọi hàm PointInpoly nhiều lần) với giải pháp tối ưu dòng quét Scan-Line; phân tích hiện tượng tràn bộ nhớ (stack overflow) trong giải thuật Boundary-fill đệ quy và đề xuất giải pháp tối ưu bằng cách chọn điểm xuất phát đặc biệt hoặc tô theo dòng.
  • Tính bao quát từ 2D đến 3D: Cung cấp đầy đủ nền tảng đồ họa 3D hiện đại gồm 6 phương pháp khử mặt khuất kinh điển (Back-Face Removal, Depth-Buffer, Scan-Line, Depth-Sorting, Area-Subdivision, Octree) và kiến trúc đường ống quan sát (Viewing Pipeline).
  • Phân định rõ kiến trúc phần cứng: Giáo trình làm rõ ranh giới giữa việc xử lý số học trong miền thực của vi xử lý và giới hạn hiển thị số nguyên của bộ nhớ đệm khung hình (framebuffer) trên thiết bị xuất.

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

Theo quy định tại Phần Tổng quan của giáo trình (Trang 4), đối tượng đào tạo và điều kiện tiên quyết được xác định cụ thể như sau:

Đối tượng sử dụng Điều kiện kiến thức tiên quyết Phạm vi ứng dụng
Sinh viên năm thứ tư:
- Chuyên ngành Công nghệ thông tin
- Chuyên ngành Điện tử (Viễn thông, Tự động hóa)
- Chuyên ngành Sư phạm (Toán - Tin, Lý - Tin)
- Hình học không gian và Hình học giải tích
- Kiến thức lập trình căn bản, lập trình đồ họa
- Cấu trúc dữ liệu và giải thuật, lập trình đệ quy
- Ma trận, định thức và đại số tuyến tính
Học tập chính khóa (45 tiết lý thuyết, 15 tiết thực hành); làm bài tập lớn và đồ án môn học.
Giảng viên đại học Nắm vững lý thuyết đồ họa máy tính và phương pháp lập trình đồ họa cấp thấp. Sử dụng làm giáo trình giảng dạy tiêu chuẩn, khung phân phối chương trình và ngân hàng đề thi.
Kỹ sư và người tự học Kiến thức nền về toán giải tích và một ngôn ngữ lập trình cấu trúc. Tài liệu tham khảo tra cứu thuật toán đồ họa raster, biến đổi Affine và hiển thị 3D.

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

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

Giáo trình được thiết kế chuẩn hóa cho sinh viên năm thứ tư thuộc các ngành Công nghệ thông tin, Kỹ thuật Điện tử (Viễn thông, Tự động hóa) và Sư phạm khối tự nhiên (Toán - Tin, Lý - Tin).

2. Cần chuẩn bị những kiến thức nền tảng nào trước khi học?

Người học cần hoàn thành các học phần tiên quyết: Hình học không gian và Hình học giải tích (phương trình đường thẳng, đường tròn, conic, vector); Lập trình căn bản; Cấu trúc dữ liệu và giải thuật (kỹ thuật đệ quy, mảng, bản ghi); Đại số tuyến tính (phép toán ma trận và định thức).

3. Điểm khác biệt cốt lõi của giáo trình này là gì?

Tài liệu tập trung vào bản chất toán học và thuật toán đồ họa mức thấp (low-level raster algorithms). Mọi thuật toán đều được dẫn dắt từ chứng minh sai số, thiết lập công thức truy hồi, biểu diễn qua lưu đồ khối và cung cấp mã nguồn minh họa chi tiết thay vì sử dụng các thư viện hàm đồ họa có sẵn.

4. Làm thế nào để tự học giáo trình đạt hiệu quả cao nhất?

Người học nên tuân thủ trình tự: (1) Đọc hiểu cơ sở toán học và công thức truy hồi $P_i$; (2) Tự vẽ lại lưu đồ giải thuật; (3) Tự gõ và chạy thử các đoạn mã mẫu; (4) Giải quyết toàn bộ danh mục bài tập lập trình cuối mỗi chương (như hệ thống 19 bài tập ở Chương 1 và 8 bài tập ở Chương 2).

5. Danh mục tài liệu tham khảo chính của giáo trình gồm những gì?

Tài liệu tham khảo chính gồm có:

  • Donald Hearn, M. Pauline Baker; Computer Graphics; Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 1986.
  • F.S. Hill Jr.; Computer Graphics; 1990.
  • Vũ Mạnh Tường, Dương Anh Đức, Trần Đan Thư, Lý Quốc Ngọc; Giáo trình Nhập môn đồ họa & xử lý ảnh.
  • ANAND (dịch: TS. Nguyễn Hữu Lộc); Đồ họa máy tính và Mô hình hóa hình học; NXB TP. Hồ Chí Minh, 2000.
  • Foley, Van Dam, Feiner, Hughes, Phillips; Computer Graphics: Principles and Practice.
  • Lê Tấn Hùng, Huỳnh Quyết Thắng; Kỹ thuật đồ họa; NXB Khoa học và Kỹ thuật, Hà Nội, 2000.

Kết luận

Giáo trình Kỹ thuật Đồ họa Máy tính của Trường Đại học Công nghiệp Quảng Ninh (2013) là tài liệu học thuật hoàn chỉnh, cung cấp hệ thống kiến thức từ các thuật toán vẽ/tô điểm ảnh 2D rời rạc đến các phép biến đổi Affine, phép chiếu quan sát và khử mặt khuất trong không gian 3D.

Lộ trình học tập của giáo trình dẫn dắt người học từ việc thiết lập các giải thuật nền tảng (DDA, Bresenham, MidPoint, Scan-Line ở Chương 1–2), chuyển tiếp qua thao tác xử lý hình học 2D (Chương 3–4), và hoàn thiện ở các kỹ thuật dựng hình 3D phức tạp (Chương 5–7).

Để mở rộng kiến thức chuyên sâu, người học được khuyến nghị kết hợp nghiên cứu các chương tương ứng trong chuyên khảo Computer Graphics của Donald Hearn & M. Pauline Baker cùng các giáo trình chuyên ngành của Đại học Bách Khoa Hà Nội và Đại học Khoa học Tự nhiên TP. Hồ Chí Minh.