Search Unity

Unity のレイトレーシング技術により、顧客はまるで現実のように感じられるリアルタイム体験を、手ごろな価格のハードウェアを使って作り出すことができるようになります。ほんの数か月前までは考えられなかったような新しいアプリケーションの開発が可能になっているのです!

本記事が出た時点で、リアルタイム 3D にはちょっと興味がある程度の方でも BMW M850i の素晴らしい出来栄えのビデオをご覧になったことがおありかと思います。このビデオは、Unity が NVIDIA および Light & Shadows と提携して制作したものです。実写のアクションビデオとレイトレーシングで作成された画面がシームレスにつなぎ合わされたデモは圧巻でした。また、最近出たブログ記事で、3D アーティストの Dany Ayoub、シニアデモアーティストの Kate McFadden、グラフィック担当リードの Sebastien Lagarde の 3 人がレイトレーシングの技術的側面とデモの制作について書いています。しかし、このデモについてはもう 1 つ語られるべき側面があります。レイトレーシングが顧客にもたらす利益とは何かということです。Unity のメンバーは困難な技術的課題を解決するために積極的な取り組みを行っていますが、顧客の成功を支援したいという思いも、技術的課題の解決にかける熱意と同じかそれ以上に強く抱いています。このブログ記事では、顧客の皆様にとってリアルタイムレイトレーシングを役立てる方法と、2019 年を通じて Unity が皆様にお届けしようとしているものについて書きたいと思います。

リアルタイム、低予算、高い再現性 – 3 つとも実現

昔から、あらゆるプロジェクトには「早い、安い、高品質」という「鉄のトライアングル」があり、そして顧客はこの 3 要素から優先する 2 つを選ぶものであると言われてきました。しかし、Unity のレイトレーシングは、驚くほど再現性の高いビジュアライゼーションを、広く普及して比較的安いコンピューティング資源を使いつつ、リアルタイム性を損なわないフレームレートで行うことを可能にして、プロジェクトをこの「鉄のトライアングル」から解き放ちました。いま挙げたコンビネーションが重要なブレークスルーを象徴するものです。レイトレーシングの研究の歴史はコンピューターグラフィックスの黎明期までさかのぼることができます。レイトレーシングによって生成された画像を、レンダーファームを使って「オフラインで」生成すること自体はずっと昔から可能でしたが、しかしリアルタイムでの生成は不可能でした。時代が下ると、リアルタイムレイトレーシングが数百から数千個の CPU からなるコンピュートクラスターを購入する予算があるなら可能な程度には進歩がありました。こうしたテクノロジーの初期の実装でも魅力的な画像が生み出されてはいましたが、資金面の問題で、こうしたことができるのはハイエンドなプロダクション会社やデザインスタジオに所属でもしないと実際に触れることはできませんでした。

Unity のリアルタイムレイトレーシング技術は、リアルタイムレイトレーシング技術をはるかに広い分野に応用することを可能にします。さらに、各々のアプリケーションのニーズを正確にとらえたパフォーマンスと再現性のトレードオフを実現する方法もシンプルなものになっています。究極の画質を求めたい場合は、各レイについて計算される反射の数を増やして、シーンにあるライトの挙動をより正確に計算させ、コンポジション、マテリアル、ライティング、エフェクトを効率的に組み立てて、透明なマテリアルや複雑な影ができる領域の見た目をよりリアルなものにすることができます。解像度や反射の回数の数字が大きくなると、フレームレートが落ちて再生時の動きの滑らかさは落ちる可能性がありますが、インタラクティブにコンポジション、マテリアル、ライティング、エフェクトを素早く効率的に調整して、スチル画像や動画を従来のプロセスで行われていた遅延レンダリングを使わずに行うことができます。絹のように滑らかに動くほどのフレームレートが必要なら、解像度と反射の回数を目的のフレームレートが出せるように調整するだけでよいのです。

カメラ構え、撮影。すぐに映像化

手軽にリアルタイムレイトレーシングを実行できる手段が手に入ったとしたら、まず思いつくアプリケーションは消費者個人に特化したマーケティング体験を大規模に展開するというものでしょう。Unity を使えば、販売店で製品のコンフィギュレーターなどのインタラクティブ体験を提供することが現実的なものとなります。レイトレーシングで生成された画像はこうした体験の現実感をより深めることができます。また、顧客がレイトレーシングを実行できるハードウェアを持っていることはまず期待できませんが、顧客の持っている端末に、専用データセンターまたはクラウドを通じてコンテンツをストリーミングで流すことは可能です。

リアルタイムレイトレーシングが利益をもたらす場面は顧客に使ってもらう場面だけに限られたものではありません。デザイナー、エンジニア、アーキテクトなどの仕事をしている方にとっても、大規模なコンピュートクラスターの細切れになった処理時間のスケジューリングに頭を悩ませたり、レンダーファームの処理待ちに何時間も費やす必要はもうないのです。Unity を使えば、デザイナーもエンジニアも、ライティング、シャドウ、グレア、反射がディスプレイやコントロールの見た目に及ぼす影響をより精密に評価することができます。また、Unity 内部で完結した形で、スペキュラー(光沢)の強さを含めたマテリアルのプロパティを調整して、さまざまなライティング条件下での外観の評価をすることも簡単にできます。アーキテクトもエクステリア/インテリアのデザインで同じように仕事を進めることができます。至って普通のデスクトップコンピューター(あるいはそれなりの性能のあるノートパソコン)を使ってリアルタイムでこうした作業を行えるということがデザイン作業のイテレーションを飛躍的に加速させ、そして最終的により洗練されたデザインを生み出すことにつながっていくのです。

