« NVIDIA Inspector 覚書(おぼえがき) グラフィックス編 - Sync and Refresh セクション | メイン | NVIDIA Inspector 覚書(おぼえがき) グラフィックス編 - Texture Filtering セクション »

2014年07月20日

NVIDIA Inspector 覚書(おぼえがき) グラフィックス編 - Antialiasing セクション

その3、Antialiasing セクションです。
文字通り、アンチエイリアシング設定に特化した項目となります。


Antialiasing - NVIDIA Inspector先日のビット値に圧倒された人たちも、今日のお題が「ゲーム体験を激変させるほど」の項目として一番要な「アンチエイリアシングの掛かり方」を調整する項目ですので、ぜひ押さえてくださいね。

私のプロファイルからもしも手直しをされる場合、一番やりやすく、そして効果が顕著に認められるところとなります。それていて「特に重要なのは2~3カ所」くらいなので、残りは「この設定のままでいいんだ」と覚えられたらよいでしょう。

ただし、それも「『Antialiasing compatibility』が適切な値となっているか?」が前提条件です。かすりもしない値では、どれを選ぼうと効果が認められないことでしょう。それくらいにビット値を見極めることは重要な前準備となります。改めて、かみしめてくださいね。

本稿を読み進める前にアンチエイリアシング(Anti-Aliasing:略してAA)の概要を知っておくと、スムーズになる部分もあると思いますので。よくわからないという方はこちらの記事でも参考にし、予備知識を持っておくといいでしょう。

NVIDIA,独自のアンチエイリアシング技法「FXAA」「TXAA」をアピール。いまあらためて振り返るアンチエイリアシングの歴史

では、順に取り上げますね。


「Antiailiasing - Behavior Flags」

アンチエイリアシングの優先順位(ゲーム内の設定を優先させるか、本ソフトでの値を優先させるかetcetc...)を決めるフラグで、基本は初期値の「None」で問題ありません。特別なゲームには独自の値が割り当てられています。

設定値の特徴として、「Treat A as B(AをBとみなす)」「Disable A(Aを無効とする)」といった形で記載されています。英語のお勉強ではありませんけど、括弧内のように訳することができれば、難しいことはないはずです。

例として「Treat 'Override any application setting' as 'Application-controlled'」なら「アプリケーション設定値を上書き を アプリケーションの初期値 と見なす」となりますし、

「Treat 'Enhance the application setting' as 'Override any application setting'」なら「アプリケーション内での拡張設定値 を アプリケーション設定値を上書き と見なす」となります。


一見ややこしそうですが、基本的には「アプリケーションが、アンチエイリアシングの設定値を持っていない=独自の設定値も何ももっていないことに他ならない」わけなので、「None」を選ぶことで「以降の設定値をそのまま代入する」ことになります。

私が公開しているプロファイルには「Disable 'Enhance the application setting'(アプリケーション内での拡張設定値 を 無効化する)」という内容にしていますが、

これはいわば(言葉が失礼ですみませんが)「PSO2プログラムが『完成されたソフトでない』ため、『どのような不具合が起こるか予想できない』ことから、『アプリケーションからの横やりは一切受け付けない』=干渉を防ぐ」設定値としているのです。

こうすることで、以降の設定値が「より確実に適用されるよう」、フラグを立てているといった感じです。この部分が正しく設定されていないと以降の値が全く効きませんので、適切に設定する必要がありますけど、

『迷ったら 'None'. 覚えておいて・・・』(byマールーさん)とのことなのでした。


「Antiailiasing - Gamma correction」

3D映像のガンマ値を補正する役割を持っており、より3D映像を見栄えのする調整を行うとされています。ゆえに内部でどのような処理を行っているかまではわかりかねますが、綺麗に見せることがメインとなるはずですから「On」で問題ありません。


「Antiailiasing - Line gamma」

上記ガンマコレクションを細かいところ(線分)にまで適用するか、のようですが詳細は不明。ですが、根本的な部分としてこちらは「Open GL」で描画される3Dオブジェクトにのみ有効ということ。ですので、DirectX系列のゲームには不要な項目となります。ゆえに「Default」で問題ありません。


「Antiailiasing - Mode」

本値が一つ目の関門で、「アンチエイリアシングの動作条件をどうするか」になります。ソフトウェアによってはNVIDIA社のアンチエイリアシングをソフト内から設定できるものもあるため(これが大半のはずでしょうが)、ソフト側の設定を優先するのか否か、などの部分となります。

