【CG技術の実装と数理 2018 フォローアップ】Introduction to Direct X Raytracing


Cygames エンジニアの森重です。
2018年9月30日(日)に東洋大学で開催されたCG技術の実装と数理 2018に於いて『Introduction to Direct X Raytracing』という発表を行いました。
CG技術の実装と数理は、SIGGRAPHやEurographicsなどで発表された技術論文やコースを自分で実装して、見えてきた課題やわからなかった点を議論して、次の技術研究開発につなげていく研究会です。
当日は、台風の影響で悪天候の中、発表と議論に、お越しいただいたみなさま、ありがとうございました。

はじめに

本発表では、レイトレーシングをCPU, GPU Compute, DirectX Raytracing(DXR)のそれぞれで実装してみた際の検討事項、課題、結果について紹介しました。
以下が発表資料となります。

「DXR を使ったAmbient OcclusionとIndirect Diffuseの実装」

リアルタイム・レンダリングにおいて、SSAOやRasterizationのCubemap/Spheremapでは取り込めなかった情報(radiance, visibility)が、レイトレーシングでは取り出せました。
今回は、最小のレイで、最大の情報が得られるように、GBuffer Normalから、Ray Scatteringしています。(いわゆる Hybrid Rendering)
結果はレイ数に応じたノイズがあり、EA SEEDが採用したようなDXR向けの近似高速化手法の開発が必要になってくると思いました。次回はその辺りに取り組んでみたいです。

「Simple DXR Framework の設計」

今回の実装で体感したのが、DXR APIを直接使うと、コード量がかなり増えてしまい、実験や描画といった本来の目的達成に時間がかかるということです。
そこで、お勉強も兼ねて、今回取り組んだ、簡単な Simple DXR Frameworkの設計とコードも少しだけ紹介しました。(後日、GitHub で全てのコードを公開予定)
Frameworkは、NVIDIA Falcorがあるのですが、2018年10月現在、PascalやIntel, AMD, Game Consoleでは動かないです。(Fallback Layer が未実装だからです)

おわりに

Cygamesでは、技術研究だけでなく、2018年9月に一般公開されたハイエンドゲーム『Project Awakening』の制作や内製Game Engine, Cyllista の開発も進めております。
既存の技術実装だけでなく、深層学習やRaytracingといった比較的新しい技術トレンドを導入していく余地もあります。ご自身のアイデアや熟練の技を新しいステージに持っていきたい方、世界に挑戦したい方は、こちらからお問い合わせください。