TTBC2024

TTBC2024


Tìm hiểu về kĩ thuật khử răng cưa trong đồ họa vi tính (Phần 2)

cuLong
17/7/2012 8:34Phản hồi: 35
Tìm hiểu về kĩ thuật khử răng cưa trong đồ họa vi tính (Phần 2)
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)
SSAA là phương pháp khử răng cưa ra đời đầu tiên. SSAA sử dụng sức mạnh phần cứng thuần túy của card đồ họa để xử lý chứ không áp dụng nhiều thuật toán phức tạp như các kỹ thuật về sau. Nguyên tắc rất đơn giản: ví dụ bạn chọn thiết lập 4x SSAA trong game tại độ phân giải 1366 x 768 pixel, máy tính sẽ dựng một khung hình gấp 4 lần độ phân giải gốc của game, là 2732 x 1536, sau đó thu nhỏ khung hình này xuống độ còn phân giải gốc là 1366 x 768. Kết quả đạt được là hình ảnh trở nên mịn màng, trơn tru, bao gồm tất cả các đối tượng trong game như: các cạnh, các vân bề mặt… Rất đơn giản nhưng hiệu quả, tuy nhiên để đạt được chất lượng hình tối ưu như vậy máy tính bạn phải gồng gánh một khối lượng công việc gấp 4 lần bình thường, một cái giá quá đắt để đổi lại kết quả này.

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)
Kỹ thuật khử răng cưa MSAA được phát triển nhằm thay thế cho SSAA vốn không hiệu quả về tốc độ khung hình. MSAA sẽ cố gắng cân bằng giữa hiệu năng và chất lượng hình ảnh, bằng cách chọn lọc những khử răng cưa những chỗ cần thiết và bỏ qua những chỗ không cần thiết, giúp giảm tối đa lượng răng cưa trong khả năng cho phép mà vẫn đảm bảo hiệu năng ổn định.

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ả nVIDIAAMD đề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
Trước tiên về kỹ thuật SSAA, nVIDIA đã gỡ bỏ tính năng này trong các driver mới do hiệu năng quá kém. Tương tự AMD cũng không hỗ trợ SSAA cho DirectX 10 và 11, chỉ hỗ trợ tập lệnh DirectX 9 mà thôi.

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)
35 bình luận
Chia sẻ

Xu hướng

không biết cho nó xử lý ảnh cái cưa có bị mất răng không ấy nhỉ? 😁
@hailongplus91 Nếu ko mất răng thì chứng tỏ khả năng xử lý vẫn kém :D

Gửi từ Optimus 2X của tôi
Hý hửng chạy vào, tưởng có hướng dẫn nâng, không có buồn bã đi ra:p
duo8
TÍCH CỰC
12 years
Thanks, bài viết rất hữu ích.

-----------------------
Mình thuộc trường phái ủng hộ những cái mới, cái hay, cái lạ và ko được ủng hộ bởi nhiều người Việt. 😃
phuc3xu
ĐẠI BÀNG
12 years
Bài viết hay!
Bài viêt hữu ích, giúp cho cộng đồng hiểu biết về công dụng của card đồ hoạ
Ước có cái card đồ họa thật trâu với máy thật khủng.

Được gửi từ iPhone 5 của tôi.
Bài viêt hữu ích, giúp cho cộng đồng hiểu biết về công dụng của card đồ hoạ
các bạn khử nốt tí răng cưa trên cái avatar của tôi với
E chả hiểu gì
Kém thật haizzzzz
THank bạn. Bài viết rất bổ ích!
Hi, cám ớn chủ topic nhiều, bài này có vẻ quá chuyên sâu với ae tinhte vốn chuyên về mobile nhưng qua voz là đúng ổ luôn....
Dacan
TÍCH CỰC
12 years
kiếm 1 em gts450 là đủ phe phé 2x tới 4x. Hầu hết game hiện nay đều ko cho phép người chơi thay đổi mức khử răng cưa như crysis2, mức high là mức thấp nhất của game mà vẫn có khử răng cưa. Hay như cod mw3 cho người dùng khử aa ở các mức 2x 4x 8x.... Mà ko nói rõ là khử loại gì. Game và hệ thống driver sẽ tự quyết định dùng loại nào để đảm bảo hiệu suất game. Nên mọi người cũng không cần bận tâm về các chế độ khử răng cưa đó. Tham khảo là ok rồi. Muốn game mượt thì tắt, đẹp thì 2x, card khủng thì 4x, 2 card trở lên thì 8x trở lên. Mà theo trải nghiệm của ae thì card radeon hd của amd khử aa tốt hơn mượt hơn geforce. Nhưng card amd thì thỉnh thoảng sụt khung hình ( nhưng chắc giờ đã hết, ko rõ) còn nvidia thì đc ổn định trơn tru hơn trong game.
@BLACKBERRY__7290 chơi max setting chưa mà kêu xấu?
duo8
TÍCH CỰC
12 years
@Dacan Vậy à. Đặt mức high là thấp nhất chắc để cho ngang với crysis 1 😃 ( thấy có ng bảo crysis 2 xấu hơn crysis 1)
-----------------------
Mình thuộc trường phái ủng hộ những cái mới, cái hay, cái lạ và ko được ủng hộ bởi nhiều người Việt. 😃
Gần đèn thì sáng,
Gần quá thì cháy. 😁
@duo8 crysis 2 dùng cryengine 3, nhẹ hơn, đẹp hơn crysis 1 dùng cry engine 2



do crysis 2 bối cảnh là thành phố nên nhìn không hoành tráng như crysis 1 bối cảnh rừng rậm thôi :D
Dacan
TÍCH CỰC
12 years
@duo8 chưa chơi đừng kết luận tùm lum.
bây giờ thì mình hiểu tại sao ngoài cài đặt số x khử răng cưa của MSAA thì còn có 1 thiết lập riêng về khử răng cưa hàng rào của lưới, hóa ra là do MSAA không khử được cái này.
còn 1 loại khử răng cưa nữa, đó là FXAA (Fast Approximate Anti-Aliasing), khử răng cưa nhanh 😁
đọc cũng hay, mỗi tội cái mt cùi qa. k có card đồ họa
aeronautic
ĐẠI BÀNG
12 years
Không có tiền >.chả quan tâm....😃
e thì ko ham cái khoản đồ họa này,😁
hình đầu tiên là trong game "Prince Of Persia: The fogotten of sand" thì phải 😃
Lần sau thay máy tính phải thử trang bị 2 card xem khử răng cưa thế nào mới được, thêm cái màn hình chừng 30" nữa cho xứng tầm, còn h thì cứ AA 2x là ok 😁 dành dụm thoy :D
Bài viết hay nhưng không rành về xử lý ảnh lắm...

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