こちらは「Override any application setting」(アプリケーション設定を上書きする)=inspector側の設定を優先する、が正解となります。誤らないように気をつけましょう。ほか2つはソフトに準じた挙動となります。

そもそもソフトで度合いを設定できるようなものは、細かく映像をコントロールできるはずですから、このようなソフトに頼る必要もないはずです。納得がいかないからこそ自分で編集する=アプリケーションは当てにならないとなるため、上書きの一択状態なのです。気をつけましょうね。


「Antiailiasing - Setting」

最大の山場。いわゆる「アンチエイリアシングの精度を決める」部分となり、「見栄えと負荷が如実に変わる部分」となります。プルダウンを選ぶと多数の項目が現れますが、下に行くほど数字が増えることが確かめられるはずです。その順に負荷がどんどん高まります。

やがて xS といった文字も現れますが、このあたりから「画面解像度の縦横のx倍を演算する」パラメーターになりますので、飛躍的に重たくなります。その際の読み方は「横×縦」となりますので気をつけましょう。

一例を挙げるのなら、「1x2 [1x2 Supersampling (D3D only)]」は「横はそのままで、縦だけ2倍に拡大演算し、再度縮小化したときの差分をとってアンチエイリアシングを行う(Direct 3Dモード時専用)」といった意味合いになります。


どのくらいきれいにできるかはカードの性能、そしてご自身が求める動きのなめらかさに依存しますので、どの値が正解というのはありません。「このくらいあればいいかな」という項目を選びましょう。

CSAA・・・Coverage Sampled Antialiasingはいわゆる「圧縮機能付きMSAA」といったところで、画質的なメリットはあまりありませんので、積極的に選ぶ必要はないでしょう。試してみて、綺麗に見えるのなら選ぶ、程度で。

末尾に「S」がつくモードについてですが、主に使われるのは「8xS」「8xSQ」「16xS」「32xS」あたりでしょうか。いずれもスーパーサンプリングと呼ばれる方法を用いたものになります。詳細については二つ下の項目で補足します。


アンチエイリアシングの精度比較図 byアレンティーさん各モードの効き具合についてはこちらの画像が手助けになるでしょうか。かつてPSUで記したお題のなかからアレンティーさんを拝借なのです('-'*) エルフを模したニューマンさんの、とがった耳が特徴となるわけですけど。水平に近いながらもなだらかに傾斜している部分の輪郭が、精度を上げるごとになめらかになっていくさまに注目です。

また、下段のSSAAモードは「髪型の部分や目の部分にもアンチエイリアシング処理がかかっている」ことも確かめられるでしょう。それほどまでにSSAAモードでの画質改善効果は劇的なものがあり(ちらつきがほぼ消えるのです)、パワーに余裕があるのでしたら(積極的に?)狙っていきたいところです。

今、あえて見所を記載したわけですけど、「指摘されなければそこまで気づけなかった」方は、SSAAモードを選ばれる必要性が下がるのかな、といったところです。ただ、あくまでも「静止画をキャプチャーされる」方です。動画においては劇的な違いがもたらされるので、決して侮ることはできません。

その意味するところは、こちらのムービーではっきりと確認できることでしょう。

「Antiailiasing - Transparency Multisampling」

アンチエイリアシングを「半透明領域を含むオブジェクトにも」かける項目となり、その技法として「マルチサンプリング」を使うという内容です。

ですが、半透明マルチサンプリングは精度、見た目ともに優れたものとはいえず、入れるくらいならOffにするのが常といわれます。つまり、効果がほとんど得られないと。

ゆえに「Disabled」となるのですが、もしもEnabledにした場合は、次の『「Antiailiasing - Transparency Supersampling」を「Off / Multisampling」としないと働きません』ので、注意してくださいね。


「Antiailiasing - Transparency Supersampling」

上記「半透明アンチエイリアシング」において、「スーパーサンプリング」の技法を用いるものとなります。略語として「TrSSAA」と呼ばれたりもします。

マルチサンプリング方式よりも精度が上がるのでこちらを使用するのが常ですが、負荷が飛躍的に増大するため、非力なグラフィックスカードではパフォーマンス低下の引き金となる、難儀な部分です。細い部分(金網や針金、髪の毛、地面に生える草木など)を表現する際などによく使われているとのことです。

