Tìm hiểu kỹ thuật khử răng cưa trong đồ họa vi tính (Phần cuối)

cuLong
30/7/2012 3:11Phản hồi: 22
Tìm hiểu kỹ thuật khử răng cưa trong đồ họa vi tính (Phần cuối)
Kỹ thuật xử lý răng cưa MLAA của AMD
Qua 4 bài viết trước, chúng ta đã cùng tìm hiểu về công nghệ khử răng cưa tiên tiến trong đồ họa vi tính, và 2 hãng nổi tiếng là nVIDIA và AMD đều có những công nghệ khá tương tự nhau, chỉ khác cách gọi mà thôi, đó là TAAA so với Adaptive AA, đó là CSAAEQAA. Tuy nhiên ngoài những công nghệ tương tự nhau, các hãng cũng đã phát triển những kỹ thuật của riêng mình như một cách tăng lợi thế cạnh tranh. Phần cuối cùng của loạt bài “Tìm hiểu kĩ thuật khử răng cưa trong đồ họa vi tính” sẽ giới thiệu các công nghệ riêng của AMD/ATi và nVIDIA ngay sau đây.

- Các công nghệ khử răng cưa riêng của AMD
  • Khử răng cưa tạm thời (Temporal AA – TAA)
Cùng với sự ra mắt của dòng Radeon X800. ATI (thời điểm này) đã giới thiệu một kỹ thuật khử răng cưa mới, gọi là khử răng cưa tạm thời (TAA). Về bản chất TAA vẫn dựa trên MSAA, nhưng sử dụng một thủ thuật nhỏ để gấp đôi số mẫu MSAA bằng cách sử dụng 2 mẫu MSAA của cùng 1 pixel nhưng khác khung hình. Điều này dựa vào đặc điểm của mắt người: một khi số khung hình trên mỗi giây (frame per second, hay gọi tắt là FPS) vượt quá 60, mắt người sẽ không đủ khả năng để phân biệt được sự khác nhau giữa 2 khung hình liên tiếp nhau, do đó, ATI đã dựa vào đặc điểm này để tiến hành nhân đôi số mẫu MSAA.
Theo dõi ví dụ trên, ta có khung hình 1 (frame 1) và khung hình 2 (frame 2) kế tiếp nhau, card đồ họa sẽ tiến hành lấy 2 mẫu của khung hình 1 (màu xanh lá) và 2 mẫu của khung hình 2 (màu xanh dương) và áp dụng 4 mẫu thử này cho 1 khung hình chung. Kết quả ta có 4x MSAA mà card đồ họa chỉ phải gánh công việc bằng 2xMSAA bình thường. Tương tự 4xMSAA bình thường đạt chất lượng 8xMSAA sử dụng TAA.
Tuy nhiên TAA cũng không phải là không có nhược điểm. Trước tiên, V-sync* phải được bật và sau đó, máy phải đủ mạnh để duy trì số khung hình trên 60, nếu mức khung hình sụt xuống dưới 60, TAA sẽ bị vô hiệu hóa.

Nguyên lý này khá đơn giản và hiệu quả, tuy nhiên nhược điểm cũng không hề dễ chịu. Do vậy TAA đã bị ATI loại bỏ trong các bản driver Catalyst một thời gian sau đó.

*V-sync (Đồng bộ tốc độ khung hình với tần số làm tươi của màn hình): đây là một tính năng giới hạn FPS tối đa bằng với tần số làm tươi của màn hình, ví dụ màn hình của bạn có Refresh Rate là 60Hz thì khi bật V-sync, FPS tối đa sẽ là 60.

  • Khử răng cưa tùy chỉnh (Custom Filter Anti-Aliasing – CFAA hay còn có tên khác là EDAA)
Được ra mắt cùng với ATi Radeon HD 2900XT, CFAA là một kỹ thuật khử răng cưa mà không chỉ lấy các mẫu bên trong pixel mà còn lấy các mẫu ở bên ngoài pixel đó. Điều đó có nghĩa các mẫu thử này có thể được lấy trong một bán kính nhất định mà pixel gốc là trung tâm. Khi được giới thiệu, ATI cung cấp 3 bộ lọc (filter) CFAA đó là Narrow, Wide và Edge-Detect.

Narrow và Wide ở đây chính là bán kính thu mẫu so với pixel, còn bộ lọc Edge-Detect lại áp dụng thuật toán để nhận diện cạnh của 1 đối tượng đồ họa và tập trung việc khử răng cưa ở các khu vực đó.


Dễ thấy Edge-Detect là cách thức CFAA đạt hiệu quả cao nhất, vì nó có thể nhận diện được các cạnh và xử lý các cạnh này, vốn là các đối tượng chứa nhiều răng cưa nhất, nhưng nó cũng nặng nề nhất vì yêu cầu việc xử lý thuật toán phức tạp hơn. Các bộ lọc theo bán kính thì chỉ đem lại hiệu quả không đáng kể so với MSAA truyền thống, do đó AMD đã bỏ 2 bộ lọc này kể từ dòng Radeon HD 6000 series.


Cũng khung hình trên sau khi phóng to lên 4 lần

