DirectX Raytracingのサンプルをビルドする

NVIDIAからも新しいGPUが発表され、ハードウェアでのレイトレーシングが流行りそうだなと思いました。それで試しにサンプルでも実行してみたいということでやってみます。

とりあえずビルドして実行するところまではできました。サンプルをビルドするのもそれなりにはまるところがありました。このサンプルを見てもどう使えば良いんだろうという印象です。反射とかしているサンプルもあるので、レイトレーシングするとこんなにきれいになるのかというのはわかります。雰囲気を感じるようなサンプルだと思いました。

レイトレーシング用のハードウェアがない場合だと、コンピュートシェーダが動作をエミュレートしています。GeForce RTX系のものが出回るまでは、エミュレートした状態で作っていく感じなんでしょうね。

サンプル

GitHubにあるMicrosoftのサンプルをダウンロードします。サンプルのドキュメントを見ると4つのチュートリアルがあるようです。

  1. 三角形を描く
  2. 立方体をdiffuse shadingしたもの
  3. 複数のオブジェクトを手続き的に作り、複数の種類のレイで描画した複雑なもの
  4. 石造りの神殿みたいなシーンにレイトレースをいろいろな方法で使ったもの

実行環境

CPU:Core i7-8700K

GPU:GeForce GTX 1080 Ti(ドライバ:398.82)

OS:Windows 10 Home(バージョン:1803)

Visual Studio Community 2017(バージョン15.8.1)

問題の対処

実行しようと思ったところ問題になったことを書いておきます。Requirementsのところに書いてあるものもありますが、割と間違えると思います。

atlbase.hがないというエラー

#includeで指定しているファイルが見つからないということなのですが、これはVisual Studioに必要なものがないということが原因です。Visual Studio 2017ではC#だけとかC++だけいれるというように必要なものだけインストールできます。

atlbase.hはMFC/ATLを追加で入れれば使えるようになります。

自分のVisual Studioにインストールされているかは新しいプロジェクトを作成するときに開かれるウィンドウを確認すればわかります。インストール済みの欄にVisual C++があり、下図の赤線で示したMFC/ATLという表示があれば入っています。

この表示がない場合は入ってないので、インストールをする必要があります。インストールは同じウィンドウの下部にある「Visual Studio インストーラーを開く」という文字をクリックします。

押すと次のようにVisual Studio Installerというアプリが起動されます。「C++ によるデスクトップ開発」という項目を選択して追加でインストールすればMFC/ATLが使えるようになるはずです。

開発者モード

Windows10の設定にある開発者モードを有効にする必要があります。デフォルトだとOFF担っているようなので、手動で切り替えをします。

Windowsの設定画面で更新とセキュリティを選びます。

サイドメニューから開発者向けを選択し、開発者モードを有効にします。

バイナリのコピー

DirectX Raytracing SDKの上書きが必要です。

この記事を書いているときはこのリンクにあるDirectXRaytracingBinariesV1.3.zipをダウンロードしました。

このフォルダに入っているファイルすべてをDirectX-Graphics-Samples\Samples\Desktop\D3D12Raytracing\tools\x64フォルダにコピーします。

SDKのバージョンはサンプルのバージョンによって違うようなので、Requirementsでどのバージョンが必要なのか見ると良いです。