このページの本文へ

FastSyncにSMP、新SLI、神スクショ機能“Ansel”など、性能だけではないGTX1080の真価

2016年05月21日 17時00分更新

文● 加藤勝明 編集●ジサトライッペイ

  • この記事をはてなブックマークに追加
  • 本文印刷

VR環境でのパフォーマンスアップとなる「SMP」

 GTX1080とGTX900シリーズのアーキテクチャーで決定的に違うのは、GPU内部の「Polymorph Engine」内に新設された「Simultaneous Multi Projection」(以降SMPと略)と呼ばれる機能(回路)だ。

 ここで言うマルチプロジェクションとは、3D画像を複数の視点から描画することだ。通常、PCゲームの画面を表示するときは、ゲームアプリ内で構築された3D世界に仮想的なカメラを置き、そこから見た世界を液晶(に見立てた平面)に描くようにして表示させる。この仮想的なカメラを置く位置が、ここで言う視点(ビューポート)だ。

 普通の液晶ならビューポートは1つで良いが、VRヘッドマウントディスプレーの場合、左右の眼球用にそれぞれ1つずつ、2つの視点が必要になる。1つの視点から見た描画処理をするたびにポリゴンの頂点情報を計算する必要があるが、(視点は微妙に違うが)同じものを見ているのに頂点計算などを繰り返すのは効率がよろしくない。

 その問題を解決するのがGTX1080に搭載されたSMPだ。SMPは2つ以上(最大16個)の視点から見た映像を、1回の処理で一気に描ける。つまり、複雑な物体を描くときも計算は1回で済む。NVIDIAが「GTX1080は“VRにおいて”TITAN Xの2倍の性能」とうたっているのは、SMPによるスループット向上というわけだ。

3D画像を画面に描画する処理とは、ある視点から描画対象を見つめた場合の映像を、ディスプレーの平面空間に落としこむ作業と言える。

VRヘッドマウントディスプレーでは、左右の眼から見た映像が必要になるが、微妙に視点が異なる。視点を変えなければ奥行き感を得られないからだ。

旧来のやり方では、描画するオブジェクトの頂点情報(ジオメトリ)を計算して出力する処理を2回実行していた。このやり方でパフォーマンスを出すには、オブジェクトの形状を簡単にして、演算負荷を下げるしかない。

ところがSMPを有効にするとフレームレートが一気にアップ。1回のジオメトリ処理で左右両眼の視点から見た映像が描画できてしまうのだ。快適なVRは90fps維持が必要なので、この差は非常にデカい。

 さらにVRヘッドマウントディスプレーでは、ゴーグルのレンズが生む歪みを計算に入れ、あらかじめ周辺部の歪んだ画像を作成する必要がある。しかし、従来のGPUはある視点から平面に投影した映像を用意してから、レンズの歪みに合わせた映像へ変換しなければならない。

 この時、元画像はある程度広くないときちんとした歪みのある映像にならないが、同時に捨てられるデータの分だけ無駄な仕事をしていることになる。Oculusの『Rift』は、片眼で110万画素の映像が必要だが、これを得るには元画像を210万画素でレンダリングしてから歪ませる必要がある。

 しかし、GTX1080ではSMPを使うことであらかじめ歪みを考慮した映像を手早く作れる。具体的には片目の視点を4つに分割し、本来の視点中心よりも右上/右下/左上/左下を狙う視点の映像をSMPを使って獲得する。それを連結してから無駄な画素情報を切り飛ばせば、わずか140万画素分の処理で必要な映像が得られることになる。これをNVIDIAは「レンズマッチドシェーディング」と呼んでいる。

片眼用の110万画素の映像データを作るためには、210万画素でレンダリングした映像を用意してから歪ませ、不要な部分をカットする。しかし周辺部の情報は見えにくい割に86%も捨てられてしまうため、非常に無駄が多い。

そこでSMPを使って片眼ずつ4つの視点で描画させる。各視点から得られる映像を連結すると、最初からレンズの歪みに近い映像が得られる。これがレンズマッチドシェーディングだ。ちなみに下のピチピチ革ジャンなナイスガイはNVIDIA社長兼CEOであるジェンスン・ファン氏。

レンズマッチドシェーディングで得られた画像は140万画素。無駄になるデータが格段に減るということは、GPUにその分余力が生まれるということだ。これがもう片方の眼でも同時に進行しているので、作業負荷は一気に下がる。

シングルパスVRで頂点情報の処理効率は2倍、レンズマッチドシェーディングで描画処理効率は1.5倍。これがGTX1080(というよりPascal)の真のすごさだ。

 さて、このSMPは液晶を複数枚使ったサラウンド環境でもメリットがあるという。前述の通り、ゲームの画面描画とは、ある視点から液晶に見立てた平面に3D世界を投影する作業だ。これは液晶が何枚あっても同じことだ。

 だがこのやり方だと正面の液晶は常に正しい見え方で表示されるが、液晶を3枚、3面鏡のように置いた場合は、左右の液晶に投影される映像は本来あるべき姿とは違う。3枚を一枚板になるよう並べれば矛盾はなくなるが、左右が見難いことこの上ない。

 そこでSMPを利用すれば、左右の液晶を三面鏡のように設置しても、すべて正しい映像が得られる。こういう応用方法もあるのだ。

トリプルディスプレー環境でも、この図のように3枚の液晶が一直線になるよう配置されていれば、視点と表示される内容との矛盾はない。しかし、三面鏡のように配置すると左右の液晶に映った部分が引き伸ばされたようになり、実際見ている人間の視点とゲーム内画面の矛盾が生じる。

SMPで左右の液晶用に視点を適切に修正する……すると、見た目的に正しいサラウンドビューが得られるのだ。しかし、これが気になるユーザーが果たしてどの程度いるか疑問ではあるが……。

 だがこのSMPは、すぐメリットを発揮できる機能とは言いがたい。VR用ゲームはSMPを意識してコードを書き直す必要があるが、すぐに浸透するとは考えにくい。すぐ使えそうなのは前述のマルチディスプレー対応だが、今回入手したβドライバーでは設定項目は発見できなかった。GTX1080の真の力が開放されるのは、SMP対応アプリやドライバーが出てからなのだ。

カテゴリートップへ

注目ニュース

ASCII倶楽部

ピックアップ

ASCII.jpメール アキバマガジン

ASCII.jp RSS2.0 配信中