Như đã nói ở bài trước, kỹ thuật EQAA chỉ dành riêng cho dòng Radeon HD 6900 cao cấp, do đó kỹ thuật CFAA sát cạnh sẽ khá phù hợp với dòng Radeon HD 6800 trở xuống, khi nó cung cấp chất lượng hình ảnh khá hơn so với MSAA truyền thống, nhưng lại không quá nặng nề so với EQAA.

  • Khử răng cưa hình thái học (Morphological Anti-Aliasing – MLAA)
Khử răng cưa hình thái học (MLAA) là kỹ thuật khử răng cưa mới hoàn toàn, được giới thiệu cùng với Radeon HD 6800. Nó có cách tiếp cận khác hoàn toàn với các kỹ thuật trước đó, MLAA là kỹ thuật hậu xử lý (post-processing). Nó không tiến hành xử lý màu sắc các pixel rồi mới xuất ra màn hình như các kỹ thuật trước, mà chỉ xử lý khung hình sau khi đã được dựng hoàn chỉnh. Nguyên lý làm việc như sau: MLAA sẽ phân tích 1 khung hình, xác định các cạnh cũng như các phổ màu của khung hình, sau khi xác định được các đối tượng cụ thể, nó sẽ tiến hành làm mờ các cạnh bằng phương pháp pha trộn màu. MLAA tương tự với các bộ lọc giảm răng cưa trong Adobe Photoshop.

Phân biệt được cạnh của đối tượng (trái),
rồi tiến hành pha trộn màu để giảm răng cưa (phải)
Trên thực tế, MLAA hoạt động khá tốt, đem lại chất lượng hình ảnh gần tương đương với SSAA (kỹ thuật khử răng cưa đầu tiên nhưng có chất lượng hình ảnh tốt nhất) nhưng mức độ công việc cho card đồ họa chỉ sánh ngang với CFAA Edge-Detect. Nhìn chung, nó đem lại chất lượng hình ảnh tốt nhất trong các kỹ thuật khử răng cưa mà lại không quá nặng nề. Nhưng, như đã nói, không có kỹ thuật nào là hoàn hảo cả, MLAA cũng vậy. Do nguyên lý xử lý hậu cảnh của mình, MLAA sẽ khử “răng cưa” ở tất cả các đối tượng độc lập, điều này kể cả chữ, các đối tượng HUD trên màn hình (đạn dược, giáp…) đều bị làm mờ đi, rất khó chịu, đặc biệt là chữ có kích thước nhỏ.

Quảng cáo



Phóng to một khung hình không bật chế độ khử răng cưa (game Starcraft 2)
MLAA hiện tại chỉ có trong dòng Radeon HD 6000, nhưng với driver Catalyst 11.2 trở đi thì dòng card Radeon HD 5000 cũng đã được hỗ trợ.


- nVIDIA
  • Kỹ thuật khử răng cưa Quincunx
Quincunx được giới thiệu cùng với thế hệ card Geforce 3 (ra mắt năm 2001). Quincunx dùng nguyên lý khử răng cưa khá kỳ lạ, nó không lấy các mẫu xung quanh pixel mà tạo ra một bản sao của khung hình hiện tại, theo hướng 45 độ ngược chiều kim đồng hồ, nhờ đó mà mỗi pixel góc sẽ có 4 pixel bản sao bên cạnh, giúp làm mờ sự khác màu giữa pixel gốc đó và các pixel lân cận, tạo nên hiệu ứng làm mờ răng cưa. Mặc dù NVIDIA giới thiệu Quincunx đem lại hiệu quả khử răng cưa tương đương 4xAA chỉ với thiết lập 2xAA, nhưng trên thực tế, phương pháp này chỉ làm cho hình ảnh trở nên lờ mờ khá khó chịu, và bản chất cũng không phải là thực sự khử đi răng cưa như các công nghệ đã nói ở bài trước.

Do đó từ đời Geforce 4 trở đi NVIDIA đã bỏ Quincunx do Geforce 4 trở đi đã đủ mạnh để gánh vác MSAA.

Như hình trên, ta thấy các pixel gốc màu đen, các pixel bản sao có màu đỏ lệch một góc 45 độ so với pixel gốc, từ đó các pixel đen được bao quanh bởi 4 pixel đỏ và tạo hiệu ứng làm mờ, giúp giảm bớt răng cưa.

  • Khử răng cưa ước tính nhanh (Fast Approximate Anti-Aliasing - FXAA)
FXAA là câu trả lời của nVIDIA dành cho MLAA của ATi. Tương tự MLAA, FXAA cũng là một kỹ thuật xử lý hậu cảnh. FXAA sẽ tìm và nhận biết các đối tượng độc lập và áp dụng một bộ lọc làm mềm để giảm mức tương phản giữa đối tượng đó với môi trường xung quanh, kết quả là đối tượng sẽ giảm bớt răng cưa. Điểm khác nhau là FXAA sẽ tìm các mức độ tương phản ở từng pixel còn MLAA sẽ tìm độ tương phản ở từng khuôn mẫu (pattern), do đó FXAA nhìn chung hiệu quả hơn MLAA.

