原理

SSAA(Supersampling Anti-Aliasing)先以較高解析度渲染,再把多個子像素平均成一個輸出像素。以 4x SSAA 為例,每個輸出像素使用 4 個樣本:

pn=i=03Pi4p_n = \frac{\sum_{i=0}^{3} P_i}{4}

提高取樣率後,三角形邊界可以被描述得更精確;縮回原解析度時,邊緣會自然形成平滑的過渡。

著色與成本

SSAA 會對每個子像素執行完整著色與深度測試。若多個三角形覆蓋同一輸出像素,先求出各樣本的可見顏色,再進行平均。因此品質很好,但 4x SSAA 通常也意味著約 4 倍的 Render Target/Depth Buffer 空間,以及接近 4 倍的著色工作量。

圖示

取樣覆蓋範圍
取樣不足的三角形
超級取樣後的三角形
原始樣本
單一三角形
多個三角形

參考資料

原理

SSAA(Supersampling Anti-Aliasing)先以更高分辨率渲染,再把多个子像素平均成一个输出像素。以 4x SSAA 为例,每个输出像素使用 4 个样本:

pn=i=03Pi4p_n = \frac{\sum_{i=0}^{3} P_i}{4}

提高采样率后,三角形边界能够被更准确地描述;缩回原分辨率时,边缘会自然形成平滑过渡。

着色与成本

SSAA 会对每个子像素执行完整着色和深度测试。多个三角形覆盖同一输出像素时,先计算各样本的可见颜色,再进行平均。因此画质很好,但 4x SSAA 通常也需要约 4 倍的 Render Target/Depth Buffer 空间,以及接近 4 倍的着色工作量。

图示

采样覆盖范围
采样不足的三角形
超级采样后的三角形
原始样本
单个三角形
多个三角形

参考资料

Principle

SSAA (Supersampling Anti-Aliasing) renders at a higher resolution and averages several subpixels into one output pixel. With 4x SSAA, every output pixel uses four samples:

pn=i=03Pi4p_n = \frac{\sum_{i=0}^{3} P_i}{4}

The higher sample rate represents triangle edges more accurately. Downsampling then produces a smooth transition along those edges.

Shading cost

Every SSAA subpixel runs the full shading and depth-test workload. When several triangles cover one output pixel, the visible color is evaluated per sample before averaging. The result is high quality, but 4x SSAA also needs roughly four times the Render Target and Depth Buffer storage and close to four times the shading work.

Diagrams

Sampling coverage
Undersampled triangle
Supersampled triangle
Original sample
One triangle
Multiple triangles

References

原理

SSAA(Supersampling Anti-Aliasing)は高い解像度でレンダリングし、複数のサブピクセルを平均して 1 つの出力ピクセルにする手法です。4x SSAA では、各出力ピクセルに 4 サンプルを使用します。

pn=i=03Pi4p_n = \frac{\sum_{i=0}^{3} P_i}{4}

サンプル数を増やすことで三角形の境界をより正確に表現でき、元の解像度へ縮小するとエッジが滑らかになります。

シェーディングコスト

SSAA は各サブピクセルで完全なシェーディングと深度テストを実行します。複数の三角形が同じ出力ピクセルを覆う場合も、サンプルごとの可視色を求めてから平均します。品質は高い一方、4x SSAA では Render Target/Depth Buffer とシェーディング処理が概ね 4 倍必要です。

図解

サンプリング範囲
サンプル不足の三角形
スーパーサンプリング後の三角形
元のサンプル
単一の三角形
複数の三角形

参考資料