1. Ray Tracing
Là một kỹ thuật mô phỏng ánh sáng trong đồ họa máy tính nhằm tạo ra hình ảnh cực kỳ chân thực. Phương pháp này dựa trên việc mô phỏng hành trình của các tia sáng từ mắt người (camera) đi vào không gian 3D, và tính toán cách chúng tương tác với các bề mặt, vật thể và nguồn sáng.
1.1. Nguyên lý hoạt động đơn giản của Ray Tracing
Tia sáng được bắn ra từ camera (hoặc mắt người), đi qua từng điểm ảnh (pixel) trên màn hình vào trong không gian ảo.
Tia sáng gặp vật thể đầu tiên, hệ thống sẽ tính toán:
- Màu sắc của vật liệu
- Hướng ánh sáng chiếu vào
- Có bị che bóng không
- Có phản chiếu hay khúc xạ không (ví dụ gương hoặc kính)
- Các tia phản xạ và khúc xạ sẽ được tạo ra và tiếp tục truy vết để xem chúng chạm vào đâu, tiếp tục góp phần tính màu sắc cuối cùng.
- Kết quả cuối cùng là một hình ảnh cực kỳ chân thực về mặt ánh sáng, bóng đổ, phản chiếu, và khúc xạ.
1.2. Ưu điểm của Ray Tracing:
Tạo ra hình ảnh rất chân thực
Hỗ trợ:
- Bóng đổ mềm
- Phản chiếu (gương, nước)
- Khúc xạ (kính, thủy tinh)
- Chiếu sáng toàn cục (Global Illumination)
2. Rasterization
Rasterization là một quá trình trong đồ họa máy tính dùng để chuyển đổi các đối tượng hình học (thường là tam giác trong 3D) thành các điểm ảnh (pixel) để hiển thị trên màn hình.
2.1. Các bước chính trong quá trình rasterization
- Biến đổi mô hình 3D về hệ tọa độ camera (view space).
- Chiếu các tam giác 3D lên mặt phẳng 2D (gọi là projection).
- Chuyển đổi toạ độ 2D đó sang toạ độ màn hình (screen coordinates).
- Tô màu các pixel nằm bên trong tam giác (fragment shading).
- Ghi vào bộ nhớ hình ảnh (framebuffer) để hiển thị ra màn hình.
3. Sampling
trong đồ họa máy tính là quá trình lấy mẫu dữ liệu từ một nguồn liên tục (như texture, tín hiệu ánh sáng, màu sắc) tại một vị trí rời rạc cụ thể, để sử dụng trong quá trình hiển thị hình ảnh.
3.1. Texture Sampling
- Phổ biến nhất hiện nay.
- Hầu hết mọi game, ứng dụng 3D đều dùng.
- Các phương pháp phổ biến: Bilinear filtering (chuẩn nhất, dùng mặc định nhiều nơi).
- Trilinear filtering (mượt hơn khi có mipmaps).
- Anisotropic filtering (rõ nét khi nhìn xiên).
- Ứng dụng: Render mô hình 3D có texture (nhân vật, môi trường…).
3.2. Shadow Mapping Sampling
- Game 3D hiện đại luôn sử dụng shadow maps → sampling là bắt buộc.
- Sampling giúp kiểm tra xem 1 điểm có bị che sáng không (bị đổ bóng không).
- Dùng kỹ thuật như Percentage Closer Filtering (PCF) để làm bóng mềm.
- Ứng dụng: Đổ bóng động (bóng cây, nhân vật, vật thể…).
3.3. Multisampling (MSAA)
- Vẫn rất phổ biến trong game và engine (Unreal, Unity…).
- Dùng để chống răng cưa bằng cách sample nhiều điểm trong một pixel.
- Ưu điểm: hiệu quả cao, chất lượng tốt, chi phí tính toán vừa phải.
- Ứng dụng: Cảnh 3D, đặc biệt là các cạnh vật thể.
3.4. Temporal Sampling (cho TAA)
- Dùng trong các kỹ thuật khử răng cưa hiện đại như TAA (Temporal Anti-Aliasing).
- Lấy mẫu từ nhiều frame trước đó để mượt hóa hình ảnh.
- Ứng dụng: Game 3D hiện đại, đặc biệt trên PS5, Xbox Series X, PC AAA.
3.5. Importance Sampling (trong PBR / ray tracing)
- Dùng trong Path Tracing, Ray Tracing, hoặc lighting physically-based rendering.
- Sampling theo phân bố xác suất để tối ưu hóa ánh sáng/phản xạ.
- Ứng dụng: Render chất lượng cao, offline hoặc hybrid rendering.