エンターテイメント向けのコンテンツの制作もリアルタイムレイトレーシングの恩恵を受けられる分野です。メディア産業において、リアルタイムレンダリングをプレビズやルックデベロップメントに使う事例が最近増えてきていますし、リアルタイムレンダリングの現実感にあふれる表現を取り込むことで、こうした作業のプロセスをさらに進化させられる可能性もうかがえます。

誰にでもできるのか?

端的に言えば、できます。Unity のレイトレーシングは HD レンダーパイプライン(HDRP)を基礎として構築されており、実験的なバージョン(Unity DXR)はすでに GitHub からダウンロードしていただける状態になっています。ドキュメンテーションに記載されているように、いくらかの制限事項は存在しますが、少なくとも既存の HDRP シーンにレイトレーシングを追加することは可能です。また、NVIDIA RTX 互換のハードウェアと、適切なバージョンの Windows 10 をインストールした環境も必要です。詳細な要件は GitHub の README に記載されています。現在提供している実験的なバージョンは、リアルタイムレイトレーシングの学習や、皆様のユースケースでリアルタイムレイトレーシングがどのように役立てられるかの評価の出発点とするのに最適だと思われます。ただし、実製品の開発にこの実験的なバージョンを使うことはおすすめしません。現在もリアルタイムレイトレーシングに関する技術の開発は活発に行われており、定期的にアップデートが行われています。さらに、プレビュー版を 2019 年の秋にリリースする計画もあります。プレビュー版リリースは新しい製品開発のプロジェクトにお使いいただける程度の完成度で提供いたしますが、関連のパッケージは完全に検証されてはおらず、プレビュー版と検証が完了したあとのバージョンでは細かな部分で変更が起きうるということはご了承の上、開発にお使いください。

私たちは、Unity コミュニティへのリアルタイムレイトレーシング技術の提供が実現しつつある現在の状況を非常に楽しんでいますが、それ以上に皆様がこの技術を使って創り出すものを楽しみにしています。皆様から、レイトレーシングを仕事に活用するためのアイデアを聞くのも大好きです。もし、外部に公開できるようなプロジェクトを作ったら、ぜひ私たちやコミュニティのみんなに見せてください。また、この記事の下にあるコメントのセクションに、アイデアや希望や夢や、そして自分が作ったレイトレーシングのデモの場所を書き込んでみてください。ただ、皆様からのご質問をお受けする前に申し上げておきますと、残念ながら BMW のプロジェクトを公開することはできません。皆様が自分で作ったモデルを使って、リアルタイムレイトレーシングをお試しいただければ幸いです。

Unity の自動車・輸送機器産業向けのソリューションに関する詳細情報は、こちらのページでご覧ください。

12 コメント

コメントの配信登録

コメント受付を終了しました。

  1. matthew GEORGE

    5月 14, 2019 3:17 pm

    yea, but custom pass AOVs please

  2. Luke Huggett

    4月 29, 2019 1:56 am

    Can we utilize GPU ray tracing for non render bound rays?

  3. It doesn’t mean anything to me, since I don’t have the budget to afford a pair of RTX 2080 Ti cards.
    Most Unity users don’t. I don’t know why you keep insisting this technology is affordable.

    1. Who said anything about two 2080ti cards?

      1. “The CG car is rendered in Unity at 4K interactive frame rates, using the power of ray tracing in HDRP on NVIDIA RTX 2080Ti.” (source: https://blogs.unity3d.com/2019/03/19/the-heretic-megacity-release-real-time-ray-tracing-and-more-news-from-gdc-2019/#raytracing)

        The specific wording there is very telling.

        Call me cynical, but if it were possible to do so on a single 2080 Ti, they’d have said so. Claiming it’s possible on a single GPU would be a lot more impressive than the vague “using the power of” line they used. Since they made no such claim, one can only surmise that it required multiple GPUs to get the results they showed.

        1. Derrek, you are not cynical, you are just spammer. You have the right not to use this technology.

        2. You do realise that the reason that they used two 2080tis was because they were rendering a demo scene used to show off features, right? You do realise that that’s what demos are for, right?

        3. You can do this with a single 2080ti btw, but you can always opt to not use this tech if its not to your liking.

        4. Hi Derrek,
          I played with the project and internally we used one 2080Ti.
          Cheers,
          Luc

  4. TonyVT Skarredghost

    4月 28, 2019 3:02 pm

    Amazing job… I can’t wait to experiment with it!

  5. Awesome! Happy to read performance is a focus especially with console raytracing guaranteed to come.

  6. A few days ago, I posted my thoughts about that on a forum. What a coincidence!
    https://forum.unity.com/threads/graphic-future-in-unity-lwrp-hdrp-shader-graph-visual-effect-graph-ray-tracing.667264/

    Here’s my answer to your questions.

    Questions:
    “We’d love to hear your ideas about how you can put ray tracing to work, […]”.
    “In the comment section below please share your ideas, hopes and dreams“

    Answer:
    The detailed answer is on the forum at the URL above.

    In a nutshell, I’m trying to use Unity to develop cross-platform games. The HDRP is not cross-platform. To use it on the player’s side, we must make it the only option in our project. There’s no way at the moment to have the Built-In RP, LWRP and HDRP side-by-side in the same project and deploy the game as a unique Unity game with the possibility for the players to choose the best option if their hardware allows it. We are restricted to creating a game for a few platforms in the Unity project without having the possibility later to deploy to other platforms not supported by the HDRP. For example, I should be able to deploy to the Nintendo Switch without ray tracing and deploy to PC (with possibility of ray tracing) from the same project.

    My hopes and dreams would be to “Build once, deploy anywhere” as your tagline says. Please, harmonize your deployment process, so we could continue to get the best of each world.