アンチエイリアシングについてうまく理解できた

エイリアシングの原因は、ピクセルの大きさを考慮していないことである。カメラ視点からの一点のピクセルには複数の色が含まれる(例えば、遠くの景色・物体を画面上にレンダリングする時、どの物体の色をピクセル値にすればいいか迷うであろう)。この複数の色を平均化するのがアンチエイリアシングのメインアプローチとなる。以下ではUnity (Built-in Rendering Pipeline)で実装されている 2つの手法を紹介する。

  • Multi Sampling Anti-Aliasing(MSAA):ポリゴンの境界部分を綺麗にする手法。ピクセル内の複数箇所をランダムにサンプリングして積分値を近似する。

  • Texture Filtering:ポリゴン内部に貼られたテクスチャを綺麗にする手法。テクスチャをポリゴンに貼る時、ピクセル値の決定方法としては、UVの対応するテクスチャの色を取得しにいく(Fetch)。だがカメラ視点から遠くにある場合、画面上でそのオブジェクトは縮小されており、そのオブジェクトに対する画面上の1つのピクセルが、Fetchされたテクスチャ内の広い範囲を覆うことになる。この際、「範囲内の色を平均する」という処理が必要になるが、積分しておいたものをあらかじめ用意しておくことで、この平均化の計算を省略できる。これがミップマップ (Mipmaps) である。Mipmapsとはメイン画像に付随してそれを様々な大きさに縮小しフィルタリングした画像群である。(一枚の画像にまとめられている。)

参考:https://qiita.com/phi16/items/78f3760535c6b1fe63c7

いいなと思ったら応援しよう!