C++言語でDirectX 11を使ったアプリケーションを開発してみましょう。
DirectX 9の時との比較をしながらDirectX 11でのアプリケーションの作り方をまとめてみようと思います。
まずは、最近のDirectX事情を整理してみるところから。
OSとDirectXのバージョン
Windows OSのバージョンによって使用できるDirectXのバージョンは異なります。
DirectX | OS |
DirectX 12 | Windows 10のみ |
DirectX 11.3 | Windows 10のみ |
DirectX 11.2 | Windows 8.1以降 |
DirectX 11.1 | Windows 8以降 |
DirectX 11.0 |
Windows 7以降 Windows Vista SP2 + Platform Update |
DirectX 10.1 |
Windows Vista SP1以降 |
DirectX 10.0 |
Windows Vista以降 |
DirectX 9.0c |
Windows XP SP2以降 |
DirectX 12はアーキテクチャがかなり変わっている為、Windows 10ではDirectX 12に加えてDirectX 11の最新版も搭載しています。
ちなみに、Windows 10でもDirectX 9.0を使ったアプリケーションは動作します。(条件付きで)
※Windows 10にもd3d9.dllやd3d10.dllがある
※但し、追加ランタイム(d3dx9_??.dllなど)はないのでこれらを必要とするアプリは動かない
(エンドユーザランタイムを別途インストールすれば動く)
DirectXのDLL
基本ランタイム
d3d11.dllやd2d1.dllなどのファイル。
OSにプリインストールされていたり、Windows Updagteで更新されたりします。
SDK依存の追加ランタイム
d3dx11_??.dllなどのファイル。
OSが勝手に入れてくれはしません。
これらの追加ランタイムを使用するアプリは、別途「DirectX エンド ユーザー ランタイム」をインストールしなければならなりません。
※OSを新しくしたら古いアプリが動かないという場合の原因はだいたいコレ
DirectXのSDK
Windows 7までは「DirectX SDK」というものが提供されていました。
Windows 8以降では「DirectX SDK」は「Windows SDK」へ統合されています。
Visual Studio 2012以降であれば、別途DirectX SDKを入手する必要なくDirectXを使ったアプリケーションを開発する事が出来るようになっています。
DirectX 11を始めよう
2017年4月11日でWindows Vistaのサポートが終了している事を考えると、DirectX 11より前のバージョンを考慮する必要はほとんどない気がします。
そんな訳でこれから作るアプリならDirectX 11で始めましょう。
- ~プログラミング~ 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でテクスチャマッピング
コメントをお書きください