このページの本文へ

前へ 1 2 次へ

NVIDIA特別イベント「GeForce Gaming Celebration」を振り返る

CG界の聖杯「リアルタイムレイトレーシング」に手をかけたGeForce RTX 20シリーズを理解する【前編】

2018年08月23日 06時00分更新

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

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

 2018年8月20日18時(中央ヨーロッパ夏時間)、ドイツはケルンで開催されているゲーム展示会「Gamescom 2018」に合わせ、NVIDIAが特別イベント「GeForce Gaming Celebration」を開催、Pascalの後継となる最新アーキテクチャー「Turing」を採用した最新GPU「GeForce RTX 20シリーズ」として、「GeForce RTX 2070」及び「GeForce RTX 2080」、「GeForce RTX 2080 Ti」を発表した。

 すでにGeForce RTX 20シリーズのスペックや価格に関しては、ジサトライッペイによる速報記事で十分カバーされているので、改めてここでは触れない。また、詳細なアーキテクチャーやマルチGPU、熱設計といったテクニカルな情報については、後日別記事で詳しくカバーする予定だ。

 今回の発表はおよそ1時間40分をかけた大長編だったが、前半は8月14日にカナダで開催された「SIGGRAPH 2018」の内容の繰り返し(ジョークもほぼ共通)。そして、後半が新しいGeForceのためのものだった。今回はGeForce RTX 20シリーズの誕生した背景と実ゲームにおける対応などを解説したい。

イベント会場となった「Palladium」では、開演2時間前からこの様子。筆者を含めたメディアは別ラインで待機だったが、事前登録した一般客も1000人以上詰めかけた。

インフルエンサー(YouTuberなど)が前のほうの席でメディアはその後ろ。筆者の確保できた席は中盤よりもうしろだったため、写真のアングルが厳しめだった……。

ジサトラKTUでは「革ジャン」の愛称で親しまれているNVIDIAの創業者かつCEO、ジェンスン・ファン氏。今回の革ジャンは襟がダブルのライダースジャケットだった。歴史的転換とも言えるGPUのローンチなのでテイストを変えたのかもしれない。

CGにおける2つの表現方法、ラスタライズとレイトレース

 コンピューターグラフィックスはざっくり2通りの表現方法がある。1つめは我々が普段PCゲームなどでお目にかかっている「ラスタライズ」法によるもの、そしてもう1つが「レイトレース」法(レイトレーシング)によるものだ。

 どちらの技法でもポリゴンで構成されたオブジェクトをシーンに配置し、質感や光源を設定。シーン中の仮想的カメラから見た映像を、PCが必死に計算した結果がディスプレー上に表示される。ただ“どのように計算するか”が異なる。

 ラスタライズ法というのは、大雑把に言えば「計算量を端折ってもそれっぽく見せる」ためのテクニックだ。オブジェクトを構成するポリゴンすべてを計算するのではなく、不要なポリゴンの処理は端折ることで負荷を減らすのである。

 単純にカメラの視界(もう少し専門的に言えば「視錐台」と呼ばれる領域)に入っていないポリゴン情報を削除する。あるいは、カメラから見えない側のポリゴンを無視する技法もあれば、ポリゴンの前後関係(Z値)を見て、あるポリゴンの背後にまわったポリゴンはすべて省略する技法まで様々なものがある。

 こうしてポリゴンを省略したのち、今度はポリゴンごとにどんな色にするのか、テクスチャーや照明の効果を加味しながら計算し、それを画面上のドットに反映させるというわけだ。以下にマイクロソフトのレイトレーシング解説記事から、わかりやすい図を抜粋して紹介しよう。

レンダリングするCG(ゲーム画面と言ってもよい)のシーンを上から俯瞰した状態。左側にカメラがあり、カメラの範囲は四角錐状のエリアとなっている。4つの球が置かれているが、完全に入っているのは2個だけで、オレンジの球はカメラ範囲の外にある。

ラスタライズ法では様々な手段を用いてデータを端折る。カメラ範囲外のポリゴン(先ほどのオレンジの球)やカメラに向いていないポリゴンは処理をしないというもの(バックフェースカリング)がある。さらに、下はポリゴンの重なりにも注視し、あるポリゴンのうしろに隠れるポリゴンも処理をしないという処理(オクルージョンカリング)だ。

 こうしたラスタライズ法で作られたイメージは、いくらリアルリアルと連呼しても所詮は「それっぽいもの」だ。20年前のゲームも今のゲームも、それっぽさの度合いが違うだけで、基本となる技術は変わらない。GPUとDirectXの発展によって可能な表現が増え、さらに技法そのものも進化した結果、現在のPCゲームのグラフィックはフォトリアルに近い出来になってきている。

 だが、ラスタライズ法には大きな欠点がある。それはカメラの範囲にないオブジェクトや光源の影響を考慮することができないことや、正確な影の表現だ。例えば、カメラの背後にある樹木が、カメラに映らない光源(例えば太陽)の影響で地面に柔らかい影を落とすようなシーンをリアルタイムで表現したシーンを考えてみよう。ラスタライズ法でこれを行なうのは非常に難しい。

 読者の中には「〇〇というゲームでそんなシーンを見たぞ?」という人もいるだろう。ラスタライズ法でもカメラ外に置かれたオブジェクトの影響を処理する技法は確かに存在する。ただこれらの技法を使う場合は、それ用の処理(シェーダー)を回す必要がある。ラスタライズ法は処理を端折るための技術なのに、その限界を突破するには正反対の作業をする必要があるのだ。

