DirectX Raytracing 入門


 1.はじめに…
この記事はレイトレアドベントカレンダー2018の23日目の記事です。
他の方々は大変すばらしい記事を書かれているのですが,自分の方ではそのようなレベルの記事は書けそうにありません。
で,自分に足りない頭を働かせてみたところ,DXRの入門記事ぐらいなら頑張って書けるかな?と思ったので,書いてみることにします。
※現在執筆途中です



 2.開発環境の整備
残念ながら,手元にRTXがありません。そこで,仕方なくFallback Layerを使ってDirectX Raytracing(DXR)を動かしてみます。
まずは,開発環境を整えていきます。自分の手元の環境は以下の通りになっています。
  • Windows 10 Home Version 1803
  • Windows 10 SDK 10.0.17763.0
  • Microsoft Visual Studio Community 2017 Version 15.9.2
  • NVIDIA GeForece GTX 1050
  • NVIDIA Graphics Driver Version 417.35
次に手元の環境でDXRが動くかどうか確認してみます。
Microsoft/DirectX-Graphics-Samplesのページ(https://github.com/Microsoft/DirectX-Graphics-Samples)に移動し,ソースコードをダウンロードします。



次に,releaseタブをクリックし,DirectX Raytracing Binaries Release V.1.5のようにDXR用のバイナリをダウンロードしておきます。



ダウンロードが終わったらサンプルのソースコードのzipを展開します。
次に,展開したらDirectX-Graphics-Samples-master/Samples/Desktop/D3D12Raytracing/tools/x64以下に,ダウンロードしたDXR用バイナリを展開して,dxfallbackcompiler.dllを配置します。



続いて,Fallback Layerは開発者モードじゃないと動作しないようなので,Windowsの設定を開発者モードに切り替えます。
スタートメニュー
 → 設定(歯車アイコン)
 → 更新とセキュリティ
をクリック。左側の項目から「開発者向け」を選択し,開発者モードにチェックを入れます。



続いて,ビルドチェックを行います。
ダウンロードして展開したDirectX-Graphics-Samples-master/Samples/Desktop/D3D12Raytarcing/src フォルダ以下にVisual Studioのソシューションファイルがあるので,D3D12Raytracing.slnをエクスプローラー上でクリックしてVisual Studioを起動します。
Visual Studioが起動したら,ソリューションエクスプローラー上から「D3D12RaytarcingHelloWorld」をスタートアッププロジェクトに設定します。



次に,ビルドを行います。問題がなければビルドが正常終了するはずです。ビルドが終わったらプログラムを実行してみましょう。きちんと起動できれば以下のような味気の無い画面が表示されるはずです。起動しない場合は開発者モードがきちんと設定されているか?Nugetパッケージの更新がされているかなどを確認してみてください。



これで,Fallback LayerでAPIが動作することが確認できました。


 3.DirectX Raytracingの概要
NVIDIAの竹重さんの資料が非常に分かりやすいので,DXRについてはプレゼン資料を参照してください。 https://cedil.cesa.or.jp/cedil_sessions/view/1825

CEDiLに登録するがダリィっていう人はSlide Shareにも資料がアップロードされているので,そちらを参照してください。
https://www.slideshare.net/shikihuiku/direct-x-raytracing-the-life-of-a-ray-tracing-kernel-111053730


 4.DXRの初期化
…鋭意執筆中です…


 5.シェーダの準備
…鋭意執筆中です…


 6.DXRの実行処理
…鋭意執筆中です…


 7.デバッグ方法
…鋭意執筆中です…


 8.おわりに
…鋭意執筆中です…


 Download
本ソースコードおよびプログラムはMIT Licenseに準じます。
プログラムの作成にはMicrosoft Visual Studio Community 2017, 及び Windows SDK 10.0.17763.0を用いています。