ポルトガル出身で、2007年に来日し、東京大学でコンピュータグラフィックスに関する研究に従事。卒業後、日本のゲーム会社でPC・モバイルゲームなどの開発経験を経て、NVIDIA Japanに合流する。現在はグラフィクスのパフォーマンス最適化を中心にデベロッパーサポートを行っている。
来日して12年になります。ただ、日本語はまだまだ勉強中ですね。
最初の7年ほど東京の近くに住んでいて、そこから千葉の幕張に移りました。通勤時間は延びましたが、「東京ゲームショウ」が開催される際は会場が自宅から近いので、助かりますね。
私はポルトガル出身で、子供の頃から日本のゲームにハマっていました。『スーパーマリオ』とか、『ソニック』とか、『ファンタシースター』とかですね。当時は日本のゲームが世界を席巻していましたから。それがきっかけで、いつか日本のゲーム業界で働きたいと考えるようになり、東京大学に留学してコンピュータグラフィックスの研究を行いました。卒業後は日本のゲーム会社に就職し、PC・モバイルゲームなどの開発を行いました。その後、NVIDIAに合流し、現在にいたります。
はい、そうですね。
レイトレーシングはコンピュータグラフィックスにとって非常に大きなパラダイムシフトの一つで、とても一度の講演内容に収まるものではありません。ユニティ・テクノロジーズ・ジャパンからもレイトレーシングに関する言及や技術講演があるかもしれませんが、弊社ではパフォーマンスの最適化に関する講演を行う予定です。
他にコンピュータグラフィックスの歴史と、レイトレーシングの位置づけについても、簡単におさらいする予定です。おそらく聴講される方はエンジニアやCGアーティストで、初心者から中級者が多いと思うんですよ。そこで、この分野について詳しくない方に向けた情報も盛り込もうと思います。
また、Unityデベロッパーの中には、Unityは非常に優秀なゲームエンジンですが、優秀ゆえにローレベルでの最適化に向かないと考えられている人がいるかもしれません。実際、ゲーム体験の最適化には2つのレイヤーがあります。はじめに、ゲームエンジンレイヤーでの最適化ですね。ここはユニティ・テクノロジーズが担当するレイヤーです。もう一方が、シーンやデータの作り方など、コンテンツを作る側での最適化のレイヤーです。レンダリングの設定だとか、どれくらい複雑なシェーダーを使えば良いかとか、ジオメトリのデータ構造の工夫だとか、そういった話ですね。デベロッパーの方々にとって、直接役立つような内容にしたいと思っています。
先ほどおっしゃっていた通り、日本のUnityデベロッパーはモバイルゲーム開発者が多いので、レイトレーシングという新しい技術に対して、まだまだ様子見で留まっている方が多いと思うんですよ。レイトレーシング自体はコンピュータグラフィックスの黎明期からアイディアがあったものの、コンピューティングパワーの不足などから、なかなか実用化に至りませんでした。なので、計算量が少なくて済む半面、それっぽいCGしか作れない「ラスタライズ法」に留まっていたんです。
その一方で弊社はずっと、膨大な計算量を必要とするものの、現実のモノの見え方に即したCGをレンダリングできる「レイトレース法」に関する研究開発を進めてきました。それが、ようやく実を結んで、リアルタイムで利用できる時代になってきたんですよ。だからすごく嬉しいんです。これによってゲーム開発者の皆さんの創造力をもっと支援できるようになりますし、ゲームのレベルもぐっと高くなると思います。ものすごくエキサイティングです。
将来的には映画のようにフォトリアルなグラフィックのゲームが作れるようになります。ただ、レイトレーシングはまだまだ処理負荷が高いので、すぐにそうしたゲームを作ることは困難です。そのため、ラスタライズ法とレイトレース法のハイブリッドスタイルが中心になります。具体的にはreflectionやshadowなどを部分的に活用するやり方がお勧めです。これによってプレイヤーが、「このゲームは一見すると綺麗だけど、この部分の反射がおかしいぞ」「この影が変だぞ」と感じるようなことが減っていくと思います。
そうですね。一番効果的な方法から順番に使っていくのが良いと思います。
まだハッキリと決めていませんが、できるだけデモをお見せしたいですね。その方が分かりやすいですし、個人的にUnityを使うのが好きなので。Unite Tokyo 2017で講演した時も、会場でUnityを使って、『NVIDIA Ansel』と『FLEX」プラグインのデモを行いました。聞いている方も、スライドを見るだけでなく、実際にデモを見る方が楽しいですよね。
リアルタイムレイトレーシングの最適化は日進月歩で進んでいるので、日本語の資料が少ないのは事実です。弊社としても、現在日本語の資料を作成している最中です。Unite Tokyo 2017の講演資料は日本語で公開されていますので、Unite Tokyo 2019の資料もすぐに皆さんに日本語版を共有したいと思います。
まずGeForce RTXシリーズのグラフィックカードが必要です。それからWindows 10 RS5(Build 1809) 以降のOSと、最新のグラフィックドライバーのインストールが必要です。Unity側では2019.2a5以降のUnityエディターが必要になります。
ただ、技術検証は行っていただけますが、まだ商用ゲームを作ることはできないんですよ。
GitHubにUnity公式のサンプルプロジェクトがアップロードされています。ぜひそれをダウンロードして、触ってみて欲しいですね。そうすると、講演内容がより深く理解できると思います。
いくつか参考になるユースケースやテクニックを紹介したいですね。仮にreflectionであれば、シェーダーの複雑さ度合いによって、roughnessの値によるパフォーマンスがどれくらい低下するか、などです。Translucency(半透明)も処理負荷の高い項目ですので、木々の木漏れ日や葉っぱの反射などの表現を行う場合は、カメラからの距離によって処理を切り分けるなどのテクニックが有効です。マテリアルについても同様で、複雑さの度合いによってパフォーマンスが変わります。こういった事柄を紹介していきたいですね。
そうですね。前述の通りレイトレース法は従来のラスタライズ法に代わる、コンピュータグラフィックスの新しいパラダイムシフトです。そのため、全世界で研究開発が進んでいますし、GPUパワーだけでは置き換えられない、新しいアルゴリズムやテクニックが開発されています。そのため、今の段階からリアルタイムレイトレーシングについて技術開発をすることは、今後のゲーム開発においても必ず役に立っていくと思います。
実際、ゲーム開発者はこの十数年、どうすればラスタライズ法をベースに、レイトレース法のような表現ができるか、さまざまな研究開発を進めてきたんですよ。スクリーンスペース・リフレクションなどの技術は、その一つです。しかし、リアルタイムレイトレーシングの実用化で、こうした技術が置き換わっていきます。
これにより開発コストの低下も期待できます。GI(大域照明)などが好例で、これまではイルミネーションの細部を照らすために、専用のライトを配置するなどの必要がありました。しかし、今後はこうした配慮が不要になっていきます。現実世界と同じように、物体が照らされることになるからです。テクスチャに対する意識がPBR(物理ベースレンダリング)の登場で大きく変わったように、リアルタイムレイトレーシングで大きな変化が訪れると思います。
どんどん進んでいますね。弊社のRTXテクノロジーでいえば、すでに10タイトル以上が対応していますし、どんどん数が増えています。弊社から6月に無償提供された、『Quake II』のリアルタイムレイトーレシング対応版『Quake II RTX』のように、かつての名作タイトルをレイトレース法でリメイクするといった事例もあります。こちらはハイブリッドスタイルではなく、すべてリアルタイムレイトレーシングでレンダリングされたタイトルになっていますね。昔のタイトルなので内容がシンプルな分、レイトレーシングに置き換えやすいのです。
「Quake II RTX」ダウンロードページそうですね。ただ、その前にクラウドゲームが実用化されます。弊社の『GeForce Now』のように、クラウドゲームの技術を使うと、端末スペックに頼る必要なくゲーム体験を得ることが可能です。そのためスマートフォンでレイトレーシング対応のゲームが普通に遊べる時代が到来しそうですね。
なので、本当にレイトレーシング時代は始まったばかりなんですよ。これまで日本のAAAゲームは家庭用ゲーム機を対象としたものが中心でしたが、最近はPC版を同時開発して、Steamで配信する例も増えてきています。そうなると、こうした新しい技術を積極的に取り入れていくのではないでしょうか。それがクラウドゲームで直接、スマートフォンでも楽しめるようになると、モバイルゲームの開発者も影響を受けざるを得ないと思います。それによって、日本のゲーム開発における可能性がさらに拡がっていくのではないでしょうか。そのためにも、我々は技術開発を進めています。
AAAゲームと同じように、インディゲームでもリアルタイムレイトレーシングが使われるようになるのは、時間の問題です。特にUnityでは、インディゲームクリエイターのコミュニティが分厚いですよね。彼らはAAAゲームほどのリッチな体験やボリュームは提示できないかもしれないけれど、すごく尖った、良いゲームをたくさん出しています。個人的にもインディゲームが大好きです。彼らはエクスペリメンタルなゲームをどんどん出しています。そして、その多くがUnityを使っています。
すごく難しい質問ですね。たとえばモバイルゲームなら『モニュメントバレー』だとか、PCゲームなら『INSIDE』だとか……。
実際、『INSIDE』のアートスタイルは他に例がない、ユニークなものですよね。本当にエクスペリメンタルなゲームになっています。ああいったアートスタイルのゲームが好きなんですよ。
確かにそうですね。私も学生時代にUnityを使ってグラフィックスの研究をしていました。プロトタイプが非常に作りやすいですからね。アイディアから簡単にプロトタイプができて、全世界に向けてパブリッシュすることもできて。良い時代になりました。
ありがとうございます。エンジニアやテクニカルデザイナー向けに、最適化のテクニックについて話をする部分が厚めになるかと思いますが、初心者の方向けに歴史的な話をしたり、デモで楽しんでもらえるような内容にもしたいと思っています。それぞれ半々といったところでしょうか。その上でリアルタイムレイトレーシングについて、もっと多くの人に関心を持ってもらって、AAAからインディゲームまで、どんどん活用してもらえればありがたいですね。
NVIDIA RTX Ray Tracing