Introducation of Supersampling Anti-Aliasing(SSAA)
前言
SSAA(Supersampling Anti-Aliasing)是通過加大分辨率,使取樣率提高的一種反鋸齒技術。以4xSSAA為例,屏幕像素被放大4倍進行取樣。
所有着色完成後,計算4個像素的平均值,賦值給原像素。
鋸齒
因為像素的取樣率不足,導致不能完整地描述三角形。
通過增大分辦率(軟件形式),提高像素的取樣率,能更好地描述三角形。
實際的顯示中,因為邊緣被模糊了,所以鋸齒感會降低。
SSAA著色
原本的著色是針對一個像素的,如下圖。
origin
SSAA是逐像素計算的,每一個像素都需要執行着色運算(與MSAA不同之處)。當着色結束後,求4個像素的平均值,賦給原像素。下圖中的結果為
a triangle
因為着色時會進行深度測試(depth testing),存在多個三角形時,會根據深度值進行屏蔽。下圖中的結果為
more triangle
問題
- 4倍的存儲空間(渲染貼圖&深度貼圖)
- 4倍的着色計算
前書き
SSAA(Supersampling Anti-Aliasing)とは解像度を増加し、サンプリング周波数を増大するアンチエイリアス技術である。4xSSAAを例とし、解像度を4倍増加して、サンプリングを行う。
シェーディングが終わと、元ピクセルの値は4つのピクセルの平均である。
アンチエイリアス
サンプリング周波数が足りないため、三角形を完璧に表現できない。
解像度を増加することにより(ソフトウェア側)、サンプリング周波数を上げ、三角形の表現がよくなる。
SSAAのシェーディンググ
原画像のサンプリングでは、次の図のように1か所しかシェーディングできない。
origin
SSAAはper pixel
で、ピクセルごとにシェーディングを行う(MSAAとの違い)。シェーディングが終わると、4つのピクセルの平均値を元ピクセルの値にする。下図の結果は
a triangle
シェーディングする時、深度テストを行うため、複数の三角形が存在する場合としても、正しい結果が出る。下図の結果は
more triangle
問題
- 4倍のストレージ(RenderTarget Texture & Depth Texture)
- 4倍の計算時間
References
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.