少し進んだ中にある「Sparse Grid Supersampling (SGSSAA)」は輪郭構成要素検出機能付きスーパーサンプリングといったもので、「ほぼ画面全体にわたり計算する=テクスチャのジャギーにも作用する」さらに重たい設定です。そのため、よほどパワーがある環境でない限り選べない項目となるでしょう。下手をするとベースのアンチエイリアシングで「xS」モードを選ぶ方が軽くなるといったことも。

SGSSAA方式はNVIDIA社でも「サポート外=非公式なモード」とされていますので、自己責任の意味が強く出る部分となります。とことん突き詰めたい人だけ、トライしてみてください。なかなか難しいですよ('-'*)

パフォーマンス低下が著しい項目となるため、「パソコンの性能が足りていない」と実感する方は「Off / Multisampling」、用いてみたい方は「2x~4x Supersampling」あたりを選ぶといいでしょう。


半透明部分の処理はとてもリソースを消費するため、動作速度を優先したい=負荷を下げたい場合はOff推奨です。そもそも、半透明=それほど見た目に影響しない部分が多いことから、そこまで徹底的にアンチエイリアシングをかけなくても、大きな差異は感じられないのが一般的です。よりこだわりたい方向けのパラメーターといえますね。

目安として、設定する場合は「GTX x70以上のカードが推奨」となります。「x60以下は設定されないこと」をおすすめします。それよりは「引っかからずに3D映像が動く」ことで得られる「動きのなめらかさが、逆にちらつきを抑える」効果を体感しやすいはずですので。

このあたりは最後のお題にまとめますが、本話題に限らずパソコン全般にいえることとして、「バランスが大切」だということですね。


☆上記項目には注意事項が複数あって・・・☆

まず一つ目に「Antiailiasing - Setting」で選んだ、「ベースとなるアンチエイリアシングの精度よりも高いものを指定しても意味がない」原則があります。

例えばベース側で「2x [2x Multisampling]」を選んだ後、半透明側で「4x Supersampling」を選ぶと、「ベースとなるのが2x精度のアンチエイリアシング」に対し、「半透明は4x精度」となり、『ベース<半透明では画質改善が見込めない』ものとなってしまいます。そのようなルールになっているのです。

ゆえ、必ず『ベース>半透明』、としなくてはなりませんので気をつけてください。


また xS 系は末尾にサンプリング精度の値が書いてあり・・・例えば「8xS [Combined: 1x2 SS + 4x MS]」であれば、後ろにある「4x MS」が「4x [4x Multisampling]」を意味しますので、その場合は半透明アンチエイリアシングのサンプル数を、「2x Supersampling」「4x Supersampling」のいずれかから選ぶことになります。8xは選ぶ意味がない、ということですね。

あるいは、Sparse Grid Supersampling - SGSSAA を用いたい際は「ベースと精度を等しくしてこそ最大の成果を得られる」しきたりがあるそうですので、「4x [4x Multisampling]」+「4x Sparse Grid Supersampling」などが、最も成果を上げられる組み合わせとなります。数字を揃えよ、なのです。

つまるところ、半透明のそれを2x精度にしても「最高の改善効果が得られない」というわけですね。その際は SGSSAA ではなく Supersampling にグレードを下げる必要があるでしょう。

ただ、あくまでも「基本ルール」なだけですから、大切なのは「ご自身の目にあう設定を見つけ出すこと」に変わりはありません。いろいろ試してみましょう。ゲームタイトルによってはバグなどで、効き具合に差がある可能性さえありますからね(PSO2のことです・・・)。


さらにSGSSAAと、Settingの最後に書いた「末尾に『S』がつくモードについて」ですが、この2つは画面全体にアンチエイリアシングを施すため、場合によっては演算精度などの兼ね合いから「ややぼやけたようなイメージになる」こともあります。

自動調整される仕組みとなっていますので問題はないと思われますが、見た目が眠たい場合は「そのときに調整する別のパラメーター」が用意されてはいます。Texture Filtering セクションになるので後日の紹介となりますが、この2つは「別のパラメーターも同時に設定する必要があるものなんだな」、と覚えておいていただければ。


おまけとして、SGSSAAは「高精度な半透明アンチエイリアシング処理」モードとなっており、その特性上「CSAAモードのアンチエイリアシングがベースにかかっている際はおすすめしない」ようです。

