テクスチャーを使った描画
前回のDirectX11の記事ではシェーダを使って矩形を描画するところまで行いました。
今回は、更に矩形にテクスチャーを張るところまでやっていこうかと思います。
DirectX11ではテクスチャーの読み込み処理などはサポートされていません。
以前はD3DXというヘルパー機能に含まれていましたが、D3DXも廃止となりました。
なので先ずは読み込み部分を何とかする方法から説明していきます。
DirectXTex
上でも書いたようにDirectX11ではテクスチャー読み込みなどの機能は無くなりました。
とはいってもMicrosoft様は全くサポートを無くした訳ではありません。
なんとテクスチャー周りの実装をDirectXTexというライブラリで用意してくれています。
・ソースコード
https://github.com/Microsoft/DirectXTex
ソースコードはGitHubで公開されています。
Gitで取得してもいいのですが、現在の最新盤を取得するだけなら[Clone or download]から[Download ZIP]でダウンロードできます。
ダウンロード後は自前でビルドする必要がありますが、
Visual Studioで立ち上げて必要な構成でビルドするだけです。
コードが全て公開されていますので、自前でテクスチャー読み込みを作成する参考にもなります。
DirectXTexのビルド方法
DirectXTexのビルド方法を簡単に説明しておきます。
今回はVisual Studio 2019(Windows10)での方法です。
先ず、ダウロードしたDirectXTexフォルダ内の下記を開きます。
・DirectXTex_Desktop_2019_Win10.sln
紛らわしいのですが、DirectXTex_Windows10.slnはWindows Store向けのプロジェクトとなります。
このサイトでは基本的にDesktopアプリケーションについての説明を記載していますのでDesktop_2019の方を使います。
今回はx64でDirectX11のプロジェクトを作成しているのでx64のDebugとReleaseでそれぞれビルドします。
ビルド後は下記のフォルダにDebugとReleaseのビルド結果が出力されます。
[プロジェクト]/DirectXTex/Bin/Desktop_2019_Win10/x64
それぞれDebugとReleaseのフォルダから下記のファイルを自分のプロジェクトにコピーします。
- DirectXTex.lib
- DirectXTex.pdb
後は、DirectXTexのヘッダーをコピーして持って来れば準備は完了です。
必要なヘッダーは下記の通りです。
[プロジェクト]/DirectXTex
- DirectXTex.h
- DirectXTex.inl
これらをプロジェクト内の任意のフォルダにコピーして使用します。
今回はDirectX用のプロジェクトの下記に配置します。
[ソリューションのあるディレクトリ]/ThirdParty/DirectXTex
DirectXTex
┣ヘッダー類
┗ x64 ━ DebugとReleaseフォルダ ━ libファイル類
これでビルドして必要なものは一通り揃います。
プロジェクトの設定
DirectXTexを自分のプロジェクトに配置の次はプロジェクトの設定を行います。
・includeパスの追加
[C/C++] -> [全般] -> [追加のインクルードディレクトリ]
ここに$(SolutionDir)ThirdPartyと値を追加します。
・ライブラリパスの追加
[C/C++] -> [全般] -> [追加のライブラリディレクトリ]
ここに$(SolutionDir)ThirdPartyと値を追加します。
これで使用するための準備が整います!
ビルドして配置してプロジェクトの設定と色々とありましたが、ついにここからテクスチャーの読み込みを実装です。