LAB
研究室
デモプログラム
【モーフォロジカル・アンチエイリアシング】 – Morphological Antialiasing –
今日は技術的な話題ということでアンチエイリアシングのお話をしてみたいと思います。
その中でも今ゲーム界で最もホットなアンチエイリアシング技法であろう『Morphological Antialiasing』を紹介してみたいと思います。
Morphologicalの発音は「モーフォロジカル(発音記号:m`??f?l?d??k(?)l)」で意味は「形態学的な, 形態学の, 形態上の, 形態的な」という意味です。
Morphological AntialiasingはMLAAと略されるようです。(以後MLAAと記述します)
この技法がゲームCGの世界で脚光を浴びたのは去年発売された『God of War III』で採用されたことが発端になります。
■Morphological Antialiasing in God of War III (Real-Time Rendering)
http://www.realtimerendering.com/blog/morphological-antialiasing-in-god-of-war-iii/
上記の記事では「PS3のSPU1基で20ms掛かっていたものを5基並列で最適化した結果、4msで実行可能になった」ということが紹介されています。
この技法は一般的なマルチサンプルアンチエイリアシング(MSAA)とは異なり、ポスト処理でフィルタ的にアンチエイリアシングを施す技法です。
例えとして正確ではないかもしれませんが「エッジ検出アンチエイリアシングの高精度判定版」というイメージです。
MLAAの特徴は、このエッジ検出にあり、エッジのエイリアシング(俗に言うジャギー)の形状を認識します。
(※論文内の図より抜粋です)
そしてそれぞれの形状に適した専用のブレンドフィルタ処理を行ないます。
(※論文内の図より抜粋です)
これによって必要最小限のブレンドぼかし処理となり、エッジ検出系のフィルタのなかで一線を画した高品質なものになっています。
原典の論文には品質は16xMSAAに匹敵すると記述されています。
実際にも高品質な見え方になっていました。
【出典】
■Morphological Antialiasing (pdf)
Alexander Reshetov – Intel Labs
http://visual-computing.intel-research.net/publications/papers/2009/mlaa/mlaa.pdf
では早速ですが恒例の実験タイムです。
ヘキサエンジンのデモシーンを利用して検証してみます。こちらのシーンです。
今回は技術デモプログラムとしてではなくスクリーンショットのみとさせていただきます。
デモを楽しみにされていた方には申し訳ありません。
又の機会に紹介させていただきたいと思います。
少し上からのアングルで比較検証してみます。
この中から際立って違いがわかる部分を拡大してみます。
上の図のA・B・Cの部分を拡大してみます。特に注目の部分は赤い矢印で示します。
まずはAの部分から。
劇的ですね。エッジのギザギザ感が完全になくなって綺麗になっています。
16xMSAA相等というのも頷けます。非常に美しい結果になっています。
続いてBの部分。
グリとブランの石像の曲面の滑らかさが良く出ています。
階段の段差の縁もツルッと綺麗ですね。
そして最後にCの部分。
右上の石柱の根元は非常に美しいエッジになっています。
…ところが、ヘキサドライブのEのマーク部分を見てみるとどうでしょうか。
なんだか歪んでいます。縁が削り取られたように丸くなっています。
画像認識処理でアンチエイリアシングを行なうMLAAの弱点がここです。
どうしても誤認識は起きてしまい、その場合にこのような意図しない結果を生む場合があります。
HUDなどのメニュー表示や文字の描画などに影響がでてしまう場合がありますので、MLAAをかけた後にメニューHUDを描画していくのが得策でしょう。
この技術はPlayStation3のCellの独壇場かと思われがちですが、Xbox360のGPUやPC上でも同様に実現が可能です。
AMD Radeon HD6000シリーズの発表以後、WindowsではCatalystドライバでも標準でサポートされました。
興味のある方はお手持ちのゲームでこのMLAAの威力を体験できますよ。
下記4Gamerのサイトの記事の中にもMLAAに関する技術紹介記事がありました。
■「Radeon HD6800」徹底分析。HD 5800から何が変わったのか?(4Gamer.net)
http://www.4gamer.net/games/016/G001684/20101105022/
このMLAAはその他にも大きな可能性を秘めており、MLAAのコストがMSAA有効時の増えるコストよりも下回るのであれば利用する価値が大いにあります。
MSAAを使わないことでメモリ帯域の消費が抑えられます。
各プラットフォームの性能を最大限に発揮できる足がかりがこのMLAAでもたらされたとも言えると思います。
ヘキサエンジンはこれからもどんどんパワーアップしていきます。
CATEGORY
- 製品事例 (7)
- デモプログラム (18)
- プログラムTIPS (41)
- C言語 (5)
- C++ (6)
- C++cording (4)
- Ruby (8)
- VisualStudioの使い方 (3)
- 最適化Tips (5)
- ゲーム開発テクニック (2)
- その他 (7)