元々、CSAA自体が「圧縮機能付きMSAAモード」的な役割を果たしていますので、「仮想的にサンプル数を増やしたもの」に対して重たい処理を加えても、「正しい演算結果にならない=見栄えが美しくなるとは限らないどころか、下手すると本来ならあり得ない演算結果・・・映像になる恐れもある」、ということです。

人によってはめざとくその部分を見つけ、指摘できる場合もあるかも知れません。言い換えるのなら「最大限綺麗にする場合、CSAAよりMSAAやSSAAを用いるのが定石」、にもつながりますね。

一番綺麗に表示できるのは「xSモード」ですが、負荷が半端のないくらいに上昇してしまい、最悪カードの損傷に至る場合もあります。利用時はくれぐれもお気をつけを。

補足として、ゲームタイトルによっては正常描画ができない恐れもありますので(PSO2のことですが(汗笑))、ここも試行錯誤で「どの設定値が、一番見栄えするのか」を、ご自身で丹念に比較・検討する必要があるでしょう。


「Enable Maxwell sample interleaving (MFAA)」

2014年9月に発表された、GTX 980/970などが属する、900番台のシリーズ。こちらのGPUチップのコードネームが「Maxwell」とされていますが、その新チップから採用された新しいアンチエイリアシング技法。ドライバーバージョン・344.75 WHQLからサポートされた機能です。

具体的には「前後のフレームを参照し、アンチエイリアシングを行うサンプルポイントをずらし、重ね合わせて差分を比較する」ものとなっています。詳しいことはこちらのNVIDIA社公式のサンプルムービーでもご覧になってみてください。

MSAAの効果を高める狙いがあり、原理的に「現在割り当てているMSAAの精度を2倍相当に表現する」機能となっており、たとえば2xMSAAにMFAAをかけると4xMSAAに近い演算精度、アンチエイリアシングがかけられる・・・と謳っています。このときの表記を「4xMFAA」とします。

同様に4xMSAAにMFAAをかけると「8xMFAA」(8xMSAA相当の品質)、8xMSAAにMFAAをかけると「16xMFAA」(16xMSAA相当の品質)、とみなすようですが、実際にこのパラメーターが使えるのは「ソフト側でMSAAをサポートしている場合」に限定される模様です。

ゆえ、実際に効くかどうかはご自身でカードを所有し、試してみるほかないでしょうね。パフォーマンスロスはほとんどないとされていますので、使えるにこしたことのない機能といえるでしょう。

注意点として、フレーム間参照を行う仕組みであることから、できるだけフレームレートを高めに取らないとならないという点。少なすぎるとサンプルポイント抽出がうまく行えず、不整合(アーティファクト)がおきる恐れがあるとのことです。

その目安となるフレームレートは、60fps以上を推奨とのこと。まさに上位カード向けの機能といえるでしょうね。


「NVIDIA Predefine FXAA Usaged」

数年前から出た、新しいアンチエイリアシング技法「FXAA」を用いるものになります。負荷が飛躍的に軽くなるので、グラフィックスカードの性能が非力なものほど恩恵を受けやすいです。

ですが、こちらも「画面全体にアンチエイリアシングを施す」ものとなり、「細かい調整が全くきかないもの」となるため、試しに有効=Allowedにして、好みの見栄えにならなかったら初期値の「Disallowed」に戻しておきましょう。

この項目はNVIDIA社が規定値として持っているFXAAを許可するか否かといった項目となるようです。ゲームタイトルによっては独自のAA設定(それがFXAAに相当するものなのか、別のものなのかはわかりかねますが)を持っており、その上で同社の推奨値を適用するか否かと。

ですので、ゲームタイトル独自のFXAAを持っている場合、あらかじめDisallowedにされているケースが多いようです。「NVIDIA準拠のものは使わないよ」、と。

PSO2ならまさにゲーム内オプションにあるアンチエイリアシングがそれにあたります。その項目はNVIDIA社のアンチエイリアシングとは全く異なるものとなります。

FXAAと上記のMSAAをはじめとしたアンチエイリアシングとは全くの別物なので、重ねがけをすることも可能です。MSAA系のアンチエイリアシングと相性はいいですね。家庭用ゲーム機にも採用されつつある、汎用性の高いモードです。

