前言

SSAA(Supersampling Anti-Aliasing)是通過加大分辨率,使取樣率提高的一種反鋸齒技術。以4xSSAA為例,屏幕像素被放大4倍進行取樣。

4x SSAA

所有着色完成後,計算4個像素的平均值,賦值給原像素。

pn=i=04Pi4p_{n} = \frac{\sum_{i=0}^4 P_{i}}{4}

鋸齒

因為像素的取樣率不足,導致不能完整地描述三角形。

4x SSAA

通過增大分辦率(軟件形式),提高像素的取樣率,能更好地描述三角形。

4x SSAA

實際的顯示中,因為邊緣被模糊了,所以鋸齒感會降低。

SSAA著色

原本的著色是針對一個像素的,如下圖。

origin

origin

SSAA是逐像素計算的,每一個像素都需要執行着色運算(與MSAA不同之處)。當着色結束後,求4個像素的平均值,賦給原像素。下圖中的結果為

pixel=2green4pixel = \frac{2green}{4}

a triangle

a triangle

因為着色時會進行深度測試(depth testing),存在多個三角形時,會根據深度值進行屏蔽。下圖中的結果為

pixel=2yellow+1green4pixel = \frac {2yellow + 1green}{4}

more triangle

more triangle

問題

  1. 4倍的存儲空間(渲染貼圖&深度貼圖)
  2. 4倍的着色計算

前書き

SSAA(Supersampling Anti-Aliasing)とは解像度を増加し、サンプリング周波数を増大するアンチエイリアス技術である。4xSSAAを例とし、解像度を4倍増加して、サンプリングを行う。

4x SSAA

シェーディングが終わと、元ピクセルの値は4つのピクセルの平均である。

pn=i=04Pi4p_{n} = \frac{\sum_{i=0}^4 P_{i}}{4}

アンチエイリアス

サンプリング周波数が足りないため、三角形を完璧に表現できない。

4x SSAA

解像度を増加することにより(ソフトウェア側)、サンプリング周波数を上げ、三角形の表現がよくなる。

4x SSAA

SSAAのシェーディンググ

原画像のサンプリングでは、次の図のように1か所しかシェーディングできない。

origin

origin

SSAAはper pixelで、ピクセルごとにシェーディングを行う(MSAAとの違い)。シェーディングが終わると、4つのピクセルの平均値を元ピクセルの値にする。下図の結果は

pixel=2green4pixel = \frac{2green}{4}

a triangle

a triangle

シェーディングする時、深度テストを行うため、複数の三角形が存在する場合としても、正しい結果が出る。下図の結果は

pixel=2yellow+1green4pixel = \frac {2yellow + 1green}{4}

more triangle

more triangle

問題

  1. 4倍のストレージ(RenderTarget Texture & Depth Texture)
  2. 4倍の計算時間

References

Introduction of Multisampling(MSAA)