川野 竜一 著
「DirectX 9~11に比べて超高機能/高性能だと聞いたけれど、
複雑すぎて何をしているかわからない」
「ゲームエンジンのメンテナンスをするために、
最新のDirectXの基礎を知りたい」
「フルスクラッチでMMDのモデルを
表示/アニメーションさせてみたい」
そんなC++プログラマーに向けた、
DirectX 12の「導きの書」がついに登場!
◆3Dグラフィックスの基礎
◆グラフィックスパイプラインとステージ
◆PMDデータの読み込みと描画
◆VMDデータの読み込みとアニメーション再生
◆IK
◆ポストエフェクト
など、本当に知りたかった
DirectX 12プログラミングの基本がこの1冊に!!
DirectXは初めてという人も、
DirectX 9や10で止まってしまっている人も、
本書を心強い相棒にして、挑戦の旅へと出掛けましょう!
■Part 1 基礎理論編
Chapter 1 前提となる知識とDirectX 12の概略
1.1 本書で使用するC++
1.2 本書で使用する数学
1.3 初歩的なレンダリング理論
1.4 ハードウェアの基礎知識
1.5 DirectXの歴史と変化
Chapter 2 グラフィックスパイプラインとさまざまなシェーダー
2.1 グラフィックスパイプラインとは
2.2 シェーダーとは
■Part 2 実践編(1)
Chapter 3 初期化から画面クリアまで
3.1 最初のプロジェクト
3.2 ウィンドウ表示とDirect3Dの初期化
3.3 画面色のクリア
3.4 エラー対応
Chapter 4 ポリゴンの表示
4.1 グラフィックスパイプラインのおさらい
4.2 頂点情報の作成
4.3 頂点バッファー
4.4 頂点情報のコピー(マップ)
4.5 はじめてのシェーダー
4.6 シェーダーの読み込みと生成
4.7 頂点レイアウト
4.8 グラフィックスパイプラインステートの作成
4.9 ルートシグネチャ
4.10 ビューポートとシザー矩形
4.11 三角形ポリゴンを四角形にしてみる
Chapter 5 ポリゴンにテクスチャを貼り付ける
5.1 DirectX 12におけるテクスチャ
5.2 頂点情報にuv情報を追加する
5.3 シェーダーにuv情報を追加する
5.4 テクスチャデータの作成
5.5 テクスチャバッファー
5.6 ID3D12Resource::WriteToSubresource()メソッドによるデータ転送
5.7 シェーダーリソースビュー
5.8 ルートシグネチャにスロットとテクスチャの関連を記述する
5.9 描画時の設定
5.10 ピクセルシェーダーのプログラムを変更
5.11 画像ファイルを読み込んで表示する
5.12 ID3D12GraphicsCommandList::CopyTextureRegion()メソッドによる転送
5.13 d3dx12.h(CD3DX~)の導入
Chapter 6 行列による座標変換
6.1 行列の基本
6.2 定数バッファーとシェーダーからの利用
6.3 行列を変更してみる(2D編)
6.4 行列を用いて3D化してみる
6.5 回転アニメーションさせてみよう
Chapter 7 PMDの読み込みとモデルの表示
7.1 MMDのダウンロード
7.2 PMDデータとは
7.3 PMDにおける頂点データ
7.4 PMDヘッダー構造体
7.5 PMDの頂点構造体とレイアウトの準備
7.6 読み込んだ頂点データの描画
7.7 インデックスデータの読み込みと利用
7.8 法線データの表示
7.9 深度バッファーの導入
7.10 ランバートの余弦則
7.11 シェーダー側でランバートの余弦則を実装する
7.12 法線ベクトルも回転させて正しい結果を得る
Chapter 8 マテリアル(材質)
8.1 マテリアルとは
8.2 PMDファイルからマテリアルデータを読み込む
8.3 シェーダーへの転送と表示
8.4 マテリアルに合わせてテクスチャを貼る
8.5 テクスチャの有無に応じた処理
8.6 他のモデルも試してみよう
8.7 スペキュラとアンビエントの実装
8.8 テクスチャファイルがTGAやDDSの場合
8.9 トゥーンシェーディング
Chapter 9 リファクタリング
9.1 便利なクラスや構造体・マクロ
9.2 main.cppからApplicationクラスへ
9.3 用途によって簡単な分類を行う
9.4 結果としてのApplication.cpp
■Part 3 実践編(2)
Chapter 10 スキニングとアニメーション
10.1 スキニング(スキンメッシュアニメーション)
10.2 ボーン情報のロード
10.3 ツリーの構築
10.4 頂点シェーダーでボーン行列の配列を扱う
10.5 ボーン行列バッファーの作成
10.6 回転行列でモデルにポーズを付ける
10.7 MMDのアニメーションデータ(VMDファイル)
10.8 クォータニオンと回転行列
10.9 VMDデータを読み込んでポーズを付ける
10.10 VMDデータを使ったアニメーション
10.11 ベジェ曲線補間と2つの近似法
10.12 ベジェによるイーズインイーズアウトの実装
Chapter 11 インバースキネマティクス(IK)
11.1 インバースキネマティクス(IK)とは
11.2 余弦定理を用いた簡易的IK(間点が1つ)
11.3 CCD-IK(間点が複数)
11.4 2DにおけるCCD-IKの実装
11.5 PMDにおけるCCD-IK
11.6 その他VMDやIKの仕様を考慮する
Chapter 12 マルチパスレンダリング
12.1 マルチパスレンダリングとは
12.2 レンダリング先を変更しテクスチャとして利用する
12.3 単純なポストエフェクト
Chapter 13 影行列とシャドウマップ
13.1 シャドウ(影)とは
13.2 影行列を用いた地面影
13.3 シャドウマップの導入(マルチパスの応用)
■Part 4 応用編
Chapter 14 マルチレンダーターゲットとその応用
14.1 ピクセルシェーダーの出力を複数にする(色・法線)
14.2 色・法線情報によるディファードシェーディング
14.3 高輝度成分抽出とブルーム(光のもれ)
14.4 簡易的な被写界深度の実装
Chapter 15 スクリーンスペースアンビエントオクルージョン(SSAO)
15.1 アンビエントオクルージョンとは
15.2 数式から考えるアンビエントオクルージョン
15.3 スクリーンスペースアンビエントオクルージョン(SSAO)の実装
■Part 5 ライブラリ編
Chapter 16 imguiの利用
16.1 imguiとは
16.2 imguiの組み込み
16.3 imguiの活用例
Chapter 17 Effekseerライブラリの利用
17.1 Effekseerとは
17.2 Effekseerライブラリの取得と準備
17.3 Effekseerライブラリの組み込み
Chapter 18 DirectXTKの利用(文字列表示)
18.1 DirectXTKとは
18.2 DirectXTK12の入手
18.3 DirectXTKの組み込み
18.4 フォントを指定して文字列を表示する
18.5 文字セットの作成と日本語表示
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||
---|---|---|---|---|---|---|---|---|---|
1刷 | 048 上から2番目のコードの3行目および4行目 |
未 | 未 |
|
2020.03.18 | ||||
1刷 | 066 1つ目のコード3行目 |
未 | 未 |
|
2020.05.29 | ||||
1刷 | 078 本文下から2行目 |
未 | 未 |
|
2020.03.03 | ||||
1刷 | 083 3つ目のコード、1行目 |
未 | 未 |
|
2020.03.18 | ||||
1刷 | 136 2つ目、3つ目の箇条書き |
未 | 未 |
|
2020.05.29 | ||||
1刷 | 145 1つ目のコード直後 |
未 | 未 |
|
2020.02.25 | ||||
1刷 | 146 2つ目のコード |
未 | 未 |
|
2020.03.18 | ||||
1刷 | 159 コード最終行 |
未 | 未 |
|
2020.03.02 | ||||
1刷 | 174 本文下から7行目 |
未 | 未 |
|
2020.03.06 | ||||
1刷 | 177 本文1行目 |
未 | 未 |
|
2020.02.18 | ||||
1刷 | 198 6.1.2直前の本文 |
未 | 未 |
|
2020.05.29 | ||||
1刷 | 199 1つ目のNote |
未 | 未 |
|
2020.05.29 | ||||
1刷 | 201 本文下から2行目末 |
未 | 未 |
|
2020.02.20 | ||||
1刷 | 208 本文3行目(2つ目のコード直後) |
未 | 未 |
|
2020.03.18 | ||||
1刷 | 228 2段落目先頭行 |
未 | 未 |
|
2020.02.18 | ||||
1刷 | 263 Note内2行目 |
未 | 未 |
|
2020.02.25 | ||||
1刷 | 300 コード5行目および6行目 |
未 | 未 |
|
2020.03.02 | ||||
1刷 | 301 Note内コード4行目および5行目 |
未 | 未 |
|
2020.03.02 | ||||
1刷 | 301 1つ目および2つ目のコード、構造体内メンバー |
未 | 未 |
|
2020.03.02 | ||||
1刷 | 302 1つ目のコード、構造体内メンバー |
未 | 未 |
|
2020.03.02 | ||||
1刷 | 304 1つ目のコード、2行目 |
未 | 未 |
|
2020.03.02 | ||||
1刷 | 314 1つ目のコード中のfor文 |
未 | 未 |
|
2020.09.25 | ||||
1刷 | 329 3つ目のコード |
未 | 未 |
|
2020.03.18 | ||||
1刷 | 382 本文5行目 |
未 | 未 |
|
2020.05.29 | ||||
1刷 | 448 コード7行目 |
未 | 未 |
|
2020.03.18 | ||||
1刷 | 449 本文 上から4行目 |
未 | 未 |
|
2020.05.25 | ||||
1刷 | 464 図12.1 左側のオブジェクト |
未 | 未 |
|
2020.05.29 | ||||
1刷 | 484 図12.13 右上下、左下 |
未 | 未 |
|
2020.05.29 | ||||
1刷 | 507 数式(2) |
未 | 未 |
|
2020.05.29 | ||||
1刷 | 589 4つ目のコード末尾 |
未 | 未 |
|
2020.05.29 | ||||
1刷 | 621 本文6行目および囲み記事「Releaseビルドの場合」内(2箇所) |
未 | 未 |
|
2020.05.29 |