ポストプロセス処理のアンチエイリアス「FXAA」だが、処理が軽くポストプロセスで処理できるのでMSAAやSSAAが使えない状況下でもアンチエイリアスを適用できるという利点があるものの、テクスチャのボケが大きかったり角度によってはジャギーが取りきれない箇所が発生してしまうという欠点がある。
これを解決するためにFXAAを改良したSMAAという新しいアンチエイリアスが考案された。
mrhaandi's crypto corner - injectSMAA
出来上がったばっかりなので組み込まれたゲームは存在しないが、DLLインジェクションによってDirectX9、DirectX10/11のゲームなら大半が適用可能となっている。
但しこの方法は、関係ないHUD周りまで一緒にアンチエイリアスがかかってしまうし、SteamオーバーレイやFRAPS等のツールが上手く動作しなくなる、マルチプレイのゲームだとチート検出に誤爆してBANされる可能性ありなのでシングルプレイのゲームしか遊べない。
試しに64bit HDRを有効にしているとアンチエイリアスが機能しなくなるスプリンターセルカオスセオリーで実験。解像度は1024*768、シェーダーモードはSM3.0、アンチエイリアスはオフ、その他設定は最高にしている。
見る際は画像をクリックして拡大を推奨
NoAA
通常時。ジャギーが発生している。
FXAA
ジャギーは軽減したもののライトの足部分のジャギーが完全には取りきれていないし、HUDの表示がボヤけているし、光が強く当たっている部分の壁テクスチャが若干潰れている。常用するにはちょっと抵抗がある。
SMAA
ジャギーは殆ど目立たなくなったし、HUDやテクスチャの劣化が最小限に抑えられておりじっくり比較しない限りは絶対に分からない。常用しても全く問題なし。
これは凄い。FXAAの欠点が殆ど解決しているのに、負荷自体もFXAAと差が殆どない。
画面の作りによってはSMAAの方がFXAAよりも汚いってケースが発生するかもしれないけど、これだけ見るともはやFXAAを使う意味が無い。今年はFXAAに対応したゲームが色々と出たけど、今後ポストプロセス系のアンチエイリアスはこれが主流になるな。