「2014/05/18-02」の編集履歴(バックアップ)一覧はこちら
「2014/05/18-02」(2014/05/18 (日) 23:13:34) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
**FSAA
全く私とは無関係な質問が来たと思いきや、大昔にこの話題に触れたことがあるそうで...
いつも通り「やるやる詐欺」になっていたようです。
----
***FSAAとは
最初から分かり易い言葉で書くべきなのかも知れませんが
Battlefield4の日本語版では&b(){解像度スケール」と表記されている機能を指します。
英語版ではResolution Scaleになりますが、
初めてこの単語を見たときはさっぱり何の機能なのか理解出来ませんでした。
恐らく日本語で見ていたらもっとわからなかったでしょう。
&b(){Full Scene Anti aliasing}(FSAA)の事ですね。
なぜかBattlefield4では解像度スケールなどと表記されていますが。
----
***どのような機能なのか?
実はここで1時間ほど書いてから全て消しました。(苦笑)
表面は簡単な話なのですが意外と奥が深い。
奥の深い部分はばっさりカットして表面上だけ御説明いたします。
----
「フルスクリーン・アンチエイリアス」
Google先生に聞いて下さい。と書いたら怒られますのでもう少し書いてみましょう。
(でも専門サイトで絵や図のある解説を見た方が分かり易いと思います)
&b(){このFSAAは描画品質を向上させるための技法であり、}
&b(){10年以上前から存在する極めて単純かつ効果的な技術です。}
しかし、描画負荷が非常に高いため当初よりそれほど普及しませんでした。
そのため、FSAAの代替手段として前述のANTIALIZSING DEFERRED(MSAA)や
ANTIALIASING POST(省略形失念)が徐々に普及しており、
どちらもFSAAに近い描画品質を比較的低いGPU負荷で実現する技術です。
あまり他のゲームタイトルの状況は存じませんが、
Battlefield4の画期的(と言っても原理は単純)なところとして、
&b(){画質を下げる代わりに負荷を下げる手段にも使える}ことが挙げられます。
----
***いきなり結果を
&b(){下記の画像はGeForce GTX 660を使用し画質をウルトラに設定した上で、解像度スケールのみ変更したScreenShotです。}
&b(){画面解像度(画素数)1920*1080で取得していますが、本ページのレイアウトの問題により一部分のみ切り抜きました。}
&b(){まずは解像度スケール100%で描画しました。 (フレームレート 40fps)}
&image(Extract_100.png)
----
&b(){解像度スケールを上げて描画品質を比較します。}
&b(){解像度スケール150% (フレームレート 17fps)}
&image(Extract_150.png)
&b(){解像度スケール200% (フレームレート 8fps)}
&image(Extract_200.png)
----
&b(){次に解像度スケールを下げて描画品質を比較します。}
&b(){解像度スケール75% (フレームレート 53fps)}
&image(Extract_075.png)
&b(){解像度スケール50% (フレームレート 75fps)}
&image(Extract_050.png)
&b(){解像度スケール25% (フレームレート 78fps)}
&image(Extract_025.png)
----
いかがでしょう?
詳細な比較は専門サイトにいくらでもあると思いますので
そちらを参照いただくと宜しいかと。
----
***負荷が変わる理由
FSAAとはVRAM上に仮想的なモニタを作り出し、
一度そちらに描画した映像を縮小または拡大してからモニタに転写する技術です。
例えば、解像度1920*1080のモニタを解像度スケール200%で使用した場合は下記の通りとなります。
横 1920 * 200% = 3840ピクセル
縦 1080 * 200% = 2160ピクセル
縦も横も200%になりますのでピクセル数は4倍になります。
ちなみにこの画素数は見覚えのある方も多いと思います。
&b(){3840*2160ピクセルは4Kモニタと全く同じ画素数です。}
----
GPU内にはSP(Streaming Processor)と呼ばれる重要な論理回路が存在するのは御存知でしょう。
この論理回路が行う処理の一つとして「ラスタライズ」と呼ばれる処理があります。
これは仮想的な3D空間をある一点(FPSではプレイヤーの視点)から見ているものと想定し、
その映像を2Dのモニタ用イメージに変換する処理です。
&b(){&color(red){このラスタライズ処理はモニタの画素数にほぼ正比例した負荷が生じますが、}}
&b(){&color(red){解像度スケールが100%以外の場合はその2乗に比例します。}}
&b(){&color(red){そのため解像度スケール200%の場合には約4倍の負荷が生じます。}}
&b(){&color(red){逆に解像度スケールが50%であれば約1/4の負荷になります。}}
----
ちなみに上のScreenShotを取得した時に記録されたフレームレートでは
解像度スケールが50%になってもフレームレートは4倍どころか2倍にもなっていません。
これは単純な話で、前述の「負荷が1/4」になるのはラスタライズ処理のみであり、
SPはその他にも様々な処理を実行しているため、ラスタライズ負荷が1/4になっても
トータルの負荷は1/4にならないためです。
----
***個人的に思うこと
まず解像度スケールを100未満にする設定ですが、
これはあまり価値が無いのではないかと考えています。
過去に「GPU負荷が厳しければ解像度スケールを落とすことを推奨する」旨の記述をどこかのサイトで目撃しました。
個人的には一つの選択肢であるとは思うものの、根本的に別の対応で良いように感じます。
&b(){最初からモニタの解像度設定を落とせば良いのではないでしょうか?}
FullHD(1920*1080)モニタを使用していてもモニタ解像度をもっと低く設定すると、
解像度スケールを100未満に設定したケースとほぼ同じような効果をもっと低い負荷で得ることが出来ます。
解像度スケールで調整する方が微調整が出来るメリットもありますが...
次に200%設定ですが、こちらは激しく負荷が上がるため多くの環境で実用的ではありませんが、
4Kモニタに描画した場合とほぼ同じ負荷になると考えられるため、
いずれ4Kモニタを導入される予定のある方は試されるとよろしいかと。
----
使うなら150%ぐらいまででしょうか。
私のように60Hzモニタの方が常に80fpsはキープ出来ているような環境で、
もう少しだけ画質を上げる手段として使えるかもしれません。
(&Counter())
**FSAA
全く私とは無関係な質問が来たと思いきや、大昔にこの話題に触れたことがあるそうで...
いつも通り「やるやる詐欺」になっていたようです。
----
***FSAAとは
最初から分かり易い言葉で書くべきなのかも知れませんが
Battlefield4の日本語版では&b(){解像度スケール」と表記されている機能を指します。
英語版ではResolution Scaleになりますが、
初めてこの単語を見たときはさっぱり何の機能なのか理解出来ませんでした。
恐らく日本語で見ていたらもっとわからなかったでしょう。
&b(){Full Scene Anti aliasing}(FSAA)の事ですね。
なぜかBattlefield4では解像度スケールなどと表記されていますが。
----
***どのような機能なのか?
実はここで1時間ほど書いてから全て消しました。(苦笑)
表面は簡単な話なのですが意外と奥が深い。
奥の深い部分はばっさりカットして表面上だけ御説明いたします。
----
「フルスクリーン・アンチエイリアス」
Google先生に聞いて下さい。と書いたら怒られますのでもう少し書いてみましょう。
(でも専門サイトで絵や図のある解説を見た方が分かり易いと思います)
&b(){このFSAAは描画品質を向上させるための技法であり、}
&b(){10年以上前から存在する極めて単純かつ効果的な技術です。}
しかし、描画負荷が非常に高いため当初よりそれほど普及しませんでした。
そのため、FSAAの代替手段として前述のANTIALIZSING DEFERRED(MSAA)や
ANTIALIASING POST(省略形失念)が徐々に普及しており、
どちらもFSAAに近い描画品質を比較的低いGPU負荷で実現する技術です。
あまり他のゲームタイトルの状況は存じませんが、
Battlefield4の画期的(と言っても原理は単純)なところとして、
&b(){画質を下げる代わりに負荷を下げる手段にも使える}ことが挙げられます。
----
***いきなり結果を
&b(){下記の画像はGeForce GTX 660を使用し画質をウルトラに設定した上で、解像度スケールのみ変更したScreenShotです。}
&b(){画面解像度(画素数)1920*1080で取得していますが、本ページのレイアウトの問題により一部分のみ切り抜きました。}
&b(){まずは解像度スケール100%で描画しました。 (フレームレート 40fps)}
&image(Extract_100.png)
----
&b(){解像度スケールを上げて描画品質を比較します。}
&b(){解像度スケール150% (フレームレート 17fps)}
&image(Extract_150.png)
&b(){解像度スケール200% (フレームレート 8fps)}
&image(Extract_200.png)
----
&b(){次に解像度スケールを下げて描画品質を比較します。}
&b(){解像度スケール75% (フレームレート 53fps)}
&image(Extract_075.png)
&b(){解像度スケール50% (フレームレート 75fps)}
&image(Extract_050.png)
&b(){解像度スケール25% (フレームレート 78fps)}
&image(Extract_025.png)
----
いかがでしょう?
ScreenShot左上に3文字の漢字が表示されていますが
100%→150%→200%と順に精細に描画されているのがわかるとおもいます。
しかし、フレームレートの低下も激しくなっていますね。
詳細な比較は専門サイトにいくらでもあると思いますので
そちらを参照いただくと宜しいかと。
----
***負荷が変わる理由
FSAAとはVRAM上に仮想的なモニタを作り出し、
一度そちらに描画した映像を縮小または拡大してからモニタに転写する技術です。
例えば、解像度1920*1080のモニタを解像度スケール200%で使用した場合は下記の通りとなります。
横 1920 * 200% = 3840ピクセル
縦 1080 * 200% = 2160ピクセル
縦も横も200%になりますのでピクセル数は4倍になります。
ちなみにこの画素数は見覚えのある方も多いと思います。
&b(){3840*2160ピクセルは4Kモニタと全く同じ画素数です。}
----
GPU内にはSP(Streaming Processor)と呼ばれる重要な論理回路が存在するのは御存知でしょう。
この論理回路が行う処理の一つとして「ラスタライズ」と呼ばれる処理があります。
これは仮想的な3D空間をある一点(FPSではプレイヤーの視点)から見ているものと想定し、
その映像を2Dのモニタ用イメージに変換する処理です。
&b(){&color(red){このラスタライズ処理はモニタの画素数にほぼ正比例した負荷が生じますが、}}
&b(){&color(red){解像度スケールが100%以外の場合はその2乗に比例します。}}
&b(){&color(red){そのため解像度スケール200%の場合には約4倍の負荷が生じます。}}
&b(){&color(red){逆に解像度スケールが50%であれば約1/4の負荷になります。}}
----
ちなみに上のScreenShotを取得した時に記録されたフレームレートでは
解像度スケールが50%になってもフレームレートは4倍どころか2倍にもなっていません。
これは単純な話で、前述の「負荷が1/4」になるのはラスタライズ処理のみであり、
SPはその他にも様々な処理を実行しているため、ラスタライズ負荷が1/4になっても
トータルの負荷は1/4にならないためです。
----
***個人的に思うこと
まず解像度スケールを100未満にする設定ですが、
これはあまり価値が無いのではないかと考えています。
過去に「GPU負荷が厳しければ解像度スケールを落とすことを推奨する」旨の記述をどこかのサイトで目撃しました。
個人的には一つの選択肢であるとは思うものの、根本的に別の対応で良いように感じます。
&b(){最初からモニタの解像度設定を落とせば良いのではないでしょうか?}
FullHD(1920*1080)モニタを使用していてもモニタ解像度をもっと低く設定すると、
解像度スケールを100未満に設定したケースとほぼ同じような効果をもっと低い負荷で得ることが出来ます。
解像度スケールで調整する方が微調整が出来るメリットもありますが...
次に200%設定ですが、こちらは激しく負荷が上がるため多くの環境で実用的ではありませんが、
4Kモニタに描画した場合とほぼ同じ負荷になると考えられるため、
いずれ4Kモニタを導入される予定のある方は試されるとよろしいかと。
----
使うなら150%ぐらいまででしょうか。
私のように60Hzモニタの方が常に80fpsはキープ出来ているような環境で、
もう少しだけ画質を上げる手段として使えるかもしれません。
(&Counter())
表示オプション
横に並べて表示:
変化行の前後のみ表示: