はじめに
DirectX 9.0c は長い間3Dプログラミングを支えてきました。 Windows XP のころから、現在の Windows10 に至るまで動作環境としては幅広いです。そして、長い間使用されたこともあって、インターネット上には多くの参考情報が残されています。
残念ながら現在の Visual Studio の環境では、当時のビルド設定ではビルドすることが出来ず、それらの参考情報を活用する手前の段階で躓いてしまいます。DirectX 9.0c は 3D プログラミングを始めるには丁度良い程度の複雑さであり、DirectX11 や DirectX12, Vulkan といった新しいものにチャレンジする前にやっておくのがよいと私は思っています。
こういった背景から、技術書典5にて「最新Visual Studio と DirectX 9.0Ex で戦う 3Dプログラミング」という同人誌を執筆しました。主に今の環境で DirectX9.0c を始めるための環境セットアップ本という位置付けです。
目次
全79ページ
- 第1章 はじめに
- なぜ今、DirectX 9.0Exなのか
- 3D数学について
- 動作環境について
- DirectXの歴史
- 本書でのDirectX 9.0c
- サンプルコードについて
- 第2章 DirectX 9.0Exの世界へ
- DirectX 9.0Exのメリット
- プロジェクトの準備
- ウィンドウモードアプリケーション
- フルスクリーンアプリケーション
- 仮想フルスクリーンのすすめ
- まとめ
- 第3章 ポリゴン描画の前の基礎知識
- 論理的なレンダリングパイプライン
- DirectX 9.0 (Ex)の論理的なレンダリングパイプライン
- Vertex ShaderとPixel Shader
- まとめ
- 第4章 ポリゴンを描画する
- DirectX Math
- シェーダーの準備
- 3⾓形ポリゴンの描画
- teapotの描画
- まとめ
- 第5章 テクスチャを使う
- 画像からテクスチャを作成する
- テクスチャありの描画
- その他の形式(DDS)について
- まとめ
- 第6章 配布について
- リリースビルドを使う
- VC++ランタイム問題
- DirectXに関する依存DLLについて
- デバイスロストへの対応
- まとめ
- 第7章 応⽤編
- 動的なシェーダーコンパイルへの対応
- ディファードレンダリング
- まとめ
- 第8章 DirectX 9.0 Ex新機能の話
- デバイスロストに関しての変更
- ソフトウェア頂点処理を無効化
- 1ビットサーフェース
- UpdateSurfaceでのDepth/Stencilバッファの読み取り対応
- リソースの共有
- システムメモリ内からテクスチャの⽣成
補足情報
Visual Studio 2017 で HLSL のテンプレートがおかしい問題がありました。
これについても、別記事で対処方法を書いていますので出遭ってしまっている人は参照して直してください。