Qua bài viết trước, bạn đã được giải thích sơ lược về khử răng cưa là gì cùng với nguyên lý làm việc cơ bản của nó. Nhưng về mặt kỹ thuật, khử răng cưa sẽ phải làm cụ thể những gì để đem lại hình ảnh mịn màng hơn? Hãy cùng tìm hiểu 2 kỹ thuật khử răng cưa lâu đời nhất: SSAA (Super Sampling AntiAliasing – Khử răng cưa siêu mẫu) và MSAA (Multi Sampling AntiAliasing – Khử răng cưa đa mẫu), cùng với cách người ta áp dụng nó vào đồ họa trong các trò chơi điện tử trên máy tính.
- Supersampling Anti Aliasing (SSAA, tên khác là FSAA – Full Scene AA)
Card đồ họa sẽ dựng khung hình gấp 4 lần kích thước gốc
Sau đó resize lại kích thước như cũ để tạo hiệu ứng khử răng cưa
Thực tế đến tại thời điểm này, SSAA vẫn là phương pháp khử răng cưa cho chất lượng hình ảnh đẹp nhất, nhưng để có chất lượng tốt như vậy, mọi thành phần của máy bạn phải chạy với công suất gấp nhiều lần khối lượng công việc gốc phải làm. Kết quả là khung hình của game sẽ sụt giảm nghiêm trọng tương ứng với số mẫu khử răng cưa SSAA. Do đó, các nhà phát triển đã phát triển nhiều giải pháp hiệu quả hơn nhằm cân bằng chất lượng hình ảnh và hiệu năng.
- Multisampling (MSAA)
Nguyên tắc thực hiện là MSAA chỉ tìm các cạnh của vật thể và tiến hành khử răng cưa cho nó. Để làm việc này, card đồ họa sẽ sử dụng một thuật toán riêng gọi là “Z-test” để nhận biết các cạnh của vật thể, tiến hành lấy mẫu về màu sắc của các pixel trên cạnh này và thay thế các pixel bên cạnh bằng các pixel có màu sắc trung gian tùy vào vị trí và số mẫu được lấy của nó.
Sau đây là ví dụ minh họa cách thức làm việc của MSAA. Ở đây ta có 4 pixel cạnh nhau để thể hiện 1 đường chéo. Nếu không áp dụng các thuật toán khử răng cưa, ta có kết quả của hình bên cạnh , vì đơn giản card đồ họa sẽ lấy màu sắc ngay tại trung tâm pixel đó để thể hiện lên màn hình, bất kể tại pixel đó có bao nhiêu đối tượng.
Mỗi pixel sẽ lấy mẫu tại trung tâm của pixel đó, cho ra hình ảnh bên phải
Nếu MSAA được áp dụng (mức 4X) thì card đồ họa sẽ tiến hành lấy 4 mẫu tại mỗi pixel, các mẫu này sẽ được card đồ họa xử lý các giá trị màu sắc trung bình để cho ra pixel có màu trung gian. Theo hình bên dưới ta thấy pixel phía trên bên trái có 2 mẫu có màu xanh dương và 2 mẫu có màu xanh lục, card đồ họa sẽ xử lý pixel này có màu gồm 50% xanh dương và 50% xanh lục. Tương tự, pixel bên phải phía dưới sẽ có 25% màu xanh dương và 75% màu xanh lục. Riêng pixel góc trong cùng thì phép thử “Z-test” xác định không phải là cạnh nên MSAA sẽ không lấy mẫu, giúp giảm tải cho hệ thống.
Mỗi pixel lấy 4 mẫu thử, sau đó màu cho pixel đó sẽ trộn kết quả mà 4 mẫu đem lại
Theo đó ta có thể thấy với số mẫu càng tăng lên thì độ chính xác của việc pha màu sẽ càng cao hơn, làm giảm hiệu ứng răng cưa đi, tuy nhiên card đồ họa cũng phải chịu gánh nặng nhiều hơn và khung hình sẽ giảm nhiều hơn bình thường. Việc áp dụng thuật toán “Z-test” cũng giúp MSAA tránh việc phải lấy mẫu pixel của đối tượng khác nằm bên dưới đối tượng cần lấy mẫu.
MSAA rõ ràng đem lại hiệu quả cao hơn hẳn SSAA, cân bằng được hiệu năng và chất lượng hình ảnh. Tuy nhiên MSAA chỉ phát huy hiệu quả với cạnh biên của các đối tượng, trong khi lớp vân bề mặt (texture) của đối tượng thì không được xử lý, SSAA thì ngược lại sẽ xử lý khử răng cưa với tất cả đối tượng trên màn hình. Do đó với các đối tượng có lớp vân bề mặt trong suốt sẽ vẫn còn nguyên răng cưa nếu sử dụng MSAA.
Ví dụ dưới đây sẽ chỉ ra rõ nhược điểm của MSAA, hãy để ý kỹ các hàng rào lưới. Do lớp hàng rào này nằm trên một lớp vân bề mặt trong suốt (để nhìn thấy các đối tượng phía sau) nên không nằm trong diện xử lý của MSAA, kết quả là răng cưa khắp nơi trên hàng rào, rất xấu xí. Trong khi đó SSAA không cần phân biệt gì đều xử lý hết nên hình ảnh rất mịn màng.
Do MSAA còn những hạn chế như vậy nên cả nVIDIA và AMD đều phát triển các kỹ thuật khử răng cưa riêng của mình. Cả hai hãng đều ra sức quảng bá cho công nghệ riêng của mình và cho rằng nó ưu việt hơn công nghệ của đối thủ. Thực hư của việc này ra sao thì phần 3 của bài viết sẽ trình bày rõ hơn. Nhưng trước hết ta hãy nhìn lại hiệu quả của 2 công nghệ cổ điển này dưới sự xử lý của 2 dòng card nổi tiếng nhất là nVIDIA GeForce và AMD Radeon ra sao nhé.
- So sánh chất lượng hình ảnh xử lý bởi card đồ họa nVIDIA và AMD
Quảng cáo
Do đó chúng ta sẽ sử dụng Source Engine của Valve với chế độ DirectX 9 để kiểm tra hiệu quả xử lý mà 2 dòng card này đem lại.
Hình trên phóng to lên 4 lần
Qua hình trên ta thấy hiệu quả xử lý MSAA của cả 2 dòng card đồ họa đều cho kết quả rất giống nhau. Và cũng cho thấy khi tăng số mẫu lên nhiều lần nhưng hiệu quả xử lý hình ảnh thu được lại không tương xứng, có nghĩa tăng từ 2x lên 4x thì hình ảnh rất đẹp, nhưng 4x lên 8x thì không khác nhau nhiều lắm và 8x thì kết quả giống hệt 16x mà thôi.
(Còn tiếp)