ただし、致命的な部分として「飛躍的に軽くなる代わり、画面撮影=キャプチャーなどには反映されない」仕組みとなるため、あくまでも「見たまま楽しむだけ」となります。「撮影には効果が及ばない」点を、押さえておいてくださいね。


「なぜ軽くなるのか?」ですが、今までに紹介してきたものは「3Dオブジェクトをすべて綿密に見極めて補正する」のに対し、FXAAは「画面全体を一つの絵として見なし、その中での『斜線とおぼしき部分』に狙いを定めて処理を加える」といった手法になっているものです。

そのため、「物体を詳細に=3Dの演算をしなくなる=2Dの平面表示を処理するようになる」のが大きいのです。逆に今まで処理されなかった2D部分(文字やインターフェースなど)にも手が加わるため、「文字などがややソフトに見えやすくなる」のが難点でしょうか。人によってはあわないかもしれませんね。

お使いのモニターなどに「シャープネス機能」が備わっているのなら、ちょこっとだけ振ってあげるといいでしょうね。最近話題の液晶テレビなどを接続されている場合は、狙ってみる価値はあると思います。


「Toggle FXAA Indicator on or off」

上記FXAA UsagedをEnabledにすることで、FXAAが有効になるわけですが、有効時に「画面左上に緑の四角いマークをつけて『有効であるかどうか』が判別できるようにする」ためのパラメーターです。

ゆえ、Onになっているかを確実に確認したい場合は「On」、不要なら初期値の「Off」で差し支えありません(スクリーンショットにももちろん反映されません)。


「Toggle FXAA on or off」

FXAAを使うか否かの項目です。上記「NVIDIA Predefine FXAA Usaged」を「Allowed」とした場合は、こちらも「On」にしましょう。「Disallowed」ならもちろん「Off」のままです。

初期値は組み合わせとして「Allowed/Off」となるわけですが、有効にする際は「Allowed/On」にする必要があると覚えておけたらいいのです。


∮ ∮ ∮

いかがでしたか。結局長めになってしまいましたが(@_@) 摩訶不思議なビット立てよりは、だいぶ把握しやすい項目にはなったことでしょう。しかしながら設定する意味が一番大きい、重要なところになります。


「数字が高いアンチエイリアシングをかけると、それだけきれいになる分、重たくもなる」ということや、「半透明アンチエイリアシングは、ベースとなるアンチエイリアシングよりも精度を下げないとならない」。

「SGSSAAを選んだ場合は、ベースの精度と等しくなるものを選ぶ、かつベースに圧縮機能(=CSAA)も使わないこと」「xSモードやSGSSAAは画面全体にアンチエイリアシングがかかるため、場合によっては別パラメーター(LOD Bias)の併用が必須となる」etcetc...。

選ぶだけなら簡単かもしれませんが、「効果を最大限に引き出す仕組みを理解して設定する」には、「多くのルールを知っておかねばならない」わけなのです。奥が深いとする理由は、ここにあったのですね。


「最大設定すれば最高に綺麗になる」的な、ブルートフォース=力押しを闇雲に目指すのは、賢くないと。よほどパワーのあるマシン環境でもない限り、難しいということ。その際はSLI構成なりが必須となりやすいのです。

主にこの部分のパフォーマンスを上げるには、映像を出力する部分となる「ROP=Rendering Output Pipelineの数を増やす」ことが効くとされ、それゆえカードの数を増やしたり、デュアルGPUカード(1枚のグラフィックスカードに2つのGPUが搭載されている>GTX 590/690/TITAN Z)を用いるなどが改善策となります。

そのような環境になるということは、ぱそ子さんのスペック自体もいいものでないと真価を引き出すことがかなわず、全体を司るCPU=Central Processing Unitの性能も要求されるようになります。それゆえ「バランスが重要になる」わけなのです。


本稿を読み終えた後なら、PSO2プレイヤーさんは「私が配布しているプロファイル、どのような意味を込めているのか」も、つかみやすくなるのではないでしょうか。

ただし、改めて記しますが「適切なアンチエイリアシングビット」がたっていてこそ、初めて効果をなす項目だということだけは、決して忘れませんように。

しっかりとしたビット立てをなくして、本セクションを検討する意味は「全くない」のです。


おまけ:SSAAとSGSSAAの微妙な違い

From : lavendy | 13:00