ようやくSteam VRで「Batman:Arkam VR」がリリースされた。PCならではの高画質ビジュアルで楽しみたい所だが、グラフィックオプションの項目が通常のゲームとは異なるため分かりづらい。
そこで各オプション項目がどのようにVR内のグラフィックに影響を与え、またGPU負荷が変化するのか検証してみたのでメモとして残しておく。
PSVRから半年を経てようやくPCVRに移植
「バットマンアーカム」シリーズのスピンオフとも言えるVRタイトル「Batman:Arkam VR」。PSVRでは2016年10月にリリースされていたが、時限独占タイトル扱いだったようで、半年のタイムラグを経てようやくSteam VRに移植され、htc viveやOculus Riftユーザーも遊べる様になった。
短編ながらもAAA級のゲームを開発しているデベロッパーによるグラフィック品質はトップ級で、PCVRの性能を試してみたくなるテクニカルデモの様な作品に仕上がっている。
Steamストア
グラフィックオプション項目
大きく分けて2項目
さて早速ゲームオプションの項目を見ていく。「バットマン:アーカムVR」のグラフィックオプション項目は現在、大きく分けると「レンダリング内部解像度」設定と「視野中心外の解像度」設定の2種に分かれている。
HMDパネルの中央より外の解像度を下げて負荷軽減
デフォルト状態では中心周辺のレンダリング解像度は低く設定されている。VR体験中は視野中央を覗いてる事が多いため、このような最適化を行う事でGPU負荷の軽減を図っており、「バットマン:アーカムVR」では、この部分を細かく調整出来るようになっている。
では各項目を確認してく。ページ終盤に計測を踏まえた上での簡潔な設定方法を記載している。
*4Kモニタで作業用しながら計測を行っているため、実際のGTX1080 TIだと以下事例より少し負荷に余裕が出ると思われる。
画素密度
おそらく内部のレンダリング解像度にあたる項目。描画解像度を高くする事で精細な映像を出力する。勿論パネル解像度の限界もあるが、見た目のクオリティ・精細感は大きく向上する。ただし値を上げる事でGPUの負荷は大きくなるため、性能に合わせた適切な設定が必要だ。(GPU名でデフォルト値を判別している可能性もある)
各解像度の値は以下のとおり。htc vive,Oculus Riftのパネル解像度の2160×1200を100%の基準として%で倍率を指定する。(以下のピクセル密度はパネル中央部分のみでなく全体に換算した場合の値となる。)
140%で4K相当、280%だと6K相当と通常のゲームでは実現出来ていない非常に高い解像度を求められる事が分かる。実解像度と内部解像度で単純な比較は出来ないが、90フレーム維持という事を踏まえるとVRに求められるGPUパワーを実感できる値だ。
視野中心部の各値の見た目変化
*概ね合わせているが実際のhtc viveパネルと完全一致は難しいので見た目の誤差はある
左:100% 右:150%
左:200% 右:280%(最大値)
部分拡大
HMD見ても200%以上は差が分かりにくいが、文字の内部のディティール等を見ると最大値280%では細かい模様まで視認する事ができる。
左:100% 右:280%
設定値によるGPU負荷の変化
GTX1080TIでデフォルトの「固定中心窩」設定で計測したGPU負荷が以下。快適なVR体験のためには11ms以内が目安となる。他のGPUでも参考になる様に負荷の上昇度合をグラフに纏めた。
デフォルト設定だと、GPUの負荷上昇率は想像より低い。「Fixed Foveated Rendering」が良く効いてるのか、最大値の280%にしても6ms程度に収まっている。
視野の中心の解像感はVR体験に直結するので、この部分は優先的に高い値を維持したい。
画素密度(縁)
こちらは「液晶パネルの中央より外部分」(フチ)の画素の細かさを設定する項目。頭を動かさず、目線のみを外側に向いた際に、露呈する低解像度レンダリングの度合いを変更できる。上述した画素密度に対しての割合を「%」で指定する。
見え方の比較
値を上げるほど密度は向上するが、負荷軽減効果が急激に低下してしまう。60%以上は負荷が高まる割には、実際のHDM視野内での見た目の変化は小さい。60%以降は意図的に注視しないと気づかないレベルに収まっていく。
30%
60%
90%
GPU負荷の変化
60%以上から急激に負荷が上がっていく。また数値を上げるとスパイクも目立ってきて、11msを瞬間的に越えるような局面が増えてくる。
通常プレイで気になる場合は数値を上げるしかないが、大して気にならなければ数値は低い方が快適にプレイできる。
マルチ解像度レンダリング
最適化のためのレンダリング方法を指定する項目。以下の3種の中から選択できる。
固定中心窩(か)
Fixed Foveated Renderingと思われる。液晶パネル中心のみ高解像度で描き、周辺部は低解像度で描く。アイトラッキングの様に視線を判定して追跡するわけではないため、目線のみを周辺部に移動させると露呈するが、GPU負荷の軽減効果は非常に大きい模様。
NVIDIAマルチ解像度
NVIDIA Gamewoksの一部である「Multi Res Shading」を用いた最適化手法。「固定中心窩」の様に描画マスクがなく、一見すると無駄があるように見えるが、視野の外周部分を低解像度で描画するというアプローチは同じで、Maxwellで実装された1パスで複数の解像度を分割描画する機能でGPU負荷は抑える事ができる。
3×3の9分割されており、周辺部は中央の30%の解像度でレンダリングされている。固定中心窩と比較すると、同じ設定値でも描画品質は良く見える。
フル解像度
周辺部の解像度を落とす事なく、パネル範囲全体を設定したリアルサイズで描画する。周辺部も高解像度で描画されるため、品質は最も高いが描画負荷は非常に高くなる。プレイ中ほとんど焦点が合わない箇所にもGPUパワーを注ぎ込むため、無駄は多い。
この設定だと「縁の画素密度」や「中心窩比率」の設定は不要になる。
GPU負荷比較(ms)
GTX1080TIを用いた際の「固定中心窩」、「NVIDIAマルチ解像度」、「フル解像度」それぞれの画素密度のGPU負荷(ms)が以下。数値の低い方が負荷が軽い。11msを越えると不快なVR体験になる。
基本的には画質クオリティが低い順から並ぶ。「固定中心窩」が圧倒的に軽い。画素密度を限界まで上げても、6ms程度に収まっている。NVIDIAマルチ解像度も軽いが画素密度が250%を超えた辺りから急激に負荷が高まっていく。
フル解像度は圧倒的に重く、画素密度250%で既に実用域を飛び出している。「フル解像度」を選択する場合は画素密度を妥協するしかなさそうだ。
中心窩比率
周辺の低解像度描画する範囲を定義するオプション。「低」だと低解像度の範囲が広くなり、負荷は軽い。「高」にすると低解像度の範囲が狭くなり、負荷が高くなる。
見え方の比較(視界中央から外まで)
並べると差が大きく見えるが、実際には焦点の外側である事が多く余り目立たない。
低
中
高
GPUの負荷比較(描画密度280%)
高精細に描画する範囲が広がるため、GPUの負荷は設定を上げると急激に高まる。マルチ解像度レンダリングの方式で見え方も変わってくるが、どうしても気になるようであれば、GPU負荷とトレードオフで設定を位置段階上げる程度に抑えた方が良さそうだ。
実際のゲーム中の負荷増減の推移
実際のVR体験中はシーンやシチュエーションによって、GPUの負荷は増減する。とくにエフェクトが重なると負荷は一気に高くなる。そのため、設定オプション11msでギリギリまで詰めてしまうと、頻繁に11msを超えた状態になり快適度が低下してしまう。
スタート地点:GPU負荷は比較的低い。
ゲーム中:負荷が高まるシーンがある。
多少11msを越える程度ならSteam VRの補完システムが、気づかないレベルにフォローしてくれるが、限度を越えるとVR酔いを引き起こすような不快感が出る。余裕を持った設定を行った方が良さそうだ。
グラフィックオプション最適化の手順
以上の事から、改善の効果が大きく、VR体験に影響する視野中心部分の「画素密度(全体)」にGPUのパフォーマンスを優先的に割り当てて、余力があれば周辺視野の改善に割り当てていくのが妥当と思える。
*ゲーム中は上記のボタンを押す事でいつでもオプションを呼び出せる。
1:視野中心の画素密度を優先して上げる
まずは最も効果が大きく、VR体験に影響する視野中心部分の画素密度にGPUパワーを注ぐ。
GPUの処理速度を確認しながら、画素密度の値を変更していく。200%以上は視力などの個人差も大きい。値を変更するとリアルタイムで変化するので、画面を見ながら、自分で判別できる範囲で上げると良さそうだ。
変化が分からないレベルであれば、値を抑えて周辺視野にGPUパワーを残しておいた方が良いと思う。
参考記事:GPU負荷の調べ方
http://indiegame-japan.com/2016/09/09/post-1389/
2:余力で周辺視野を改善する
あとはGPUの余力がある範囲で周辺視野を好みに応じて変更していく。「画素密度(縁)」を少し上げる程度で十分では・・と個人的には思う。htc VIVEのレンズ特性のためか、筆者の視力の問題なのか、周辺部分の解像感を上げても恩恵は少ない様に感じる。
「中心窩比率」のオプションは段階が少なく、1ランク設定を上げるだけでも飛躍的にGPU負荷が上がって、やや調整しずらい。どうしてもボヤけ具合が気になり、GPUに余裕があれば、変更する程度だろうか。
勿論、設定は個人差はあるので好みで問題ないと思う。
「NVIDIAマルチ解像度」と「固定中心窩」
今のところNVIDIA製品のハイエンドGTXシリーズであれば、画素密度200~250%程度までなら「NVIDIAマルチ解像度」の方が簡単に品質とパフォーマンスを両立できている。しかし、高い数値になると「固定中心窩」と比較して負荷が急激に高まるので、「NVIDIAマルチ解像度」の方が常に有利というわけではなさそうだ。
GPU負荷が低い軽量な「固定中心窩」は高い画素密度を設定してもGPUに余力が残りやすく、周辺視野を十分調整できる。AMDのRadeon RXシリーズでも「NVIDIAマルチ解像度」が使えないからといって、極端にGTX1000シリーズと比較して不利という事はないだろう。
余裕を持った設定の方が快適なVR体験に
個人的には限界ギリギリまで詰めて、プレイ中に各種VRの「誤魔化し処理」が走ってしまうより、余裕を持った設定で常に90フレーム安定の方が快適なVR体験になるのではと思う。
気づかないレベルでも長時間被っていると、違和感が蓄積されてVR酔いに繋がるためだ。
「Batman:Arkam VR」はシーンによってはGPU負荷が急に高まるケースがある。1周目は安定したフレームでコンテンツに集中して遊んだほうが楽しめると思う。
インディゲームにありがちな理不尽は負荷はなく、リッチなビジュアル相応のグラフィック負荷で、今後のVRゲームにおいてのGPUパフォーマンスとグラフィック品質の指標になりそうだ。プレイ時間は短いが、PCVRの醍醐味が味わえるテクニカルデモタイトルになっている。