DirectX 9の時代にはD3DXCreateTextureFromFileのような画像ファイルを簡単に読み込む為の関数がありました。しかし、時代が進み DirectX SDK が Windows SDK へ統合されたタイミングからD3DXは廃止され使う事が出来なくなってしまいました。
D3DXは廃止されましたが代わりとなる DirectXMath・DirectX Tool Kit・DirectXTexといったライブラリが作られており、D3DXにあったテクスチャ関連の関数は DirectXTex に引き継がれています。
ここでは、DirectXTexライブラリを導入する方法について解説します。
DirectXTexライブラリをダウンロード
DirectXTexライブラリは WindowsSDK には含まれていません。
使うためにはライブラリをダウンロードする必要があります。
DirectXTexライブラリはサイト http://directxtex.codeplex.com/ で管理されています。
[Clone or download▼]ボタンからプロジェクト一式をダウンロードする事が出来ます。
DirectXTexライブラリをコンパイル
プロジェクトがダウンロード出来たらコンパイルします。
ダウンロードしただけではlibファイルは存在しません。自身でコンパイルしてlibファイルを作成する必要があります。
ダウンロードしたファイルの中にVisual Studioのバージョンに合わせたソリューションファイルがあります。自身の環境にあったソリューションファイルを使ってプロジェクトを開きビルドしましょう。
正しくビルド出来たらDirectXTex\Binフォルダの下にDirectXTex.libファイルが出来上がります。
自身のプロジェクトへライブラリを追加
ライブラリファイルが作成できたら自身のプロジェクトへ追加しましょう。
自身のプロジェクトを開きメニューから[プロジェクト(P)]→[プロパティ(P)]を開きます。
[C/C++]→[全般]にある「追加のインクルードディレクトリ」へDirectXTex.hがあるフォルダを、
[リンカー]→[全般]にある「追加のライブラリディレクトリ」へDirectXTex.libがあるフォルダを追加します。
※DirectXTex.libはDebugとReleaseでそれぞれのフォルダへ作成されるので「構成(C)」毎に参照するフォルダを変えておくと良いでしょう。
DDSTextureLoaderとWICTextureLoader
ダウンロードしたファイルの中には、画像の読み込みをさらに簡単にしてくれるDDSTextureLoaderとWICTextureLoaderというファイルがあります。
DDSフォーマットの画像を読み込む場合はDDSTextureLoaderを、それ以外のJPEG・PNG・BMPなどの画像を読み込む場合はWICTextureLoaderをという感じで使い分けます。
これらを使う場合はプロジェクトのプロパティから「追加のインクルードディレクトリ」へDDSTextureLoaderフォルダとWICTextureLoaderフォルダをそれぞれ追加しましょう。
プリコンパイル済みヘッダー(stdafx.h、stdafx.cpp)を使っている場合は、
stdafx.hの中でxxxTextureLoader.hを、
stdafx.cppの中でxxxTextureLoader.cppをインクルードするのが良さそうです。
stdafx.h
: : #include "DDSTextureLoader.h" #include "WICTextureLoader.h" using namespace DirectX; : :
stdafx.cpp
: : #include "DDSTextureLoader.cpp" #include "WICTextureLoader.cpp" : :
- ~プログラミング~ DirectX 11を始めよう
- ~プログラミング~ DirectX 11はDirectX 9と何が違うか その1
- ~プログラミング~ DirectX 11はDirectX 9と何が違うか その2
- ~プログラミング~ DirectX 11の初期化をしよう その1
- ~プログラミング~ DirectX 11の初期化をしよう その2
- ~プログラミング~ DirectX 11で深度/ステンシルバッファを準備しよう
- ~プログラミング~ DirectX 11でシェーダーをコンパイルしよう
- ~プログラミング~ DirectX 11で三角形を表示しよう
- ~プログラミング~ DirectX 11の頂点バッファとインデックスバッファ
- ~プログラミング~ DirectX 11で立体を表示しよう その1
- ~プログラミング~ DirectX 11で立体を表示しよう その2
- ~プログラミング~ DirectX 11で平行光源ライティング
- ~プログラミング~ DirectX 11で点光源ライティング
- ~プログラミング~ DirectX 11で拡散反射 (Diffuse reflection)
- ~プログラミング~ DirectX 11で鏡面反射 (Specular reflection)
- ~プログラミング~ DirectX 11で環境反射 (Ambient reflection)
- ~プログラミング~ DirectX 11でフォン反射モデル
- ~プログラミング~ DirectXTexライブラリを導入しよう
- ~プログラミング~ DirectX 11でテクスチャマッピング
コメントをお書きください