DirectXは難しすぎますが、
分かりやすいサンプルを心掛けていこうと思います。
準備
まず、統合開発環境プラットフォーム(IDE)とDirectX12、SDKを用意します。
実行環境は以下の通り。
- IDE: Visual Studio 2019 Community
- OS: Windows10
- DX: DirectX12
- SDK: Windows10 SDK (Ver: 10.0.18362.0)
DirectX12とSDKは、Windows10をPCに入れていれば、誰でも持っています。
DirectXを持っているかかつバージョンを確認するには、コマンドプロンプトを開いて「dxdiag」と打ち込みます。
すると、「DirectXのバージョン:」の項目で” DirectX12 “と記載されていればOKです。。
初期設定
プロジェクトの作成
Visual Studio を立ち上げて、
1.新しいプロジェクトの作成
2.Windows デスクトップ ウィザード
3.「プロジェクト名」の項目は” 0001_Initialization “としておいて、
「ソリューション名」の項目では” DirectX12_Sample “としておきます。
作成ボタンを押します。
4.「Windows デスクトップ ウィザード」のダイアログボックスが出ますので、
「アプリケーションの種類」の項目で “デスクトップ アプリケーション (.exe)”を選びましょう。
そして、「追加のオプション:」の項目で「空のプロジェクト」にチェックを入れます。
OKボタンを押します。
これらの順序を間違えてプロジェクトを作成してしまっても安心してください。
後で変更可能です。
プロジェクトの設定
ツールバーにある「プロジェクト」から「プロパティ」をクリック。
すると、以下のダイアログ画面が出るので、
「構成プロパティ」→「VC++ディレクトリ」を選択します。
上の画像の「インクルードディレクトリ」と「ライブラリディレクトリ」の項目がそれぞれ、
$(VC_IncludePath);$(WindowsSDK_IncludePath);
$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86)
になっているか確認してください。
今回の作例ではx64ではなく、x86としています。
これを確認するところは、プロパティダイアログで
「リンカー」→「詳細設定」の中にある「対象コンピューター」という項目で、
「MachineX86 (/MACHINE:X86)」が選ばれていたら大丈夫です。
あと、メイン画面の上で「Debug」になっていて、その横で「x86」となっていたらOK。↓
また、冒頭のプロジェクト作成で「コンソール アプリケーション (.exe)」を選んでしまった場合でも、以下でデスクトップアプリケーションに変更できます。
プロパティダイアログで、
「リンカー」→「システム」の中の「サブシステム」という項目で、
Windows (/SUBSYSTEM:WINDOWS)
に書き換えるor確認してください。
この変更をしないと、ビルドするときにエラーになります。
ここでの意味は、コンソールではなくウィンドウで出力しましょうということです。
ソースコード
またまたプロジェクト設定の続きなのですが、
読み込むライブラリを設定する必要があります。
これをしないとリンカ中にエラーになります。
先ほどと同じようにプロパティダイアログから、
「リンカー」→「入力」の中の「追加の依存ファイル」という項目で
d3d12.lib;dxgi.lib;%(AdditionalDependencies)
を入れ込みます。
ちなみに、これをしない場合は、main.cppソースの中で#includeの後に以下を挿入する必要があります。
#pragma comment(lib, "d3d12.lib")
#pragma comment(lib, "dxgi.lib")
今回は、これをやるのにいちいち手間なので#pragmaをソースに記述しています。
これで準備完了です!
以下がソースです。main.cppだけでまとめて流れが分かりやすいようにしました。ちなみに言語はC++で書かれています。
Microsoft公式のサンプルソース(Github)を基にMSDNを参考にしながら噛み砕いて省いて整えましたので、初心者にとっては一番わかりやすいかと思います。
以下のソースをコピペするか、ダウンロードしてVisual Studio の「ソースファイル」に保存してください。
コピペするなら、
「ソースファイル」で右クリックして
「追加」→「新しい項目」で、「C++ ファイル」を選び、名前を” main.cpp “にして追加ボタンを押して作成してください。
ダウンロードなら、
同じく「ソースファイル」で右クリックして
「追加」→「既存の項目」で、main.cppを選択して追加してください。
あと、ソースの冒頭にあるようにインクルードで、
#include "d3dx12.h"
がありますので、以下のヘッダファイルをダウンロードしてプロジェクトの「ヘッダー ファイル」に「既存の項目」から追加してください。
以下のようになっていればOK。
以上で作成は完了です!!
ツールバーの「デバッグ」から「デバッグの開始(F5)」で実行できます。
画面にブルー画面が表示できたら終わりです。お疲れさまでした。
まとめ
どうでしょうか?
DirectXは無駄に痒いところに手が届くので、初期化だけでもコード量は多くなってしまいます。DirectX12なら現時点では一番バージョンが新しいので高機能・高性能で尚更です。。
これで偉大な一歩は出来たと思うのでこれからが本番です。
頑張りましょう!!