Quảng cáo



  • Lời kết
5 phần của loạt bài viết "Tìm hiểu kỹ thuật khử răng cưa trong đồ họa vi tính" vừa qua đã đem lại cho chúng ta rất nhiều điều về kỹ thuật khử răng cưa. Nguyên lý ban đầu rất đơn giản, nhưng có rất nhiều cách tiếp cận, đem lại nhiều kết quả khác nhau. Mỗi cách tiếp cận lại có những ưu nhược điểm của riêng mình.


Điều đầu tiên chúng ta rút ra sau loạt bài này là: trong các chế độ trên, MSAA vẫn là lựa chọn cơ bản nhất. Mặc dù các kỹ thuật cải tiến của MSAA như CSAA, EQAA và CFAA Edge-Detect có thể giúp cải tiến việc khử răng cưa ít nhiều, nhưng MSAA vẫn là chế độ đem lại chất lượng hình ảnh cân bằng với hiệu năng nhất. Các mẫu bao phủ hay edge-detect đều khó đem lại sự khác biệt mà người dùng có thể phân biệt được, trừ khi chúng ta dừng game lại và dùng kính lúp để phóng to ra.

Điều thứ hai đó là: MSAA sẽ không thể khử răng cưa cho các đối tượng nằm trên vân trong suốt, và chúng ta cần có một phương pháp tối ưu để xử lý răng cưa cho đối tượng trên vân trong suốt. AMD đã hơn NVIDIA trong mảng này, khử răng cưa thích ứng đã vượt qua TrSSAA của NVIDIA.

Vậy còn MLAA và FXAA thì sao? Chúng hoạt động tương đối tốt, giảm được hầu hết răng cưa. Ngoài ra chúng độc lập với MSAA, có thể hoạt động song song với nhau để tăng cường hiệu quả xử lý. MLAA và FXAA nhìn chung khá hiệu quả, nhưng chúng cũng xử lý răng cưa trên cả những đối tượng 2D không liên quan trên màn hình, ví dụ các dòng chữ phụ đề trong game, khiến cho một số người dùng cảm thấy khó chịu.

Có rất nhiều kỹ thuật khử răng cưa như loạt bài đã nói, vậy lựa chọn nào là phù hợp nhất với bạn? Qua thực tế, chế độ khử răng cưa MSAA 4x là tương đối cân bằng, đem lại hình ảnh đẹp nhưng không quá nặng nề cho máy tính. Với người dùng nVIDIA còn có lựa chọn là TrSSAA để giảm tối đa răng cưa cho các vân trong suốt. Hy vọng AMD nâng cấp AdAA (Adaptive AA) để người dùng mọi card Radeon cũng không thua thiệt với người dùng nVIDIA.

Tóm lại, qua loạt bài viết, chúng ta đã nắm được nguyên lý kỹ thuật khử răng cưa là gì, gồm các loại chính nào cũng như những kỹ thuật của 2 hãng lừng danh là AMD và nVIDIA. Chúng ta cũng biết được ưu nhược điểm của từng loại và độ hiệu quả của chúng. Và chúng ta đã biết vai trò của kỹ thuật khử răng cưa trong các game máy tính là quan trọng như thế nào, chính nhờ kỹ thuật khử răng cưa mà hình ảnh trong game trở nên mịn màng và chân thực hơn, bớt thô kệch hơn.

22 bình luận
Chia sẻ

Xu hướng

a5saigon
ĐẠI BÀNG
12 năm
Rất hữu ích ạ. Chân thành cảm ơn bác nhé. Em đọc mà thấy hay quá 😆
Thanks bác.
m xem ka 4 phần truok mà k ug dug dc fan nao. máy cùi qa ak
bidoll
ĐẠI BÀNG
12 năm
Rất hữu ích, thks bạn
bác đã cho ae mở rộng tầm mắt
saved........... for future.
Mình thấy hình như card Nvidia tốt hơn AMD phải ko các bác? Nhận xét cá nhân vậy thôi ^^!
zprox
TÍCH CỰC
12 năm
@lip007 card ATI ít nóng hơn e Nvidia,nhưng hiệu năng + support game thì nvidia ngon hơn
Đọc hay, cơ mà mới cho em 460GTX đi ở mất rồi 😁
đọc cũng vỡ lẽ ít nhiều !
malepro
ĐẠI BÀNG
12 năm
thank... bài viết hay😃
có đọc nhiều nhưng hiểu ít😃
gtr_271
ĐẠI BÀNG
12 năm
Hi vọng 5 năm nữa card đồ hoạ có thế chơi được 4x SSAA, lúc đấy mới tuyệt nhất.
Chịu, có ai biết chỉnh cái này bên PTS không vậy ?
Đã hiểu ở mức độ trung bình ^^


---------------
www.ido.com.vn
Chuyên máy nghe nhạc, tai nghe chính hãng!
ai có hứng thú tham gia chút đi http://www.facebook.com/CongDongYeuCongNghe
Tuan497
ĐẠI BÀNG
12 năm
Đọc để hiếu chút chút, chứ ko thực tập được😔
giống như half life và đột kích?

Xu hướng

Bài mới










  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019