FXAA là gì, và tại sao nó lại lỗi thời?

5/5 - (2 bình chọn)
Fast Approximate Anti-Aliasing (FXAA) có thể không được nhiều game thủ biết đến, nhưng họ chắc chắn nhận ra vẻ đẹp của nó, được sử dụng trong các trò chơi sang trọng như The Elder Scrolls V: Skyrim, Batman: Arkham City và Battlefield 3.
FXAA là gì
Nhưng thật sự nó là gì? Đó là một cải tiến so với ba lần lặp lại trước đó của khử răng cưa, hiển thị hình ảnh hiệu suất cao nhanh hơn và hoàn thiện hơn. Ở đây để giải thích là Jeff Atwood, người viết về lập trình cho Coding Horror.
Khử răng cưa có một cái tên đáng sợ, nhưng những gì nó làm cho màn hình máy tính của chúng ta là khá cơ bản. Hãy nghĩ theo cách này – một dòng có độ phân giải vô hạn, nhưng màn hình kỹ thuật số của chúng tôi thì không. Vì vậy, khi chúng tôi “bắt” một dòng vào lưới pixel trên màn hình của mình, chúng tôi có thể bù đắp bằng cách tưởng tượng các pixel một phần dọc theo dòng, giả sử chúng tôi có màn hình có độ phân giải cao hơn nhiều so với thực tế. Như này:
FXAA là gì
Khử răng cưa tạo ra hình ảnh vượt trội bằng cách sử dụng các điểm ảnh màu xám để mô phỏng các điểm ảnh một phần dọc theo các cạnh của đường thẳng. Đó là một cuộc tấn công, nhưng khi hack diễn ra, nó khá hiệu quả. Tất nhiên, giải pháp thích hợp cho vấn đề này là phải có màn hình độ phân giải cực cao ngay từ đầu. Nhưng ngoài các thiết bị cầm tay nhỏ bé, tôi sẽ không nín thở để điều đó sớm xảy ra.
Điều này cũng áp dụng cho các cảnh đồ họa 3D phức tạp hơn nhiều. Có lẽ còn hơn thế nữa, khi việc thêm chuyển động sẽ khuếch đại hiệu ứng răng cưa của tất cả những đường bò tạo nên các cạnh của cảnh.
Nhưng khử răng cưa, đặc biệt là ở tốc độ 30 hoặc 60 khung hình / giây trong một trò chơi nghệ thuật phức tạp, với hàng triệu đa giác và hiệu ứng đang hoạt động, không hề rẻ. Theo câu trả lời của tôi ở đây, bạn thường có thể mong đợi chi phí hiệu suất ít nhất là 25% cho khả năng khử răng cưa 4x thích hợp. Và đó là phiên bản khử răng cưa được tối ưu hóa nhất mà chúng tôi có thể đưa ra:
1. Khử răng cưa siêu lấy mẫu (SSAA). Thủ thuật lâu đời nhất trong cuốn sách – tôi liệt kê nó là phổ biến vì bạn có thể sử dụng nó khá nhiều ở bất cứ đâu: kết xuất chuyển tiếp hoặc hoãn lại, nó cũng chống bí danh alpha cutouts, và nó cung cấp cho bạn lấy mẫu kết cấu tốt hơn ở độ dị hướng cao. Về cơ bản, bạn kết xuất hình ảnh ở độ phân giải cao hơn và lấy mẫu xuống bằng bộ lọc khi hoàn tất. Các cạnh sắc nét trở nên chống răng cưa khi chúng có kích thước nhỏ hơn. Tất nhiên, có một lý do tại sao mọi người không sử dụng SSAA: nó tốn rất nhiều tiền. Bất kể hóa đơn tỷ lệ lấp đầy của bạn là 4 lần đối với SSAA thậm chí tối thiểu.
2. Khử răng cưa đa mẫu (MSAA). Đây là những gì bạn thường có trong phần cứng trên một cạc đồ họa hiện đại. Card đồ họa hiển thị trên bề mặt lớn hơn hình ảnh cuối cùng, nhưng khi tô bóng từng “cụm” mẫu (sẽ kết thúc trong một pixel duy nhất trên màn hình cuối cùng), trình đổ bóng pixel chỉ được chạy một lần. Chúng tôi tiết kiệm rất nhiều tỷ lệ lấp đầy, nhưng chúng tôi vẫn đốt băng thông bộ nhớ. Kỹ thuật này không khử bí danh bất kỳ hiệu ứng nào phát ra từ bộ đổ bóng, vì bộ đổ bóng chạy ở 1x, vì vậy các vết cắt alpha có răng cưa. Đây là cách phổ biến nhất để chạy trò chơi kết xuất chuyển tiếp. MSAA không hoạt động đối với trình kết xuất chậm vì các quyết định về ánh sáng được đưa ra sau khi MSAA được “giải quyết” (giảm kích thước) đến kích thước hình ảnh cuối cùng của nó.
3. Chống răng cưa mẫu bao phủ (CSAA). Một tối ưu hóa hơn nữa trên MSAA từ NVIDIA [ed: ATI có một tương đương]. Bên cạnh việc chạy bộ đổ bóng ở 1x và bộ đệm khung ở 4 lần, bộ rasteriser của GPU còn chạy ở 16x. Vì vậy, trong khi bộ đệm độ sâu tạo ra khả năng khử răng cưa tốt hơn, các sắc thái pha trộn trung gian được tạo ra thậm chí còn tốt hơn.
Khá nhiều công cụ khử răng cưa “hiện đại” là một số biến thể của hack MSAA, và thậm chí nó còn tiêu tốn một phần tư tốc độ khung hình của bạn. Điều đó cực kỳ tốn kém, trừ khi bạn có nhiều hiệu suất mà bạn thậm chí không quan tâm, điều này hiếm khi đúng với bất kỳ trò chơi nào gần đây. Mặc dù các dòng răng cưa đang thu thập dữ liệu làm phiền tôi, nhưng tôi không cảm thấy chỉ riêng việc khử răng cưa cũng đáng bỏ một phần tư tốc độ khung hình của mình và / hoặc giảm các chi tiết khác để trả tiền cho nó.
Nhưng đó là trước khi tôi biết rằng có một số lựa chọn thay thế mới nổi cho MSAA. Và sau đó, tôi rất ngạc nhiên, những lựa chọn thay thế này bắt đầu hiển thị dưới dạng tùy chọn đồ họa thực tế trong các trò chơi PC của mùa này – Battlefield 3, Skyrim, Batman: Arkham City, v.v. Điều này FXAA là gì, và nó hoạt động như thế nào? Hãy xem nó hoạt động: [imgclear]
FXAA là viết tắt của Fast Approximate Anti-Aliasing (Khử răng cưa xấp xỉ nhanh) và đây là một thủ thuật thậm chí còn thông minh hơn MSAA, bởi vì nó bỏ qua các đa giác và các cạnh đường, và chỉ đơn giản là phân tích các pixel trên màn hình. Đây là một chương trình tạo bóng pixel được ghi lại trong tệp PDF này, chạy mọi khung hình trong một hoặc hai phần nghìn giây. Nơi nó nhìn thấy các pixel tạo ra một cạnh nhân tạo, nó sẽ làm mịn chúng. Theo cách nói của tác giả, đó là “thứ đơn giản nhất và dễ dàng nhất để tích hợp và sử dụng”.
FXAA có hai ưu điểm chính:
1. FXAA làm mịn các cạnh ở tất cả các điểm ảnh trên màn hình, bao gồm cả những điểm ảnh bên trong kết cấu được pha trộn giữa alpha và những thứ tạo ra từ hiệu ứng đổ bóng điểm ảnh, vốn trước đây miễn nhiễm với các tác động của MSAA mà không có cách giải quyết kỳ quặc.
2. Nó nhanh . Rất, rất nhanh. Phiên bản 3 của thuật toán FXAA mất khoảng 1,3 mili giây mỗi khung hình trên thẻ video trị giá 100 đô la Mỹ. Các phiên bản trước đó được phát hiện có tốc độ gấp đôi 4x MSAA, vì vậy bạn đang xem xét chi phí khiêm tốn 12 hoặc 13% trong tốc độ khung hình để kích hoạt FXAA – và đổi lại, bạn sẽ giảm được răng cưa đáng kể. [imgclear]
FXAA là gì
Nhược điểm duy nhất, và nó là nhỏ, là bạn có thể thấy một chút “giảm” cạnh không mong muốn bên trong kết cấu hoặc ở những nơi khác. Tôi không chắc liệu có công bằng khi gọi đây là một nhược điểm hay không, nhưng FXAA không thể áp dụng trực tiếp cho các trò chơi cũ hơn; trò chơi phải được mã hóa cụ thể để gọi trình đổ bóng pixel FXAA trước khi chúng vẽ giao diện người dùng của trò chơi, nếu không nó cũng sẽ làm mịn các cạnh của các phần tử HUD trên màn hình.
Phương pháp FXAA quá tốt, trên thực tế, nó làm cho tất cả các hình thức khử răng cưa toàn màn hình khác trở nên lỗi thời khá nhiều sau một đêm. Nếu bạn có tùy chọn FXAA trong trò chơi của mình, bạn nên bật nó ngay lập tức và bỏ qua bất kỳ tùy chọn AA nào khác.
FXAA là một ví dụ tuyệt vời về sức mạnh của các phương pháp hack và heuristics đơn giản. Nhưng nó cũng là một minh chứng tuyệt vời về cách tấn công các vấn đề lập trình từ một góc độ khác – nghĩa là, thay vì coi màn hình như một tập hợp các đa giác và đường thẳng, hãy nghĩ về nó như một tập hợp các pixel – có thể cho phép bạn giải quyết các vấn đề khó về mặt tính toán nhanh hơn và được cho là tốt hơn bất kỳ ai nghĩ là có thể.
Nguồn: kotaku

QM Tech là cửa hàng chuyên cung cấp đồ Gaming Gear, linh kiện PC chất lượng cao, giá rẻ từ các hãng lớn trên toàn thế giới.
Ngoài ra, bạn có thể tham khảo các phương tiện media khác của QMTech 
Youtube: Voi review
Tiktok: Vinh Vunvo

Bài viết liên quan

Tìm cửa hàng
Gọi trực tiếp
Chat ngay
Chat trên Zalo