【どんな本なの?】
・異世界を舞台にした対話形式の物語で気軽にHTTP/3の概要を学べます
・対話の後に詳細解説コーナーもあるので、少し深掘りした内容まで把握できます
・HTTP/2のおさらいから始まるのでHTTP/2の知識がない人でも安心です
【読む為に必要なスキル】
・TCPやHTTP/1.1のことを何となくわかっている方が望ましいです
・パケットロストや暗号化等のネットワークの基礎知識もほんのりあると理解が深まるでしょう
・HTTP/2の知識はまったくもって不要です
【得られる知識】
・HTTP/2の特徴と弱点
・HTTP/3の仕組み
【こんな人にお勧め】
・HTTP/3の概要や機能を一通り抑えておきたい人
・新しいプロトコルはとりあえず試してみたい人
・HTTP/3のドラフトを読むのを挫折した人
【こんな人には向いてないかも】
・HTTP/3やQUICの詳細な仕様や実装を知りたい人
サンプルについてはリンク先を参照してください。
紙本は20冊を予定していますが、ダウンロードカード版も持っていきます。
DirectX12 プログラミングの第2弾です。
今回の目玉は、「DirectX12 API を使って、MMDのキャラクター(PMD形式)を描画して踊らせる」となっています。
キャラクターの描画以外にも、
・テクスチャレンダリングとポストエフェクト
・HDR10出力
・インスタンシング
・Bundle
・MSAA
など DirectX12 の機能についての説明を行っております。
第1章 はじめに
1.1 対象読者
1.2 動作環境
1.3 サンプルコード
第2章 セットアップ
2.1 Windows SDK の準備
2.2 依存ライブラリについて
2.3 サンプルフレームワーク
2.4 まとめ
第3章 HDR10 ディスプレイへの表⽰
3.1 HDR 出⼒要件
3.2 HDR の出⼒が対応しているかを確認
3.3 HDR10 の出⼒バッファ
3.4 メタデータの設定
3.5 描画結果
3.6 まとめ
第4章 可変ウィンドウとフルスクリーン
4.1 ウィンドウのリサイズ対応
4.2 ディスプレイサイズでフルスクリーン化
4.3 起動時にフルスクリーンにする
4.4 切り替えの注意事項
4.5 まとめ
第5章 ImGui を組み込む
5.1 ImGui の準備
5.2 ImGui を組み込む
5.3 ウィジェットの追加
5.4 まとめ
第6章 インスタンシング描画
6.1 頂点ストリームを使う
6.2 定数バッファを使う
6.3 まとめ
第7章 テクスチャレンダリング
7.1 描画可能なテクスチャリソースの⽣成
7.2 テクスチャに描画する
7.3 テクスチャを使う&次への準備
7.4 描画サンプル
7.5 デプステクスチャの作り⽅
7.6 まとめ
第8章 ポストエフェクト
8.1 全画⾯ポリゴン
8.2 モザイクシェーダー
8.3 ⽔⾯⾵エフェクト
8.4 まとめ
第9章 Bundle
9.1 Bundle とは
9.2 Bundle の⽣成
9.3 Bundle による描画
9.4 Bundle の制限事項・注意点
9.5 まとめ
第10章 キャラクターモデルを描画する
10.1 スキニングについての説明
10.2 PMD ファイルの説明
10.3 PMD 形式の読み込みと描画データの構築
10.4 ルートシグネチャの設計
10.5 スキニング計算
10.6 輪郭線の描画
10.7 シャドウマップ
10.8 表情モーフの実装
10.9 描画本体の実装
10.10 まとめ
第11章 VMD アニメーション再⽣
11.1 VMD ファイルの説明
11.2 CCD-IK
11.3 キーフレームアニメーションの実装
11.4 CCD-IK の実装と描画
11.5 膝の曲げをより良く
11.6 まとめ
第12章 マルチサンプルアンチエイリアス
12.1 MSAA テクスチャを作成
12.2 描画処理の実装
12.3 まとめ
付録A 頂点ストリームで表情モーフ
Vulkan プログラミングの第2弾です。
前回が初期化からポリゴン描画までがメインだったので、今回は「Vulkan API を使って、MMDのキャラクター(PMD形式)を描画して踊らせる」までを解説します。
キャラクターの描画以外にも、
・テクスチャレンダリングとポストエフェクト
・HDR10出力
・インスタンシング
・セカンダリコマンドバッファ
・リソースステートとパイプラインバリアの説明
といった現時点ではあまり見かけない情報を多めに入れて説明しています。
今回もグラフィックスプログラミングに重要なポイントが多めですので、興味のある方に手にとってもらえれば幸いです。
第1章 はじめに
1.1 対象読者
1.2 動作環境
1.3 サンプルコード
第2章 セットアップ
2.1 Vulkan SDK の準備
2.2 依存ライブラリについて
2.3 サンプルフレームワーク
2.4 まとめ
第3章 HDR10 ディスプレイへの表⽰
3.1 HDR 出⼒要件
3.2 HDR の出⼒が対応しているかを確認
3.3 float バッファで出⼒する
3.4 メタデータの設定
3.5 描画結果
3.6 まとめ
第4章 可変ウィンドウとフルスクリーン
4.1 ウィンドウのリサイズ対応
4.2 ディスプレイサイズでフルスクリーン化
4.3 起動時にフルスクリーンにする
4.4 描画コマンドの可変サイズ対応
4.5 まとめ
第5章 ImGui を組み込む
5.1 ImGui の準備
5.2 ImGui を組み込む
5.3 ウィジェットの追加
5.4 まとめ
第6章 インスタンシング描画
6.1 頂点ストリームを使う
6.2 ユニフォームバッファを使う
6.3 まとめ
第7章 テクスチャレンダリング
7.1 描画可能なテクスチャリソースの⽣成
7.2 ディスクリプタの準備
7.3 テクスチャに描画する
7.4 パイプラインバリアの設定
7.5 テクスチャを使う
7.6 描画サンプル
7.7 まとめ
第8章 ポストエフェクト
8.1 全画⾯ポリゴン
8.2 モザイクシェーダー
8.3 ⽔⾯⾵エフェクト
8.4 まとめ
第9章 Resource State とPipeline Barrier
9.1 リソースのステート追跡
9.2 パイプラインステージのバリア
9.3 メモリアクセスのバリア設定
9.4 まとめ
第10章 セカンダリコマンドバッファ
10.1 セカンダリコマンドバッファとは
10.2 セカンダリコマンドバッファの準備
10.3 セカンダリコマンドバッファを⽤いた描画
10.4 まとめ
第11章 キャラクターモデルを描画する
11.1 スキニングについての説明
11.2 PMD ファイルの説明
11.3 PMD 形式の読み込みと描画データの構築
11.4 ディスクリプタセットレイアウトの設計
11.5 描画パスの実装
11.6 スキニングの計算
11.7 輪郭線の描画
11.8 シャドウマップ
11.9 表情モーフの実装
11.10 描画本体の実装
11.11 まとめ
第12章 VMD アニメーション再⽣
12.1 VMD ファイルの説明
12.2 CCD-IK
12.3 キーフレームアニメーションの実装
12.4 CCD-IK の実装と描画
12.5 膝の曲げをより良く
12.6 まとめ
第13章 マルチサンプルアンチエイリアス
13.1 MSAA テクスチャを作成
13.2 描画処理の実装
13.3 VkRenderPass での設定⽅法
13.4 まとめ
現在の Visual Studio 2017 の環境では、インターネット上にある昔の情報をそのまま使って、 DirectX9系の開発は出来ません。
せっかくたくさんの情報が残っているのにこれは勿体ないことです。
この本では、今の環境に合わせて開発を始めるまでを説明しました。
DirectX11や12,Vulkanといったものよりも DirectX9は覚えることが少なめで、インターネット上にはたくさんの情報がまだ残っているので、学習はしやすいと思っています。
その助けになる1冊としていかがでしょうか。
※この本は、物理的な冊子です。電子版の予定は現在のところありません。
※最新の Visual Studio 2017 (15.8.5)で、不具合が確認されております。
解消&対策方法について、当ブログページにて解説していますので、
本書を利用する際には参照のほうお願いします。
「ゲームエンジンを作ってみたい」という思いと、 C++ で実装していくにはどうしたらいいだろうかという興味から書き上げました。
汎用なゲームエンジンは難しいので 2D のアニメーションを駆動するためのエンジン(システム)を作っていく過程をまとめました。
某エンジンで行っているようなコンポーネントを追加していく方式を C++ でどのように組むか、リソース管理はどうするか、イベントのチェインはどう扱うか、といった話題を盛り込みました。
ゲームエンジンを作ってみたいけど...と思っている人に是非手にとってもらいたいと思います。
はじめに
第1章 特定のクラスインスタンスのツリー化
第2章 リソースのロード∕アンロード⼿順のカプセル化
第3章 リソースタイプの規定
第4章 定期処理のカプセル化
第5章 複数のクラスインスタンスのリスト化
第6章 アクターとリソースの関連付け
第7章 アクターと⽂字列の関連付け
第8章 アクターと座標変換の関連付け
第9章 アクターとテクスチャの関連付け
第10章 アクターとア⼆メーションの関連付け
第11章 アクターと⼊⼒デバイスの関連付け
第12章 さまざまなアクションとトリガー
第13章 既存コードベースとの融合
おわりに
紙本は10冊予定していますが、電子ダウンロードカードはもっと持っていきます。
Windows 10 で使える DirectX 12 のプログラミング入門本です。
DirectX12が使えるようになってからそれなりに時間が経過しましたが、書籍としてまとまっているものはまだ数が少ないかと思います。
Vol.1 では DirectX 12 の初期化から簡単な描画までをじっくりと解説しました。
低レイヤー相当のグラフィックスAPI となっている DirectX 12 をこれから始めてみようと思っている人や興味を持っている人に見てもらえたら嬉しく思います。
第1章 はじめに
DirectX12 紹介
対象読者
動作環境
サンプルコード
日本語の DirectX12 書籍
第2章 DirectX 12 概要
登場の背景
低レイヤーAPI
DirectX12の進化
CPUとGPU
まとめ
第3章 セットアップ
Windows SDK の更新
依存ライブラリについて
基本のコード
まとめ
第4章 初期化
オーバービュー
DebugLayerの有効化
DXGIFactoryの生成
D3D12デバイスの生成
コマンドキューの生成
スワップチェインの生成
ディスクリプタヒープの説明
レンダーターゲットビューの生成
メモリの管理
デプスステンシルビューの生成
コマンドアロケータ-の生成
Fenceの生成
まとめ
第5章 画面をクリアする
描画コマンドリスト
リソースバリア
コマンドの発行とPresent
同期処理
サンプルコード概要
まとめ
第6章 レンダリングパイプライン
論理的なグラフィックスパイプライン
パイプラインステートオブジェクト
ルートシグネチャ
まとめ
第7章 シェーダーの基礎
シェーダーの種類
シェーダーコンパイラ
HLSL文法入門
定数バッファ
register 指定
まとめ
第8章 リソース
DirectX12においてのリソース
頂点バッファ/インデックスバッファ
定数バッファ
イメージリソース
まとめ
第9章 シンプルな3角形の描画
オーバービュー
バッファオブジェクトの準備
シェーダーの準備
パイプラインの構築
描画コマンドの発行
まとめ
第10章 テクスチャ
オーバービュー
画像の読み込み
テクスチャリソースの準備
ステージングバッファ
アップロードヒープからのコピー
リソースバリアの設定
コード例
シェーダーリソースビューの生成
DirectXTexライブラリ
まとめ
第11章 サンプラー
フィルターの設定
アドレッシングモード
サンプラーの生成
スタティックサンプラーの生成
まとめ
第12章 テクスチャ付きキューブを描画
オーバービュー
リソースの準備
パイプラインの構築
描画処理の実装
まとめ
第13章 ルートシグネチャ再び
RootSignatureとDescriptorとリソース
PipelineStateとRootSignature
第14章 3Dモデルを描画
モデル形式
モデルデータの読み込み
描画の実装
まとめ
第15章 デバッグ
PIX for Windows
RenderDoc
NVIDIA Nsight Graphics
※ ダウンロードカードを持っていきます。
マルチプラットフォームで使える Vulkan のプログラミング入門本です。
Vulkan は低レイヤーのグラフィックス API です。Vulkan は発表されてからそれなりに時間が経過しましたが、書籍としてまとまっているものはまだ数が少ないかと思います。
Vulkan はバージョンアップが激しく、既に 1.1.xxx となっている状態ですが、この本では、"Vulkan 1.1" をターゲットとしています。
Vol.1 となっている今回は Vulkan の初期化から簡単な描画までをじっくりと解説しました。
低レイヤー相当のグラフィックスAPI となっている Vulkan をこれから始めてみようと思っている人や興味を持っている人に見てもらえたら嬉しく思います。
第1章 はじめに
Vulkan の紹介
対象読者
動作環境
サンプルコード
日本語のVulkan の書籍
第2章 Vulkan 概要
登場の背景
低レイヤー API
CPUとGPU
まとめ
第3章 セットアップ
Vulkan SDK
依存ライブラリについて
基本のコード
まとめ
第4章 初期化
オーバービュー
デバイスの作成
メモリ割り当て
スワップチェインの生成
デプスバッファの準備
VkImageView の作成
RenderPass の作成
フレームバッファの作成
まとめ
第5章 画面をクリアする
デバッグのための設定
描画コマンド
同期プリミティブ
クリアのためのコマンド
コマンドの送信
Present処理
画面クリアのコード例
スワップチェイン同期の解説
まとめ
第6章 リソース
Vulkanにおいてのリソース
頂点・インデックス・ユニフォームバッファ
イメージリソース
まとめ
第7章 Descriptor と PipelineLayout
ディスクリプタとディスクリプタプール
DescriptorSetLayout
ディスクリプタの割り当てと更新
パイプラインレイアウト
まとめ
第8章 シェーダーの基礎
シェーダーの種類
コンパイル
GLSL文法入門
シェーダーとディスクリプタセット
まとめ
第9章 レンダリングパイプライン
論理的なパイプライン
VkPipelineオブジェクト
シェーダーのセット
頂点データ情報のセット
プリミティブトポロジーの設定
ビューポートの設定
ラスタライザの設定
マルチサンプリングの設定
デプス&ステンシルの設定
ブレンド設定
データの依存関係について
まとめ
第10章 シンプルな三角形の描画
頂点バッファ・インデックスバッファの準備
シェーダーの準備
パイプラインの構築
描画コマンドの発行
まとめ
第11章 テクスチャの作成
オーバービュー
画像の読み込み
VkImageの準備
ステージングバッファ
ステージングバッファからイメージへ
VkImageViewの作成
サンプラーの作成
まとめ
第12章 テクスチャ付きキューブを描画
頂点バッファインデックスバッファの準備
ユニフォームバッファの準備
シェーダーの準備
テクスチャの準備
ディスクリプタセットの準備
描画コマンドの発行
ディスクリプタセット関連の説明
まとめ
第13章 3Dモデルを描画
モデル形式
モデルデータの読み込み
描画の実装
まとめ
第14章 デバッグ
RenderDoc
NVIDIA Nsighit Graphics
その他