Open4

AA・アンチエイリアシング【FXAA, MSAA, SMAA, TAA】(知見倉庫)

弖打(てうち)弖打(てうち)

【Unity】MSAA

  • MSAA(Multi-Sampling Anti-Aliasing)
  • 割と古典的な技術
  • モバイルGPUレンダリング(Tile-based rendering)との相性が良い
  • Differed Renderingには非対応
  • 周辺サンプリングが必要になるため、サンプリング負荷が高い、かつFrameBufferを消費する(x4の場合単純に画面解像度テクスチャ4枚分)
  • アルファクリップによるポリゴン描画をおこなう場合、ポリゴンの輪郭部分にはAAが乗らないため、工夫が必要(UnityではAlpha-to-coverageを使用して、アルファを考慮したMSAAをおこなっている)
  • 上記はCore-RenderPipeline packageの中のSharpenAlphaシェーダ関数を参照

https://www.youtube.com/watch?v=htzYbOZ-an0

弖打(てうち)弖打(てうち)

ここでもDefferedでSMAAは非効率という話が挙げられている
なぜDefferedでSMAAは非効率?

  • G-BufferをすべてSMAAに対応する必要がある
  • ライティングはサブピクセル単位(ディスプレイ上の1つの画素(ピクセル)を構成しているRGBの単色の各点のこと)でおこなわなければならない
  • ライティング後のカラーに対して処理が必要
  • SSAA(周辺4ピクセルの平均をとるAA手法)と変わらない

DefferedではFXAA、MLAA、TAAを採用することが多い

サブピクセルを利用するAA
->MSAA、TAA
サブピクセルを利用すると、細いジオメトリが千切れてしまう問題が軽減する

https://www.slideshare.net/SatoshiKodaira/ss-69311865