とあるゲームプログラマの挑戦と敗北の歴史

UE4とプログラミングとmayaとpythonとhtmlとマラソンを中心に情報を発信する元「技術ブログを目指すブログ」から再始動した毎日の日々を発信するブログです。

DirextX:魔導書のサンプルの動かし方#DirectXTex

ご存じDirectX12の魔導書を購入
ひさしぶりにDirectXを学習してみようと思う。

Amazon.co.jp: DirectX 12の魔導書 3Dレンダリングの基礎からMMDモデルを踊らせるまで eBook: 川野 竜一: Kindleストア

f:id:toncrimentan_w:20210225191629p:plain

が・・わたしのダウンロードの仕方がまずいのか
サンプルがコンパイルが通らないので対処方法のおぼえ書きしておく。



サンプルデータのダウンロードの仕方)
読み進めていくとこちらからもってけといわれるので
会員登録せずにダウンロードをクリック
https://www.shoeisha.co.jp/book/download/9784798161938
f:id:toncrimentan_w:20210225192236p:plain


つづいてサンプルデータをクリックしダウンロードが始まる。
https://www.shoeisha.co.jp/book/download/9784798161938/detail
f:id:toncrimentan_w:20210225192303p:plain


dirextx12_samples-master.zipを解凍しDx12BookSamples.slnを起動
ビルドすればサンプルを確認できるぞ
f:id:toncrimentan_w:20210225192636p:plain

・・とおもいきや、動かないプロジェクトがあったため修正が必要な模様。



Chapter03 Chapter04)
チャプター3と4は問題なくビルドが通ります。
魔導書とソースコードを解析し学習するとよい
f:id:toncrimentan_w:20210225200301p:plain

うごいた
f:id:toncrimentan_w:20210225200150p:plain



Chapter05~)
チャプター5以上は注意が必要
f:id:toncrimentan_w:20210225193401p:plain


includeファイルが開けませんとのエラーが出てしまいコンパイルが通らない
f:id:toncrimentan_w:20210225193431p:plain


ネットで検索してみると
DirectXTexをgithubから取得しビルドし自分でリンクを張る必要があるとのこと
うーんそういうものなの。
https://araramistudio.jimdo.com/2017/10/13/プログラミング-DirectXTexライブラリを導入しよう/


GithubからDirextXTexのプロジェクトを取得する
https://github.com/Microsoft/DirectXTex
f:id:toncrimentan_w:20210225193947p:plain


DirextXTex-master.zipを解凍しVisualStudioのバージョンに合わせたslnを開く
ビルドすればlibを作成することができる。
私の場合はDirectXTex_Desktop_2019.slnで進めたところうまくいきました。
f:id:toncrimentan_w:20210225194326p:plain


ビルドに成功すると
DirectXTex-master\DirectXTex\Bin\Desktop_2019\x64\Debugに
DirectXTex.libというライブラリが作られている。
f:id:toncrimentan_w:20210225195223p:plain


ヘッダーファイルのパスとライブラリのパスが分かるので
そのパスをDx12BookSamplesのプロジェクトに追加する必要があります。
C:\toncrimentan\dirextx\DirectXTex-master\DirectXTex
C:\toncrimentan\dirextx\DirectXTex-master\DirectXTex\Bin\Desktop_2019\x64\Debug


Dx12BookSamplesのChapter05プロジェクトのプロパティを開く
構成プロパティ>C/C++>全般 を選択
追加のインクルードディレクトリに追加のパスを設定̻
パスの違いはローカル環境によって違うのでその辺はよしなにしてください。
$(DXTEX_DIR);C:\toncrimentan\dirextx\DirectXTex-master\DirectXTex
f:id:toncrimentan_w:20210225195440p:plain


構成プロパティ>リンカー>全般 を選択
追加のライブラリディレクトリに追加のパスを設定
$(DXTEX_DIR)\Bin\Desktop_2017_Win10\x64\Debug;C:\toncrimentan\dirextx\DirectXTex-master\DirectXTex\Bin\Desktop_2019\x64\Debug
f:id:toncrimentan_w:20210225195832p:plain

無事ビルドがとおってうごいた
f:id:toncrimentan_w:20210225200439p:plain



Chapter06~)
チャプター6以上もまた注意が必要
&に左辺値がありません。とかいうエラーが出てしまう
f:id:toncrimentan_w:20210225200833p:plain


きっとDirextXの仕様がかわったのかな?
&がつかえないなら無理やり一回変数に置き換え引数として指定してしまえばよい。

図はCD3DX12_HEAP_PROPERTIESとCD3DX12_RESOURCE_DESCを一度変数に置き換え
CreateCommittedResourceの引数として使っている
同様の箇所が全部で8か所あるので根性で置き換えてみた。
f:id:toncrimentan_w:20210225201057p:plain

よし動いた!
f:id:toncrimentan_w:20210225201352p:plain



とりあえず
チャプター6まではこの手順で動きそう。
それ以降はわからんが・・