円を描くとき、手書きならくるりときれいな曲線をひけるが、コンピュータグラフィックスには、単純な円をかくのがとても苦手だったりする。コンピュータグラフィックスは、縦線と横線もとてもきれいに描けるのに、ちょっと斜めになったとたんに、直線が描けなくなる。
これは、コンピュータが四角のます目(グラフィックスの専門家は、これをピクセルと呼ぶ)を塗りつぶすことで描いているためだ。曲線や斜線を描くと、四角います目の角が目立ってしまい、階段状の“ギザギザ”のようになってしまう。
アンチエイリアシングは、このギザギザを“目立たなくする”画質補正技術だ。「人間の目で認識できなくなるぐらい四角います目を小さくすればいいじゃない」というかもしれないが、そうなるとグラフィックスの演算処理が膨大な量となってしまい、いまのPCが持つ性能では円を描くだけでもいつまでも待つことになる。描画演算処理を抑えつつ、人の目にきれいな曲線や斜線に見えるようにするのが、アンチエイリアシングを必要とする理由だ。
アンチエイリアシングでは、ます目ごとに周りから一番平均的な色を算出して「近い色にぼかす」ことでギザギザを目立たなくする。この「平均的な色」を求める方法を工夫することで新しいアンチエイリアシングが登場する。初期に登場したSupersampling アンチエイリアシング(SSAA)では、ます目をさらに分割して(この分割したます目をサブピクセルと呼び、分割する数をサンプリング数と呼び、“4x”“8x”と表している)、そのなかで占める色の分布と割合から平均的な色を求めていた。
Supersamplingアンチエイリアシングでは、サンプル数を増やすほどギザギザが目立たなくなるが、それに伴い、演算処理の量も増える。そこで、演算量をさらに抑えるために考案したのが、Multisampleアンチエイリアシング(MSAA)だ。分割したます目の色を判断するポイントをます目の中心からずらし、“影”の描画計算(専門家はシェーディングと呼ぶ)は分割する前のます目の中央1点のみを使う。このことで、輪郭線のギザギザを目立たなくする効果が向上したのに、演算処理は控えめになっている。ただし、輪郭線の内側では、依然としてギザギザが目立ったままという問題があった。
この問題を解決するために考案したのがFXAAだ。それまでのます目をさらに分割したます目(サブピクセル)を使わず、周辺のます目との「明るさの違い」(輝度差という)をもとに、輪郭線の方向と長さを計算で検出し、その結果をもとに周りのます目と色を混ぜることで、色の変化をより自然にしてギザギザを目立たないようにする。
このように、アンチエイリアシングは、演算処理量を抑えつつ、より自然な色の変化でギザギザを目立たなくする方向に進化している。TXAAでは、8x MSAAを上回る画質を2x MSAAの演算処理負荷で実現することを目指した最新のアンチエイリアシング技術だ。
Multisamplingアンチエイリアシングのように複数の分割ます目の平均で色を求める手法では、ます目の境目に明るさの差(コントラストの差)ができるとギザギザが発生しやすくなる。そのため、TXAAで平均の色を求める処理では、ます目の境目を超えた範囲を参照することで、ます目の境目で明るさが大きく異なってもギザギザが発生しないようにしている。
ます目ごとの極端な明るさの違いに弱いMultisamplingアンチエイリアシングでは、HDRといった極端に明るいシーンを描く視覚効果に適用できない。そこで、TXAAは、平均化処理の関係式で直線ではなく曲線になる関数を用いることで、極端に明るい場所でも良好な平均化処理を行うようにしている。さらに、動画では前フレームの結果も参照することでより高いアンチエイリアシング処理効果が出るように図っている。
Copyright © ITmedia, Inc. All Rights Reserved.