今度は球が地面に影を落とす処理を考えよう。視界内中央にある球の影を考える場合、端折られてうしろ半分が消えた部分も正しく描画できるように処理を工夫する必要がある。元々カメラの範囲外に置かれたオレンジの球も同じ話で、別途影用の処理を走らせることになるが、凝った画面を作ろうとすればそれだけ面倒な処理がかさむのだ。

 そこで登場するのがレイトレース法だ。レイトレース法はシーンの描画に際し、光を物理として扱う。カメラからレイ(光)を飛ばし、なにかに衝突したらそこでどんな風に見せればよいのかを計算する。レイが衝突した地点から別のオブジェクトにレイを投げれば、物体の反射なども処理できる。光の動きを計算して描画するので、カメラの範囲外にあるオブジェクトの影響もちゃんと考慮される。

レイトレース法では光がどのように進むかを物理的にシミュレートする。ラスタライズ法(左)では光源は基本的に点でしかなく、影のエッジも鋭い。さらに物体同士の映り込みも考慮されない(事前処理で映り込んだ風テクスチャーを貼るテクニックはある)。だがレイトレース法(右)では光源は面でも良いし、映り込みも完璧だ。影もちゃんと「そうであるべき場所」に出る。

 光の反射もレイトレース法の得意とするところだ。例えば、水たまりに周囲の風景が写り込んでいる「現実の」風景を考えてみよう。今のゲーム(ラスタライズ法)でもこれに近い表現はできるが、水たまりの近くを通るキャラクターを正確に描写することはできない。

 ラスタライズ法では事前に周辺の環境データをもとに計算しておいたテクスチャーを水たまりに貼っておくだけ。これでかなりそれっぽく見えるが、リアルタイムで動くキャラクターの場合、そうはいかない。ここではたまたま水面の例を挙げたが、ツヤツヤな車のボディーやショーウインドーに映り込む映像も同じことだ。

 だがレイトレース法なら、レイの動きをシミュレートするため(レイの反射は何回まで追跡、などという計算量を抑える仕掛けはある)、水たまりの近くをキャラクターが歩けば、その状態がそのまま水面に映り込む。レイの動きを考慮するため、カメラの視界外で起こった爆発の光も映り込む。

 水は水らしく、金属は金属らしく、よりリアルに描画するのがレイトレース法だが、同時にラスタライズ法で苦心して表現していたことを「レイの計算」に置換することも可能なのだ。

会場に設置されていた「RTX体験」ブースでのひとコマ。レンダリングされたCGが大スクリーンに表示されるというもの。金属風の質感を持った球体に周囲の光景が映り込むのはレイトレース法ならではだが、よく見ると自分が映り込んでいるのだ! ブース内に設置されたカメラの映像をキャプチャー、それをレンダリング処理にプラスしている。

ラスタライズ法はカメラの範囲に入るポリゴンがどう見えるかだけを考えるのに対し、レイトレース法はカメラからレイを発し、それがオブジェクトに当たったときに、そこにどういう光源が影響するのか、どういう見え方をするのかを計算する。カメラの範囲外のオブジェクトや光源も考慮されるのが特徴だ。

 もっとわかりやすい例をひとつ出そう。オークションに出品された品物の写真をよく見たら、パンイチ親父が映り込んでいて騒然、という話が時々ある。もしこの世がラスタライズ法で見えていたら、カメラのうしろにいるパンイチ親父はレンダリング最初の段階において、処理する必要のないデータとして捨てられるため映り込まない。

 だが現実はレイトレース法と同じく、パンイチ親父の皮膚で反射した光の一部は、出品する商品の表面にあたり、さらにその一部がカメラに飛び込んでくる。出品する品物の上にパンイチ親父が映り込んでしまう理由はこれだ。

 つまり、NVIDIAはパンイチ親父を作り出そうとしている……のではなく、光の物理現象が生み出すリアルなシーンをPCゲームに取り込もうというのだ。これまでレイトレース法でCGを生成するには、超高額なワークステーション(後述するDGXステーション)をフル稼働させてなんとか生成してきた。だがTuringを使えばそれがリアルタイムで、かつ一般的なPCでできるという。まさにNVIDIAはこれまでのCG研究者が夢見ていた「リアルタイムレイトレーシング」という聖杯に手をかけたのだ。

前へ 1 2 次へ

カテゴリートップへ

注目ニュース

ASCII倶楽部

ピックアップ

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

ASCII.jp RSS2.0 配信中