Processingで実装されているアンチエイリアシングとそれに関連する技術について調べたのでまとめます。参考Unity2017.4.1アンチエイリアシング?例えばキューブをレンダリングするとき、エッジがスクリーンに対して斜めに描画されるとジャギーが生じます。これはピクセル密度が低い環境ほど顕著です。このようなジャギーを除去するための技術をアンチエイリアシングといいます。SSAAまず、シンプルな考え方で実装されるSSAAを紹介します。SSAAはまず1ピクセル内に4つのサンプリングポイントを作ります。すべてのサンプリングポイントにおける色をそれぞれ計算して、計算結果を平均化したものをピクセルの色とします。1ピクセルにつき4回計算が走ることになるので処理負荷が大きいです。MSAASSAAの処理負荷が大きい問題を緩和したものがMSAAです。MSAAでは1つのピクセルを描画する際に、ピクセルの色の計算のほかに4つのサンプリングポイントの深度を求めます。深度が大きいポイントの数が多いほど、描画前の色をブレンドする率を高くします。描画対象の色を薄めることでジャギーが軽減された色を持つピクセル色を得られます。色の計算は1ピクセルにつき1回なのでSSAAより高速です。深度により判別がつかないケースではアンチエイリアシングが効きません。UnityとMSAAMSAAはGPUでサポートされている機能です。Wikipediaそのため、Unityでは下記の通り設定するだけで簡単に適用することができます。チェックただしMSAAはDeferredレンダリングとの相性は悪いという特徴を持っています。www.slideshare.netそのため、UnityでもDeferredレンダリングではMSAAを使うことができません。unity3d.comFXAAFXAAはSSAAやMXAAと違い、ポストエフェクトとして処理するアンチエイリアスです。www.4gamer.net上記の記事によると、FXAAは次のような考え方で実装されます。各ピクセルとその周辺ピクセルとの輝度の差を求める輝度の差の情報からオブジェクトのエッジを推定するエッジにあるピクセルにどれだけオブジェクトが被っているかを推定するピクセルにオブジェクトが被っている比率に応じて周囲の色とブレンドするこの手法は処理負荷が比較的小さいようです。TemporalAAの説明TemporalAAもFXAAと同じくポストエフェクトによるアンチエイリアスです。TemporalAAは次のような考え方により実装されます。あるフレームでレンダリングをし、結果を保持しておく次のフレームで1ピクセル以内の違う位置にサンプリングポイントをずらしレンダリングする前のフレームの結果と合成してレンダリング結果とするこの手順により、エッジにあるピクセルのみ色がブレンドされるためアンチエイリアスが掛かります。直前の数フレーム分を合成してレンダリング結果とする実装もあります。直前数フレームを合成するということは、カメラが激しく動いているとブレた結果となってしまいます。これはモーションベクトルを使うことで防げるようです。Anti-Aliasing』TemporalAAは品質は高いものの、処理負荷も大きそうです。AAにこだわりが強い、かつ他のポストエフェクトでもモーションベクトルを使う環境であるならアリなのかもしれません。»プロフィールUnityエンジニア。グラフィックスへの興味が強めです。Blur(渦巻ブラー)のポストエフェクトを実装する月別アーカイブはてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。