Direct3D12 ゲームグラフィックス実践ガイド

書籍情報

発売日 : 2021年10月15日

著者/編集 : Pocol

出版社 : 技術評論社

発行形態 : 単行本

書籍説明

内容紹介

現役ゲーム開発者が理論と実装で徹底解説。

目次

Chapter1 プログラミングを始める前に
1.1 コンピュータグラフィックスとテクノロジーの発展
1.2 Direct3D概論
1.3 画面にポリゴンが表示されるまでの工程
 1.3.1 大まかな流れ
 1.3.2 描画コマンドの作成
 1.3.3 レンダリングパイプライン
 1.3.4 コンピュートパイプライン
1.4 Direct3D 12はどこが変わった?
 1.4.1 コマンドリストとコマンドキュー
 1.4.2 パイプラインステート
 1.4.3 ディスクリプタ
 1.4.4 ルートシグニチャ
 1.4.5 バンドル
 1.4.6 インダイレクトコマンド
 1.4.7 シェーダモデル 6.0
 1.4.8 レイトレーシングパイプライン
 1.4.9 可変レートシェーディング
 1.4.10 メッシュシェーダパイプライン
 1.4.11 サンプラーフィードバック
1.5 開発環境の構築
 1.5.1 開発環境について
 1.5.2 Visual Studioのインストール
 1.5.3 グラフィックスツールの設定

Chapter2 ウィンドウの表示
2.1 プロジェクトの作成
2.2 アプリケーションクラスの作成
 2.2.1 Appクラスの実装
 2.2.2 Appクラスの呼び出し
2.3 Direct3D 12の初期化処理
 2.3.1 デバイスの生成
 2.3.2 コマンドキューの生成
 2.3.3 スワップチェインの生成
 2.3.4 コマンドリストの生成
 2.3.5 レンダーターゲットビューの生成
 2.3.6 フェンスの生成
2.4 Direct3D 12の描画処理
 2.4.1 コマンドの記録開始
 2.4.2 書き込みのためのリソースバリア
 2.4.3 レンダーターゲットビューの設定
 2.4.4 表示のためのリソースバリア
 2.4.5 コマンドの記録終了とコマンドリストの実行
 2.4.6 表示処理
2.5 Direct3D 12の終了処理
2.6 リファクタリング
2.7 スマートポインタの使用
2.8 デバッグフラグの追加
2.9 メモリリークチェック

Chapter3 ポリゴンの表示
3.1 シェーダの準備
 3.1.1 シェーダファイルの作成
 3.1.2 頂点シェーダの実装
 3.1.3 ピクセルシェーダの実装
3.2 描画に必要なインタフェースの生成
3.3 頂点バッファの生成
 3.3.1 頂点データの準備
 3.3.2 リソースの生成
 3.3.3 頂点データの書き込み
 3.3.4 頂点バッファビューの設定
3.4 定数バッファの生成
 3.4.1 定数バッファデータの定義
 3.4.2 ディスクリプタヒープの生成
 3.4.3 リソースの生成
 3.4.4 定数バッファビューの生成
3.5 ルートシグニチャの生成
 3.5.1 ルートパラメータの種類
 3.5.2 ルートシグニチャの生成
3.6 グラフィックスパイプラインステー
 3.6.1 入力レイアウトの設定
 3.6.2 ラスタライザーステートの設定
 3.6.3 ブレンドステートの設定
 3.6.4 シェーダの設定
 3.6.5 パイプラインステートの生成
3.7 描画コマンドの生成
3.8 インデックスバッファ
 3.8.1 インデックスバッファの生成
 3.8.2 描画処理の変更
3.9 複数図形の描画
 3.9.1 Zバッファ法
 3.9.2 深度ステンシルビューの生成
 3.9.3 深度ステンシルステートの設定
 3.9.4 描画処理の変更

Chapter4 テクスチャの表示
4.1 テクスチャとは?
 4.1.1 画像形式
 4.1.2 テクスチャ座標
 4.1.3 テクスチャアドレッシングモード
 4.1.4 ミップマップ
 4.1.5 テクスチャフィルタリング
4.2 DirectXTKライブラリの利用
 4.2.1 DirectXTK12のインストール
 4.2.2 テクスチャデータの準備
4.3 テクスチャの描画
 4.3.1 シェーダの準備
 4.3.2 頂点バッファの変更
 4.3.3 ルートシグニチャの変更
 4.3.4 テクスチャの生成
 4.3.5 描画関数の変更

Chapter5 メッシュの表示
5.1 assimpライブラリを利用したモデルの描画
 5.1.1 assimpライブラリのインストール
 5.1.2 メッシュファイルの準備
 5.1.3 ファイルのロード処理
 5.1.4 メッシュデータの変換処理
 5.1.5 メッシュの描画
5.2 フレームワークの整備
 5.2.1 ディスクリプタプールクラス
 5.2.2 テクスチャクラス
 5.2.3 定数バッファクラス
 5.2.4 メッシュクラス
 5.2.5 マテリアルクラス

