Fallout4も出ることなので、グラボの設定について一度まとめてみることにしました。GeForceの「3D設定の管理」だけです。Quadroは触ったこと無いしTeslaは見たことすらないです、すいません。
Skyrimに関しては、今回はENBは使っていない環境を前提とします。四角枠の中にアプリケーションコントロール時に使うSkyrimPrefs.iniの設定だけメモしてます。ENB環境下では設定が異なるので注意してください!
ENBに関連する項目だけ別記事作りました、この記事読んだ後にでもどうぞ。
※基本的にゲーム遊ぶのメインな人なので、用語怪しいかもしれません(汗)
CUDA-GPU
CUDAの設定。ゲームしたりモデリングしたり、色々お世話になります。よほど特殊なことしない限り使用制限をする意味が皆無なので、「全て」推奨。
※うっかりこの設定のチェック外してるとパフォーマンス的にえらいことになります。くれぐれも外さないようにです。
DSR
Maxwellで使える新機能。ディスプレイの実サイズを超える高解像度でレンダリングして、実サイズに落とすことで画質を上げる機能。例えば木の先っぽとか紐とか草等、2kだと消えるか消えないかの細いオブジェクトを、4kレンダリングしてから2kにすると綺麗に描画されると思います。 当然ですが負荷激増です。パワーの余る軽いゲーム用。
※(20151109訂正)現在のドライバだとDSRはKeplerとFemiでも動いてるみたいですね、GTX660渡した先から教えてもらいました。
DSR-係数
実サイズの何倍でレンダリングするかの設定。パワーの許す限りお好みで。
DSR-なめらかさ
実解像度にダウンサンプリングする際のフィルタ設定。こちらもお好みで。
アンチエイリアシング
AA。ジャギーと呼ばれる「ギザギザ」を取ります。キャラのエッジがギザギザしてるとか、ロードスクリーンで斜めにギザギザが動いてるとか、そういうのを無くします。
SSはアンチエイリアス無しの場合と、MSAA(8x)時の比較。
各オブジェクトのエッジ(輪郭)のジャギーがなめらかになってます。
仕様上、オブジェクトの輪郭にしか効果がありません。よってテクスチャは変化無し。
※机の右上、色が変わってるように見えますが、移動中の衛兵の影ですw
SkyrimではSkyrimPrefs.iniのiMultiSample=xでMSAAのサンプル数を設定。
モード
AAの適用方法。基本的には「アプリケーションによるコントロール」を推奨。
アプリケーションによるコントロール
コンパネから干渉せず、各アプリのAA設定に依存。AAの無いゲームだと何も起こりません。
オフ
強制オフ。少しでもFPS稼ぎたい場合に。独自のAA使ってる場合等は切れないかも。
アプリケーションの設定を強調する
AAそのものはアプリの物を使いますが、サンプル数を変えて効果を強くします。例えばMSAA 4x固定のゲームを8xにしたい等。コンフィグ設定が充実してるタイトルなら不要だと思います。
「設定」項目で適切に設定しないと意味が無いです。これもオリジナルな手法使ってる場合は多分適用できないです。
アプリケーション設定の変更
アプリ設定を無視して、コンパネ設定で強制上書きを試します。元々AAの無いゲームに適用させたい場合等。うまくいかない時もあります。
設定
2x、4x、8xと、AAにおける1ピクセルあたりのサンプル数。数が増える程精度が上がりますが、負荷も増えます。「強調」や「変更」をしている場合、ここで適切な設定してないと効果が出ないです。
「強調」なのにこの設定が「アプリケーションによるコントロール」だと、当然強調されません。
※多分こんな理屈じゃないかな?的な話ということで。数値や手段は実際と違うかもしれません。
3Dモデルは計算上の産物なので、元データは精度が高いです。でもディスプレイに映さないと意味が無いので、最終的にはピクセル解像度に落とし込む必要があります。
たとえばこんな真っ黒のオブジェクトと真っ白の背景があったとして。これを1000x1000ピクセル位使って表示できればいいですが、このように4x4ピクセルで表示しなければならない場合。使えるマス目は16個しかありません。中央4ピクセルは真っ黒でよさそうですが、エッジの部分を何色にしたらいいのかを考えてみます。
右下のピクセルについて、2x、4x、8xそれぞれの様子。サンプルポイントとかブレンド色とかアバウトなので、大体の概念以上のことは信用しないでください。
2x:サンプル2個とも背景なので、結果は真っ白。
4x:オブジェクトと背景がそれぞれ2個づつでRGB128。
8x:オブジェクト3個と背景5個でRGB161。
黒白の面積的割合からだと、8xが一番精度が高くなってます。
MFAA
Maxwellで使える新型AA。MSAAと構造が似てますが、フレームごとにサンプルポイントを変えて合成することで負荷が半分になってるみたいです。上の図の4xの例で言えば、本来なら1フレーム毎に4個サンプルを取る所を2箇所づつ2フレームに分けてサンプリング、1フレーム前の結果と合成して計4サンプル。分業ですね。
理屈としてはMSAAと同じ絵になる筈ですが、FPSが低くて絵が激変するとどうなんでしょう?そんな状況ではAA気にならないですかね(笑)
停止してSS撮影する分には、直前フレームも停止状態なのでMSAAと完全に一致する気がしますが、対応ゲーム持ってないのでSS撮れないです。すいません・・・
トランスペアレンシー
例えばSSの葉っぱ。実際は葉っぱの形をしたオブジェクトは存在せず、只の板ポリゴンです。部分的に透明にすることで葉っぱの形を作ってます。ガラス板に描いた絵みたいなもんです。つまり、オブジェクトとしての葉っぱのエッジは存在しないのでAAが適用されません。
そんな透過表現を使ってるオブジェクトに対するAA設定です。
SSはスーパーサンプル8xとの比較。Off(通常のMSAA 8xだけ)だと葉っぱのジャギーが残ってますが、トランスペアレンシーを適用すると綺麗に取れてます。ただし物によってうまく動いてくれない場合があります。
オフ
コンパネから触らないだけらしいのですが、僕の環境ではオフにしてるとゲーム側設定も切られてるように見えました。
マルチサンプル
MSAAを透過部分にも適用する感じだと思います(深度をどうしてるか知らないですが・・・)。負荷はそんなに無いですが、通常のMSAAと違って効果が微妙な印象。サンプル数はAA設定に依存するぽいです。
スーパーサンプル
SSのように効果は大きいですが負荷も大きめ。SkyrimだとRiften付近で使ってるとCTD要因になるかも?
SkyrimPrefs.iniのbTransparencyMultisampling=1で有効化の筈。
綺麗に見せるにはそれなりのパワーを食い、かつうまく適用されない場合があるという不確定さから、これだけ書いておいて何ですがオフ推奨です。
FXAAやSMAA(MSAAの誤記じゃないです)といったポストプロセス型のAAで対処するのが良いかと思います。
※Fallout4等のようにTAA(nVIDIAのTXAAはプラス独自要素?)の場合は、別途ポスプロ用意せずともこれだけでカバーしてくれると思います。ちょっと重めですが。
FXAA
ポストプロセス型のAA。MSAAやMFAAが3Dオブジェクトのシェーディング時にAAを計算するのに対し、こちらは2次元画像に落とした後に処理します。Photoshopでの画像処理みたいなノリ。処理自体は結構軽いそうです。
画像処理なのでテクスチャにも透明部分にも適用されます。反面、何にでも(?)適用されてしまうので、ちょっとボケ気味になりやすいかもしれません。上位のSMAAだと輪郭検知が優秀なのか、結構よさげな感じです。SkyrimではENB環境下でSMAA使用可能です。
シェーディング後の適用なのでMSAA等のAAと併用できます、必ずしも綺麗になるとは限りませんが。
ちなみにコンソール機でもFXAA使われてるらしいです。
先ほどの葉っぱを、トランスペアレンシーの変わりにFXAAを使った比較SS。
エッジではない葉っぱの部分にもAAが適用されてます。反面、奥の扉や壁がちょっとボケ気味です。Photoshopでぼかしフィルタしたみたいに。僕は比較しない限りきっと気付きませんが・・・w
SkyrimPrefs.iniのbFXAAEnabled=1でFXAA有効化。
ガンマ修正
AAで作ったブレンド色にガンマ補正を適用します。高輝度の背景に対してブレンド色の色がより馴染むようなのですが、どうも最近のタイトルでは殆ど機能してないらしいです。僕も色々頑張ってみたんですがダメでした・・・SkyrimとDarkSouls2で試しましたが一切変化を確認できず。
古いタイトルでうまく適用されると、馴染むというよりSSSによる透過っぽい印象の絵で、好みの問題ですが個人的にはoffにしたほうがいい気がします。
「全てのレンダリング結果にガンマ補正をかけて出力する設定」という説は誤りのようです。 あくまでAAの項目にある設定ですし。
アンビエントオクルージョン
光の遮蔽を計算することで、コントラストの効いた陰影ができます。オフ、クオリティ、パフォーマンスの3種類。
「クオリティ」と「オフ」を比較すると一目瞭然ですが、メリハリのついた陰影ができてます。景観のリアリティ向上に優れてる反面、非常に重いです。
オフ
コンパネからは何もさわりません。強制オフではないです。アプリケーションによるコントロールと実質同じかも?
パフォーマンス
効果が薄くなるものの、ちょっと軽くなります。「クオリティ」より軽いというだけで、この設定でパフォーマンスが上がる訳ではありません。当然下がります。
クオリティ
メリハリのついたAOが適用されます。オフ状態が真っ白に見えちゃいますね。FPSキラーで、物によっては2桁ダウンも珍しくないと思います。
テクスチャフィルタリング
テクスチャの貼りつけ方に関する各種設定です。
異方性フィルタリングの扱いに関しては、4桁番号のGeForceでも使ってない限り、現在では大した負荷になってない気がします。
クオリティ
ハイクオリティ、クオリティ、パフォーマンス、ハイパフォーマンスの4つ。コンパネから見えない所も触ってるかも?NVIDIAInspector使えば確認できるんでしょうか、使ったことないんで判りませんが・・・
見える所では、異方性サンプル最適化とトリリニア最適化の設定が、これ次第で変更されてます。
この設定で特にFPS変わった印象がありません。基本ハイクオリティにしておいて問題無いと思います。
異方性サンプル最適化
サイズに応じて異方性フィルタリングのサンプル数を減らしている?大小構わず16サンプルとか非効率、みたいな話でしょうか。
パフォーマンス的最適化なので、画質ありきの場合はオフ推奨。
トリリニア最適化
状況に応じて2つのミップマップからサンプリングするのをやめてバイリニアフィルタリングに切り替える?
これもパフォーマンス的な最適化なので、画質の最適化ではないです。こちらもオフ推奨。
ネガティブLODバイアス
(20171111)Skyrim依存箇所の混同及び認識違い等により、全文修正。
ミップマップの適用距離に影響するLODバイアスのマイナス設定を、許可するかクランプ(0固定)するかの設定項目。
公式にDirectXではサポートされてないことが明記されてます。358.87のリリースノート(20151104版)より引用。
Negative LOD bias clamp for DirectX applications is not supported on Fermi-based GPUs and later.
例えばこんなタイル状の床。遠距離になる程、小さなテクスチャ(ミップマップ)を適用していきます。
一番手前の赤い部分(LOD0)が原寸大テクスチャ、緑がその半分サイズ(LOD1)、青がそのまた半分(LOD2)・・・といったイメージ。
仮に原寸が2kテクスチャだった場合、こんな感じの解像度に。
ネガティブLODバイアスを許可することで、より遠くまで大きなテクスチャを使用できます。バイアス-1に設定されたタイトルであれば、0に比べて1段階遠くなります(一番手前は擬似的にLOD-1としてオーバーサンプリング?)。
バイアス0に比べ、エッジの立ったシャープな絵になっています。
DirectXでは「許可」固定で、クランプ設定は無視されるようです。マイナスに振ったタイトルの場合、細いオブジェクトがシャープになりすぎた結果、ブツ切りになってしまうことがある模様。
公式フォーラムの昔の投稿に、DirectXでクランプを有効化した改造ドライバによる、許可とクランプの比較画像がありますので、参考にリンク置いておきます。金網と電線を見ると一目瞭然。
LODに関しては、コメント欄に頂いたmichiru様のコメントも併せて参考に。
Skyrimでは0だと思います。ENB環境下なら-5.0~+5.0で設定可能ですが、こちらはNVCP設定とは別物と考えた方が良いかと。
こちらはENB環境下のSkyrimでLODバイアスいじった場合。テクスチャだけでなくLODモデルの切り替え距離も変わってます。
5だとDOSゲーみたいに荒いです。近距離でも小さいミップマップ使ってます。オリジナルサイズのテクスチャが全く意味を成さないので、ファイルサイズ増えるだけで無意味な設定だと思います。
0は標準状態です。
-5だと遠景まで高精度になってますが、動くとジャギーでまくりです。FPSはバイアス0の半分近くまで下がりました。
異方性フィルタリング
視点によって斜めだったりパースがついたり、いわゆる「立体的な奥行き」に合わせてテクスチャを先鋭化してくれます。
16xとの比較。遠くの絨毯の模様の鮮明さが一目瞭然。さほど負荷が変わらないので基本16xでいいと思います。LODテクスチャの先鋭化にも貢献してくれる優れもの。
オフ
強制オフです。ちょっと離れると地面がボケてるという場合は確認してください。
アプリケーションによるコントロール
コンパネからは何もさわりません。アプリ設定任せです。
2x~16x
ゲーム設定の強制上書き。サンプル数が増えると負荷も増えますが、ここ数年のグラボならあまり問題無いレベルだと思います。
SS見ての通り効果絶大。FPS対策で切るのはあまりコスパ良くないです、劣化が激しいので。
アプリケーションコントロールか、場合によっては16xで上書きするとより綺麗になるかもです。
SkyrimPrefs.iniのiMaxAnisotropy=xで設定。
その他
シェーダーキャッシュ
ゲームで使ったシェーダープログラムは終了時に廃棄されてしまうのですが、捨てずにHDD上にキャッシュしておきます。最大250MB。通常は必要に応じてゲーム中にコンパイルされるそうですが、キャッシュすることでその動作が無くなる為、パフォーマンスアップが期待できる模様。
スレッドした最適化
CPUの複数コアやHTのスレッドを有効活用するか否かの設定。ドライバの仕事の範疇の話で、これでゲームが自動的にマルチコアネイティブ対応!とかいう便利な物ではないです。
基本は自動でお任せしておけばOKです。古いゲームで不都合ある時はオフにした方がいいみたいです。現在でももしかしたらオンにした方が効果が高いタイトルもあるかもしれません。壊れること無いので実験してみるのもいいかもです。
垂直同期
フレームの更新タイミングをディスプレイのリフレッシュレート(VSYNC)に対してどうするかの設定。
※ちょっと怪しいです、間違いあるかもしれません。
3Dアプリケーション設定を使用する
アプリ側での設定を使用します。アプリで垂直同期の設定項目がある場合は、これでOK。
無い場合は以下の設定から選んでください。
オン
リフレッシュレートが60Hzであれば、この周波数に合わせて60fpsをきっちり描画することになります。ディスプレイの画像更新中にフレームバッファの中身が更新されない為、ティアリング(描画中に更新されることで画面に横線が入ったように見える)が発生しないです。
デメリットは、画像更新のタイミングが固定されている為、操作タイミングによっては遅延(多分1フレーム)が起こります。もう1つ、GPUがリフレッシュレート以上のFPSを常に出せない場合、FPSが激減する場合があります。トリプルバッファリング等の対策があるので必ずではないと思いますが。
60Hzであれば16.6msごとに、フレームを更新する「締め切り」がやってきます。仮にGPU先生が締め切りに0.1ms遅れて原稿を落とした場合、更新は次回に持ち越されます。次の更新までの16.5msは遊んでます。毎回これが起きた場合、わずか0.1msの遅延にも関わらず、2回に1回の更新頻度となり、つまり60fpsが30fpsまで落ちることに。締め切りコワイ。
オフ
同期しません。マイペースにフレームバッファを更新するのでティアリングが見える場合がありますが、GPUはフルにパフォーマンスを発揮できます。
適応
垂直同期可能なFPSが出てる場合は同期して、FPSが下がってきたら同期を切ってパフォーマンス優先。いいとこ取り設定です。シーンによってFPSが安定しない場合にいいかもです。
適応(ハーフリフレッシュレート)
適応設定を半分のリフレッシュレートで行います。重いゲームだったり、30FPS目標で省電力狙いの場合に。
トリプルバッファリング
垂直同期がオンの場合に発生するパフォーマンス低下を減らします。ダブルバッファリングだと2枚のフレームバッファが共にロック状態だった場合、次のフレーム開始までGPUがヒマになる、つまりパフォーマンスが低下します。
3枚目のフレームバッファを使うことで、このヒマ時間軽減と、ダブルバッファ時に起こりうるFPSの激減を解消します。
デメリットとして、バッファが増えてる分、使いきってる場合は遅延時間も増えてしまいます。
DirectXだとこの設定は無効化されてるようです(GLはOK)。アプリ側で設定されてないとダメぽいです。
レンダリング前最大フレーム数
GPUがレンダリングを始める前のフレームを、あらかじめ何枚バッファしておくかの設定。GPU君が色を塗る前に、CPU君は「下書き」を何枚まで描いてOK?みたいなものでしょうか。1~4の設定があり、設定したフレーム数分のキュー(読出し順序の決まったキャッシュ)ができます。
GPUが突発的にヒマになることが減るので、FPS向上に繋がることが多いです。
デメリットとして、キューの長さに比例して遅延が発生します。コントローラで操作したら即座に反応して欲しい所ですが、先にキューに入ってるフレームが処理されてからでないと出てこない為。垂直同期がONだと顕著。
1だと反応早いけどFPS落ちるかも、4だとFPS改善のかわりに反応速度ダウン。体感レベルは環境と人次第なので、試してみるのがいいかもです。
ダブル(トリプル)バッファリングがレンダリングの終わったフレームをVRAMにバッファするのに対し、こちらはレンダリング前のバッファだと思います。
電源管理モード
電力周りの設定で、通常は適応で問題無いです。
パフォーマンス最大化を優先にすると、アプリ起動時には常に最大クロックでGPUを回します。急激な負荷変動が起きても応答性能が高くなっている為、場合によってはカクツキの軽減に繋がるかも。常に全速力で走っているか、必要に応じてアクセルを踏むかの違いみたいなものです(加速中はタイムラグになる)。当然ながら燃費は悪くなるので、消費電力に伴う熱量と電気代の増大がデメリットになります。高いグラボ壊すと痛いです。個人的には、消費電力とトレードオフするには割に合わないと思います。
※クロック増大やそれに伴う電圧上昇で消費電力が上がるのは事実ですが、この設定にしてると常に最大消費電力になるというのは嘘です。
GPUやCPU等、処理が始まって内部のゲートがバタつきはじめ、電流を引き込むことで消費電力が大幅に上がります。処理が走ってなくてゲートが閉じてる状態では電流の引き込みが無い為、消費電力は上がりません。常時稼動してるブロックに関してはクロック増大に伴って消費電力が上がります。
以上でおしまいです!せっかくのグラボ、有効に設定して綺麗な画質で楽しみましょう。