Đồ họa 3D là một lĩnh vực trong máy tính đồ họa tập trung vào việc tạo ra các hình ảnh có chiều sâu, cho phép hiển thị các đối tượng ba chiều trên màn hình hai chiều như màn hình máy tính,điện thoại.
Trong thời đại hiện đại, đồ họa 3D được ứng dụng rộng rãi trong các lĩnh vực như trò chơi điện tử, phim ảnh, kỹ thuật mô phỏng, thiết kế công nghiệp và nhiều ứng dụng khác. Dưới đây là các khái niệm cơ bản trong đồ họa 3D.
1. Mô hình 3D
Mô hình 3D là một biểu diễn kỹ thuật số của một đối tượng hoặc cảnh ba chiều được xây dựng bằng cách sử dụng các công cụ đồ họa máy tính. Mô hình này được tạo ra bởi các điểm (vertex) trong không gian 3D và kết nối các điểm này lại với nhau bằng các hình học cơ bản, thường là tam giác, để tạo thành các mặt (faces) của vật thể.
2. Đỉnh (Vertex), cạnh (Edge), mặt phẳng (Face)
Đỉnh trong không gian 3D được xác định bằng ba tọa độ (x, y, z). Cạnh là đoạn thẳng nối giữa hai đỉnh, xác định đường viền của mô hình. Tập hợp một số đỉnh và cạnh sẽ cho ta một mặt phẳng. Ngoài ra, mỗi mặt phẳng còn có dữ liệu của pháp tuyến (một vector vuông góc với mặt phẳng) của nó để xác định hướng quay của mặt phẳng, phục vụ cho quá trình xử lí ánh sáng khi render. Đây là các thông tin cơ bản nhằm xác định hình dạng của mô hình 3D.
3. Đa giác (Polygon) và lưới đa giác (Mesh)
Đa giác là một vùng được xác định bởi nhiều đỉnh và cạnh như hình vuông, hình tròn, hình thoi,… Tập hợp tất cả đa giác trong mô hình là 1 lưới đa giác.
Trong đồ họa 3D, đa giác thường được chia nhỏ thành các tam giác để xử lý dễ dàng hơn, ví dụ mỗi mặt của hình lập phương được tạo thành từ 2 tam giác cân, hay khối cầu được tạo thành từ hàng trăm tam giác .
Tam giác được chọn là đơn vị nhỏ nhất của một lưới đa giác bởi vì nó có các tính chất hình học và tính toán đặc biệt phù hợp cho việc hiển thị và xử lý các mô hình 3D:
- Tam giác luôn phẳng: Tam giác là đa giác duy nhất trong không gian 3D luôn phẳng, có nghĩa là bất kì 3 điểm không thẳng hàng nào cũng tạo thành 1 mặt phẳng chính xác
- Tính ổn định hình học: Nếu di chuyển 1 đỉnh của tam giác, toàn bộ hình dạng của tam giác sẽ thay đổi những vẫn duy trì được sự ổn định và không bị cong (các điểm không nằm trên cùng 1 mặt phẳng) giống như các đa giác khác.
- Tính toán ánh sáng: Khi tính toán ánh sáng, pháp tuyến bề mặt là yếu tố quan trọng. Với tam giác chỉ cần sử dụng 3 đỉnh để tính pháp tuyến của mặt phẳng, giúp tăng hiệu suất xử lý
- Chuyển đổi đơn gián: Tất cả đa giác đều có thể được chưa nhỏ thành các tam giác
4. Texture và Material
Texture là một hình ảnh được sử dụng để thêm chi tiết cho bề mặt mô hình, còn material là file chứa thông tin về cách các texture sẽ được áp dụng lên bề mặt. Ngoài ra, material còn quy định màu sắc, độ bóng, độ trong suốt của mô hình đó.
5. Chiếu sáng (Lighting)
Chiếu sáng là quá trình xác định cách ánh sáng tương tác với các đối tượng trong không gian 3D. Ánh sáng giúp tạo ra cảm giác chiều sâu và hiện thực cho hình ảnh. Quá trình tính toán được thực hiện trên từng mặt (face) của mô hình 3D, dựa vào thông tin của các nguồn sáng (vị trí, màu sắc, cường độ,…) và thông tin của mặt phẳng (vị trí, pháp tuyến, màu sắc,…).
Một số mô hình tính toán ánh sáng phổ biến:
- Phong Shading: Tính toán ánh sáng dựa trên các yếu tố như ánh sáng môi trường, ánh sáng khuếch tán, và ánh sáng phản xạ. Sử dụng pháp tuyến của mỗi pixel để tính toán hiệu ứng ánh sáng
- Blinn-Phong: Là phiên bản cải tiến của Phong shading, sử dụng công thức để tính toán độ phản xạ ánh sáng nhằm giảm bớt thời gian tính toán mà vẫn tạo ra kết quả tương tự
- Lambertian Shading: Mô phỏng bề mặt không phản xạ mà chỉ có ánh sáng khuếch tán từ nguồn sáng, sử dụng cho các bề mặt mờ hoặc không bóng.
6. Render
Quá trình render trong đồ họa 3D là quá trình chuyển đổi các thông tin về hình học, ánh sáng, vật liệu và môi trường từ một mô hình 3D thành hình ảnh 2D cuối cùng mà người dùng có thể thấy trên màn hình.
Tùy vào mục đích, các kỹ thuật render khác nhau sẽ được sử dụng để tối ưu hình ảnh, màu sắc và thời gian cần dùng cho quá trình render. Một số kỹ thuật render thường được sử dụng như:
- Forward Rendering: là một kỹ thuật render ánh sáng đơn giản, trong đó ánh sáng được tính toán trực tiếp cho từng đối tượng khi nó được render
- Deferred Rendering: kỹ thuật này render trong 2 bước: đầu tiên sẽ render tất cả các vật thể cần render và lưu các thông tin cần thiết vào bộ nhớ đệm, sau đó tính toán màu sắc và áp dụng cho từng pixel
- Ray Tracing: là một kỹ thuật render dựa trên việc theo dõi các tia sáng từ mắt người (camera) ngược lại vào trong cảnh 3D. Phương pháp này mô phỏng chính xác cách ánh sáng di chuyển và phản xạ, khúc xạ trong thế giới thực.