前言

如果不了解SSAA,請先到SSAA頁面查看

MSAA(Multisampling Anti-Aliasing)的做法與SSAA基本一致,也是通過增加像素提高取樣率,唯一的不同是取樣的方式。SSAA是增加的所有像素都需要執行着色計算,而MSAA則是只對原像素進行一次着色操作,再將着色得到的值傳給通過了光柵化測試等的像素中。

MSAA著色

因為MSAA的著色與SSAA極為相似,所以在很多情況下,結果與SSAA並無二致。

01

origin

02

4x SSAA

將原像素中著色得到的值,賦值給通過一系列測試的像素。

但是當一個三角形有漸層變色時,在變色處會容易取樣到錯誤的顏色。如下圖,原像素取樣得到綠色。將綠色賦值給通過一系列測試的像素。明顯,這個結果並不正確。

03

origin

04

4x MSAA

如果採用SSAA,結果會比MSAA準確。如下圖

05

4x SSAA

雖然MSAA比不上SSAA。但是由於MSAA的速度比SSAA快且得到的結果與SSAA相差不大。因此,在real-time渲染中,一般會選用MSAA而不是SSAA。

與SSAA相比

  1. MSAA的速度與原取樣速度基本一致,多了一些步驟(查詢值、賦值、求平均操作…)
  2. MSAA與SSAA所佔存儲空間一致
  3. MSAA的質量沒有SSAA好

前書き

SSAAをまだわからない方が、まずSSAAを見てください

MSAA(Multisampling Anti-Aliasing)はSSAAとほぼ同じの手法である。解像度を増加し、サンプリング周波数を増大する。違うところはシェーディングの方法だけである。

SSAAはピクセルごとにシェーディングを行うが、MSAAは元ピクセルにシェーディングを1回行い、計算された値をピクセルの値とする。

MSAAのシェーディンググ

MSAAはSSAAと似っているため、多くの場合、同じの結果になる。

01

origin

元ピクセルで計算された値をピクセルの値とする。

02

4x MSAA

しかし、三角形にグラデーションがあると、変色箇所で誤った色がサンプリングされやすくなる。

03

origin

最後の結果は緑色ですが、正しいではない。

04

4x MSAA

もし、SSAAを使用したら、結果はMSAAを使用するよりも良くなります。

05

4x SSAA

MSAAはSSAAのより品質が低いですが、高速な計算ができるため、レアルタイムレンダリングでよく使用されている。

SSAAとの比較

  1. MSAAのほうが速い
  2. MSAAとSSAAは同じストレージが必要
  3. SSAAのほうがきれい

References

Introducation of Supersampling Anti-Aliasing(SSAA)