Chapter6 基本的なライティング
6.1 光と材質
6.2 Lambertモデル
6.3 Phongモデル
6.4 バンプマッピング
 6.4.1 法線マップとは?
 6.4.2 法線マップの計算方法
 6.4.3 接線空間への基底変換
 6.4.4 バンプマッピングの実装
 6.4.5 ワールド空間への基底変換

Chapter7 光の数値化
7.1 立体角
7.2 光
7.3 放射分析学
 7.3.1 放射エネルギー(radiant energy)
 7.3.2 放射束(radiant flux)
 7.3.3 放射照度(irradiance)
 7.3.4 放射発散度(radiant exitance)
 7.3.5 放射強度(radiant intensity)
 7.3.6 放射輝度(radiance)
7.4 測光学
 7.4.1 錐状体
 7.4.2 分光視感度(spectral luminous efficacy)
 7.4.3 光束(luminous flux)
 7.4.4 光度(luminous intensity)
 7.4.5 照度(illuminance)
 7.4.6 光束発散度(luminous exitance)
 7.4.7 輝度(luminance)
7.5 放射量と測光量の単位変換

Chapter8 光伝達のモデル化
8.1 光の伝達を表現するには?
8.2 どのぐらい光が出射される?
 8.2.1 双方向散乱面反射率分布関数
 8.2.2 双方向反射率分布関数
8.3 BRDFモデル
 8.3.1 Lambertモデル
 8.3.2 Phongモデル
8.4 オフスペキュラー
 8.4.1 フレネル反射
 8.4.2 シャドウイングとマスキング
8.5 マイクロファセットに基づくBRDF
 8.5.1 マイクロサーフェイス
 8.5.2 マイクロサーフェイスの射影
 8.5.3 マイクロファセットに基づくBRDFの導出
 8.5.4 シャドウイング・マスキング関数
 8.5.5 Cook-Torranceモデル
 8.5.6 GGXモデル

Chapter9 色を適切に扱う
9.1 色を表現する
 9.1.1 混色
 9.1.2 等色実験
 9.1.3 CIE 1931 RGB表色系
 9.1.4 CIE 1931 XYZ表色系
 9.1.5 xy色度図
9.2 ディスプレイへの出力
 9.2.1 ガンマ補正
 9.2.2 伝達関数
 9.2.3 色空間の変換
9.3 色の規格
 9.3.1 IEC 61966-2-1規格(sRGB規格)
 9.3.2 ITU-R BT.709勧告
 9.3.3 ITU-R BT.2100勧告
9.4 トーンマッピング
 9.4.1 Reinhardトーンマッピング
 9.4.2 HDRディスプレイとトーンマッピ
 9.4.3 Reinhardトーンマッピングの拡張
 9.4.4 GTトーンマップ
9.5 プログラムの実装
 9.5.1 HDRサポートのチェック
 9.5.2 HDR画像の準備
 9.5.3 レンダーターゲットのフォーマッ
 9.5.4 色域変換
 9.5.5 トーンマッピングの適用
 9.5.6 OETFの適用

Chapter10 ライトの種類と表現
10.1 光束と放射束の単位変換
10.2 パンクチュアルライト
 10.2.1 ポイントライト
 10.2.2 スポットライト
 10.2.3 光の減衰
 10.2.4 ディレクショナルライト
10.3 フォトメトリックライト
 10.3.1 配光測定のための座標系
 10.3.2 IESプロファイルの仕様
 10.3.3 IESプロファイルの変換
 10.3.4 IESプロファイルの適用
10.4 イメージベースドライト
 10.4.1 逆変換法
 10.4.2 モンテカルロ積分法
 10.4.3 ライトプローブのフィルタリング
 10.4.4 ライトプローブの評価

Chapter11 メッシュシェーダパイプライン
11.1 メッシュシェーダとは?
11.2 ポリゴンの描画
 11.2.1 メッシュシェーダの実装
 11.2.2 パイプラインステートの生成
 11.2.3 描画コマンドの発行
11.3 メッシュレットを用いた描画
 11.3.1 メッシュレットの生成
 11.3.2 シェーダの実装
 11.3.3 描画メソッドの修正

AppendixA デバッグの仕方
A1 基本的なデバッグ操作
 A1.1 ブレークポイント
 A1.2 データウォッチ
 A1.3 ステップ実行
 A1.4 特定の場所に移動する
 A1.5 コールスタック
 A1.6 メモリの表示
 A1.7 データブレーク
 A1.8 CRTデバッグライブラリ
 A1.9 並列スタック/並列ウォッチ
A2 Direct3D 12のデバッグ
 A2.1 デバッグレイヤーの有効化
 A2.2 GPUクラッシュの解析
A3 PIX for Windowsを用いたグラフィックスデバッグ
 A3.1 インストールとプログラムの起動方法
 A3.2 GPUキャプチャー方法
 A3.3 Pipelineビュー
 A3.4 頂点シェーダのデバッグ
 A3.5 ピクセルシェーダのデバッグ

AppendixB DirectX Agility SDKの使用
B1 Agility SDKの使用方法
B2 Agility SDKの動作について

著者情報

Pocol
Direct3D12 ゲームグラフィックス実践ガイド

4,378円 (税込)

楽天