前言

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

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

MSAA的取樣方式

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

origin

將在原像素中取樣得到的值,賦值給被三角形覆蓋的像素。

4x MSAA

但是當一個三角形有漸層變色時,在變色處會容易取樣到錯誤的顏色。如下圖,原像素取樣得到綠色。

origin

將綠色賦值給被三角形覆蓋的像素。明顯,這個結果並不正確。

4x MSAA

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

4x SSAA

思考一下,如果將像素縮小到正常屏幕的大小。我們通過SSAA的做法會得到一個綠色到橙色的過渡,如果像素愈多,過渡就會愈平滑。

雖然MSAA的質量沒有SSAA好,但是MSAA的速度比SSAA快得多,而且得到的質量並不比SSAA差太多,所以游戲中經常選用MSAA而不是SSAA。

與SSAA相比

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

前書き

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

MSAA(Multisampling Anti-Aliasing)はSSAAとほとんど同じの手法である。解像度を増加して、サンプリング周波数を増大する。違うところはサンプリング方法である。

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

MSAAのサンプリング

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

origin

元ピクセルで計算された値を三角形にカバーされたピクセルの値とする。

4x MSAA

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

origin

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

4x MSAA

もし、SSAAを使用したら、結果はMSAAのほうが良くなる。

4x SSAA

ディスプレイのサイズでSSAAを採用したらどうなるか?緑色からオレンジ色に遷移する表現が出る。ピクセルの数が多ければ多いほどスムーズに遷移する。

MSAAの品質はSSAAのより低いですが、高速な計算ができるため、ゲームによく使用されている。

SSAAとの比較

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

References

Introducation of Supersampling Anti-Aliasing(SSAA)